diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 89a0422..ceb582d 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -14,7 +14,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: 3.9 + python-version: "3.10" - name: Install OS packages run: | sudo apt-get -y update diff --git a/.github/workflows/pip-compile.yml b/.github/workflows/pip-compile.yml index 7181169..758e56a 100644 --- a/.github/workflows/pip-compile.yml +++ b/.github/workflows/pip-compile.yml @@ -12,7 +12,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: "3.9" + python-version: "3.10" - name: Install system dependencies run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index efefb88..284b787 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,7 +13,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: '3.9' + python-version: '3.10' - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/tox-test.yml b/.github/workflows/tox-test.yml index d7f93d9..3b1dee3 100644 --- a/.github/workflows/tox-test.yml +++ b/.github/workflows/tox-test.yml @@ -15,7 +15,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: 3.9 + python-version: "3.10" - name: Install Tox run: pip install tox 'virtualenv<20.21.1' - name: Run Linting @@ -32,7 +32,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: 3.9 + python-version: "3.10" - name: Install Tox run: pip install tox 'virtualenv<20.21.1' - name: Run MyPy @@ -42,7 +42,7 @@ jobs: strategy: matrix: # https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] + python-version: ["3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} @@ -70,7 +70,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: 3.9 + python-version: "3.10" - name: Install Tox run: pip install tox 'virtualenv<20.21.1' - name: Install pytest cov @@ -89,7 +89,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: 3.9 + python-version: "3.10" - name: Install Tox run: pip install tox - name: Run Tox @@ -171,7 +171,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: 3.9 + python-version: "3.10" - name: Install Tox run: pip install tox 'virtualenv<20.21.1' - name: Run Tox diff --git a/CHANGELOG.md b/CHANGELOG.md index bfb5352..5e7e0f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +- Drop support to python 3.9 + ## 1.4.0 - 2025-05-26 - Azure: Allow partial SAS comparison diff --git a/README.md b/README.md index 305dc14..98d8e10 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ To install this library go to the project's root directory and execute: The versions listed below are the one which were tested and work. Other versions can work as well. -- Install or create a `virtualenv` for `python` >= 3.8 +- Install or create a `virtualenv` for `python` >= 3.10 - Install `tox` >= 3.25 ### Dependency Management @@ -89,4 +89,4 @@ To automatically format your code you man run `tox -e autoformat`. ### Unit tests -To run unit tests use `tox -e py38,py39,py310,py311`. +To run unit tests use `tox -e py310,py311,py312,py313`. diff --git a/requirements-test.txt b/requirements-test.txt index 57faff2..d1385f1 100644 --- a/requirements-test.txt +++ b/requirements-test.txt @@ -1,12 +1,12 @@ # -# This file is autogenerated by pip-compile with python 3.9 +# This file is autogenerated by pip-compile with python 3.10 # To update, run: # # pip-compile --generate-hashes --output-file=requirements-test.txt requirements-test.in setup.py # -alabaster==0.7.16 \ - --hash=sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65 \ - --hash=sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92 +alabaster==1.0.0 \ + --hash=sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e \ + --hash=sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b # via # -r requirements-test.in # sphinx @@ -221,10 +221,6 @@ imagesize==1.4.1 \ --hash=sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b \ --hash=sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a # via sphinx -importlib-metadata==8.7.0 \ - --hash=sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000 \ - --hash=sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd - # via sphinx iniconfig==2.1.0 \ --hash=sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7 \ --hash=sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760 @@ -400,15 +396,15 @@ snowballstemmer==3.0.1 \ --hash=sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064 \ --hash=sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895 # via sphinx -sphinx==7.4.7 \ - --hash=sha256:242f92a7ea7e6c5b406fdc2615413890ba9f699114a9c09192d7dfead2ee9cfe \ - --hash=sha256:c2419e2135d11f1951cd994d6eb18a1835bd8fdd8429f9ca375dc1f3281bd239 +sphinx==8.1.3 \ + --hash=sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2 \ + --hash=sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927 # via # -r requirements-test.in # sphinx-autodoc-typehints -sphinx-autodoc-typehints==2.3.0 \ - --hash=sha256:3098e2c6d0ba99eacd013eb06861acc9b51c6e595be86ab05c08ee5506ac0c67 \ - --hash=sha256:535c78ed2d6a1bad393ba9f3dfa2602cf424e2631ee207263e07874c38fde084 +sphinx-autodoc-typehints==3.0.1 \ + --hash=sha256:4b64b676a14b5b79cefb6628a6dc8070e320d4963e8ff640a2f3e9390ae9045a \ + --hash=sha256:b9b40dd15dee54f6f810c924f863f9cf1c54f9f3265c495140ea01be7f44fa55 # via -r requirements-test.in sphinxcontrib-applehelp==2.0.0 \ --hash=sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1 \ @@ -494,13 +490,9 @@ typing-extensions==4.14.0 \ # via # exceptiongroup # mypy -urllib3==1.26.20 \ - --hash=sha256:0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e \ - --hash=sha256:40c2dc0c681e47eb8f90e7e27bf6ff7df2e677421fd46756da1161c39ca70d32 +urllib3==2.5.0 \ + --hash=sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760 \ + --hash=sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc # via # botocore # requests -zipp==3.23.0 \ - --hash=sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e \ - --hash=sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166 - # via importlib-metadata diff --git a/requirements.txt b/requirements.txt index 46d2306..a45def2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with python 3.9 +# This file is autogenerated by pip-compile with python 3.10 # To update, run: # # pip-compile --generate-hashes --output-file=requirements.txt @@ -158,9 +158,9 @@ tenacity==9.1.2 \ --hash=sha256:1169d376c297e7de388d18b4481760d478b0e99a777cad3a9c86e556f4b697cb \ --hash=sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138 # via cloudpub (setup.py) -urllib3==1.26.20 \ - --hash=sha256:0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e \ - --hash=sha256:40c2dc0c681e47eb8f90e7e27bf6ff7df2e677421fd46756da1161c39ca70d32 +urllib3==2.5.0 \ + --hash=sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760 \ + --hash=sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc # via # botocore # requests diff --git a/setup.py b/setup.py index 683aa4c..5e35656 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,6 @@ include_package_data=True, classifiers=[ 'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)', - 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', diff --git a/tox.ini b/tox.ini index af1d25c..62e7c2d 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = pip-compile, docs, lint, mypy, security, py39, py310, py311, py312, py313 +envlist = pip-compile, docs, lint, mypy, security, py310, py311, py312, py313 [testenv] envdir = {toxworkdir}/shared-environment @@ -13,7 +13,7 @@ commands= --cov-report xml --cov-report html {posargs} [testenv:pip-compile] -basepython = python3.9 +basepython = python3.10 skip_install = true deps = pip-tools @@ -37,11 +37,11 @@ deps = isort commands = flake8 --max-line-length=100 --ignore=D100,D104,D105 --per-file-ignores=tests/*:D101,D102,D103 cloudpub tests - black -S -t py39 -l 100 --check --diff cloudpub tests + black -S -t py310 -l 100 --check --diff cloudpub tests isort -l 100 --profile black --check --diff cloudpub tests [testenv:mypy] -basepython = python3.9 +basepython = python3.10 deps = -r requirements-test.txt commands = mypy --warn-unused-ignores --ignore-missing-imports --exclude '^venv.*' . @@ -60,7 +60,7 @@ deps = black >= 23.1.0 isort commands = - black -S -t py39 -l 100 cloudpub tests + black -S -t py310 -l 100 cloudpub tests isort -l 100 --profile black cloudpub tests [testenv:azure_schemas] @@ -69,7 +69,7 @@ deps = -r requirements.txt commands = python schemas/download_azure_schemas.py {posargs} [testenv:coverage] -basepython = python3.9 +basepython = python3.10 deps = -r requirements-test.txt relative_files = True usedevelop= True