From b79577c619b22a531afc74325ebdd2f648764aba Mon Sep 17 00:00:00 2001 From: awais qureshi Date: Tue, 2 Apr 2024 13:54:11 +0500 Subject: [PATCH 1/2] feat: Adding python3.11 and 3.12 support. --- .github/workflows/ci.yml | 4 +- CHANGELOG.rst | 6 ++ Makefile | 7 +- code_annotations/__init__.py | 2 +- code_annotations/cli.py | 6 +- .../sphinx/extensions/featuretoggles.py | 2 +- requirements/base.txt | 8 +- requirements/ci.txt | 12 +-- requirements/common_constraints.txt | 0 requirements/constraints.txt | 8 +- requirements/dev.txt | 71 ++++++++--------- requirements/django.txt | 14 ++-- requirements/doc.txt | 79 ++++++++++--------- requirements/pip-tools.txt | 16 ++-- requirements/pip.txt | 6 +- requirements/quality.txt | 52 ++++++------ requirements/test.txt | 39 +++++---- setup.py | 3 +- tests/helpers.py | 2 +- tox.ini | 6 +- 20 files changed, 180 insertions(+), 163 deletions(-) create mode 100644 requirements/common_constraints.txt diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f6efaec..1c67078 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,8 +14,8 @@ jobs: strategy: matrix: os: [ubuntu-20.04] - python-version: ['3.8'] - toxenv: [quality, docs, django32, django42] + python-version: ['3.8', '3.11', '3.12'] + toxenv: [quality, docs, django42] steps: - uses: actions/checkout@v2 diff --git a/CHANGELOG.rst b/CHANGELOG.rst index d19b4f7..2d2394c 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -14,6 +14,12 @@ Change Log Unreleased ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +[1.8.0] - 2024-03-31 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +* Added python3.11 and 3.12 support. Dropped django32 support. + + [1.6.0] - 2024-01-31 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/Makefile b/Makefile index 4080d6e..00f4ca9 100644 --- a/Makefile +++ b/Makefile @@ -37,8 +37,13 @@ docs: ## generate Sphinx HTML documentation, including API docs tox -e docs $(BROWSER) docs/_build/html/index.html +COMMON_CONSTRAINTS_TXT=requirements/common_constraints.txt +.PHONY: $(COMMON_CONSTRAINTS_TXT) +$(COMMON_CONSTRAINTS_TXT): + wget -O "$(@)" https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt || touch "$(@)" + upgrade: export CUSTOM_COMPILE_COMMAND=make upgrade -upgrade: ## update the requirements/*.txt files with the latest packages satisfying requirements/*.in +upgrade: $(COMMON_CONSTRAINTS_TXT) # update the requirements/*.txt files with the latest packages satisfying requirements/*.in pip install -qr requirements/pip-tools.txt # Make sure to compile files after any other files they include! pip-compile --upgrade --allow-unsafe -o requirements/pip.txt requirements/pip.in diff --git a/code_annotations/__init__.py b/code_annotations/__init__.py index 40aa8f8..34afadd 100644 --- a/code_annotations/__init__.py +++ b/code_annotations/__init__.py @@ -2,4 +2,4 @@ Extensible tools for parsing annotations in codebases. """ -__version__ = '1.7.0' +__version__ = '1.8.0' diff --git a/code_annotations/cli.py b/code_annotations/cli.py index 33372cf..7c3a313 100644 --- a/code_annotations/cli.py +++ b/code_annotations/cli.py @@ -111,7 +111,7 @@ def django_find_annotations( annotation_count, elapsed.total_seconds() )) - except Exception as exc: # pylint: disable=broad-except + except Exception as exc: click.echo(traceback.print_exc()) fail(str(exc)) @@ -169,7 +169,7 @@ def static_find_annotations(config_file, source_path, report_path, verbosity, li click.echo(f"Search found {annotation_count} annotations in {elapsed}.") - except Exception as exc: # pylint: disable=broad-except + except Exception as exc: click.echo(traceback.print_exc()) fail(str(exc)) @@ -212,6 +212,6 @@ def generate_docs( elapsed = datetime.datetime.now() - start_time click.echo(f"Report rendered in {elapsed.total_seconds()} seconds.") - except Exception as exc: # pylint: disable=broad-except + except Exception as exc: click.echo(traceback.print_exc()) fail(str(exc)) diff --git a/code_annotations/contrib/sphinx/extensions/featuretoggles.py b/code_annotations/contrib/sphinx/extensions/featuretoggles.py index 2394023..9ce68f9 100644 --- a/code_annotations/contrib/sphinx/extensions/featuretoggles.py +++ b/code_annotations/contrib/sphinx/extensions/featuretoggles.py @@ -111,7 +111,7 @@ def iter_nodes(self): for opt in optional_attrs: if toggle.get(f".. toggle_{opt}:") not in (None, "None", "n/a", "N/A"): toggle_section += nodes.paragraph( - text=f'{opt.title().replace("_"," ")}: {toggle[f".. toggle_{opt}:"]}', + text=f'{opt.title().replace("_", " ")}: {toggle[f".. toggle_{opt}:"]}', ids=[f"{opt}-{toggle_name}"], ) yield toggle_section diff --git a/requirements/base.txt b/requirements/base.txt index c0f2138..c8d3d75 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -6,17 +6,17 @@ # click==8.1.7 # via -r requirements/base.in -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.in -markupsafe==2.1.3 +markupsafe==2.1.5 # via jinja2 pbr==6.0.0 # via stevedore -python-slugify==8.0.1 +python-slugify==8.0.4 # via -r requirements/base.in pyyaml==6.0.1 # via -r requirements/base.in -stevedore==5.1.0 +stevedore==5.2.0 # via -r requirements/base.in text-unidecode==1.3 # via python-slugify diff --git a/requirements/ci.txt b/requirements/ci.txt index 77d02ef..5e50065 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -4,17 +4,17 @@ # # make upgrade # -distlib==0.3.7 +distlib==0.3.8 # via virtualenv -filelock==3.13.1 +filelock==3.13.3 # via # tox # virtualenv -packaging==23.2 +packaging==24.0 # via tox -platformdirs==4.1.0 +platformdirs==4.2.0 # via virtualenv -pluggy==1.3.0 +pluggy==1.4.0 # via tox py==1.11.0 # via tox @@ -26,5 +26,5 @@ tox==3.28.0 # via # -c requirements/constraints.txt # -r requirements/ci.in -virtualenv==20.25.0 +virtualenv==20.25.1 # via tox diff --git a/requirements/common_constraints.txt b/requirements/common_constraints.txt new file mode 100644 index 0000000..e69de29 diff --git a/requirements/constraints.txt b/requirements/constraints.txt index da7cf55..60d1ac2 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -8,9 +8,11 @@ # pin when possible. Writing an issue against the offending project and # linking to it here is good. -# Common constraints for edx repos --c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt - +# This file contains all common constraints for edx-repos +-c common_constraints.txt # tox>4.0.0 isn't yet compatible with many tox plugins, causing CI failures in almost all repos. # Details can be found in this discussion: https://github.com/tox-dev/tox/discussions/1810 tox<4.0.0 + +# Temporary to Support the python 3.11 Upgrade +backports.zoneinfo;python_version<"3.9" # Newer versions have zoneinfo available in the standard library diff --git a/requirements/dev.txt b/requirements/dev.txt index 9bca528..7cf738e 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -4,16 +4,21 @@ # # make upgrade # -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/quality.txt # django -astroid==3.0.1 +astroid==3.1.0 # via # -r requirements/quality.txt # pylint # pylint-celery -build==1.0.3 +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -c requirements/constraints.txt + # -r requirements/quality.txt + # django +build==1.2.1 # via # -r requirements/pip-tools.txt # pip-tools @@ -31,41 +36,38 @@ click-log==0.4.0 # via # -r requirements/quality.txt # edx-lint -code-annotations==1.5.0 +code-annotations==1.7.0 # via # -r requirements/quality.txt # edx-lint -coverage[toml]==7.3.2 +coverage[toml]==7.4.4 # via # -r requirements/quality.txt - # coverage # pytest-cov -diff-cover==8.0.1 +diff-cover==8.0.3 # via -r requirements/dev.in -dill==0.3.7 +dill==0.3.8 # via # -r requirements/quality.txt # pylint -distlib==0.3.7 +distlib==0.3.8 # via # -r requirements/ci.txt # virtualenv -django==3.2.23 - # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt - # -r requirements/quality.txt +django==4.2.11 + # via -r requirements/quality.txt edx-lint==5.3.6 # via -r requirements/quality.txt exceptiongroup==1.2.0 # via # -r requirements/quality.txt # pytest -filelock==3.13.1 +filelock==3.13.3 # via # -r requirements/ci.txt # tox # virtualenv -importlib-metadata==7.0.0 +importlib-metadata==7.1.0 # via # -r requirements/pip-tools.txt # build @@ -73,16 +75,16 @@ iniconfig==2.0.0 # via # -r requirements/quality.txt # pytest -isort==5.12.0 +isort==5.13.2 # via # -r requirements/quality.txt # pylint -jinja2==3.1.2 +jinja2==3.1.3 # via # -r requirements/quality.txt # code-annotations # diff-cover -markupsafe==2.1.3 +markupsafe==2.1.5 # via # -r requirements/quality.txt # jinja2 @@ -92,7 +94,7 @@ mccabe==0.7.0 # pylint mock==5.1.0 # via -r requirements/quality.txt -packaging==23.2 +packaging==24.0 # via # -r requirements/ci.txt # -r requirements/pip-tools.txt @@ -104,15 +106,15 @@ pbr==6.0.0 # via # -r requirements/quality.txt # stevedore -pip-tools==7.3.0 +pip-tools==7.4.1 # via -r requirements/pip-tools.txt -platformdirs==4.1.0 +platformdirs==4.2.0 # via # -r requirements/ci.txt # -r requirements/quality.txt # pylint # virtualenv -pluggy==1.3.0 +pluggy==1.4.0 # via # -r requirements/ci.txt # -r requirements/quality.txt @@ -129,7 +131,7 @@ pydocstyle==6.3.0 # via -r requirements/quality.txt pygments==2.17.2 # via diff-cover -pylint==3.0.2 +pylint==3.1.0 # via # -r requirements/quality.txt # edx-lint @@ -153,20 +155,17 @@ pyproject-hooks==1.0.0 # via # -r requirements/pip-tools.txt # build -pytest==7.4.3 + # pip-tools +pytest==8.1.1 # via # -r requirements/quality.txt # pytest-cov -pytest-cov==4.1.0 +pytest-cov==5.0.0 # via -r requirements/quality.txt -python-slugify==8.0.1 +python-slugify==8.0.4 # via # -r requirements/quality.txt # code-annotations -pytz==2023.3.post1 - # via - # -r requirements/quality.txt - # django pyyaml==6.0.1 # via # -r requirements/quality.txt @@ -185,7 +184,7 @@ sqlparse==0.4.4 # via # -r requirements/quality.txt # django -stevedore==5.1.0 +stevedore==5.2.0 # via # -r requirements/quality.txt # code-annotations @@ -205,7 +204,7 @@ tomli==2.0.1 # pyproject-hooks # pytest # tox -tomlkit==0.12.3 +tomlkit==0.12.4 # via # -r requirements/quality.txt # pylint @@ -213,21 +212,21 @@ tox==3.28.0 # via # -c requirements/constraints.txt # -r requirements/ci.txt -typing-extensions==4.8.0 +typing-extensions==4.10.0 # via # -r requirements/quality.txt # asgiref # astroid # pylint -virtualenv==20.25.0 +virtualenv==20.25.1 # via # -r requirements/ci.txt # tox -wheel==0.42.0 +wheel==0.43.0 # via # -r requirements/pip-tools.txt # pip-tools -zipp==3.17.0 +zipp==3.18.1 # via # -r requirements/pip-tools.txt # importlib-metadata diff --git a/requirements/django.txt b/requirements/django.txt index 5edfdba..5180661 100644 --- a/requirements/django.txt +++ b/requirements/django.txt @@ -4,15 +4,15 @@ # # make upgrade # -asgiref==3.7.2 +asgiref==3.8.1 # via django -django==3.2.23 +backports-zoneinfo==0.2.1 ; python_version < "3.9" # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt - # -r requirements/django.in -pytz==2023.3.post1 - # via django + # -c requirements/constraints.txt + # django +django==4.2.11 + # via -r requirements/django.in sqlparse==0.4.4 # via django -typing-extensions==4.8.0 +typing-extensions==4.10.0 # via asgiref diff --git a/requirements/doc.txt b/requirements/doc.txt index b4064df..5ac4deb 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -8,31 +8,33 @@ accessible-pygments==0.0.4 # via pydata-sphinx-theme alabaster==0.7.13 # via sphinx -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/test.txt # django -babel==2.13.1 +babel==2.14.0 # via # pydata-sphinx-theme # sphinx -beautifulsoup4==4.12.2 +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -c requirements/constraints.txt + # -r requirements/test.txt + # django +beautifulsoup4==4.12.3 # via pydata-sphinx-theme -certifi==2023.11.17 +certifi==2024.2.2 # via requests charset-normalizer==3.3.2 # via requests click==8.1.7 # via -r requirements/test.txt -coverage[toml]==7.3.2 +coverage[toml]==7.4.4 # via # -r requirements/test.txt - # coverage # pytest-cov -django==3.2.23 - # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt - # -r requirements/test.txt +django==4.2.11 + # via -r requirements/test.txt doc8==1.1.1 # via -r requirements/doc.in docutils==0.19 @@ -50,28 +52,32 @@ idna==3.6 # via requests imagesize==1.4.1 # via sphinx -importlib-metadata==7.0.0 +importlib-metadata==7.1.0 # via # keyring # sphinx # twine -importlib-resources==6.1.1 +importlib-resources==6.4.0 # via keyring iniconfig==2.0.0 # via # -r requirements/test.txt # pytest -jaraco-classes==3.3.0 +jaraco-classes==3.4.0 # via keyring -jinja2==3.1.2 +jaraco-context==4.3.0 + # via keyring +jaraco-functools==4.0.0 + # via keyring +jinja2==3.1.3 # via # -r requirements/test.txt # sphinx -keyring==24.3.0 +keyring==25.0.0 # via twine markdown-it-py==3.0.0 # via rich -markupsafe==2.1.3 +markupsafe==2.1.5 # via # -r requirements/test.txt # jinja2 @@ -79,11 +85,13 @@ mdurl==0.1.2 # via markdown-it-py mock==5.1.0 # via -r requirements/test.txt -more-itertools==10.1.0 - # via jaraco-classes -nh3==0.2.15 +more-itertools==10.2.0 + # via + # jaraco-classes + # jaraco-functools +nh3==0.2.17 # via readme-renderer -packaging==23.2 +packaging==24.0 # via # -r requirements/test.txt # pydata-sphinx-theme @@ -93,9 +101,9 @@ pbr==6.0.0 # via # -r requirements/test.txt # stevedore -pkginfo==1.9.6 +pkginfo==1.10.0 # via twine -pluggy==1.3.0 +pluggy==1.4.0 # via # -r requirements/test.txt # pytest @@ -109,22 +117,19 @@ pygments==2.17.2 # readme-renderer # rich # sphinx -pytest==7.4.3 +pytest==8.1.1 # via # -r requirements/test.txt # pytest-cov -pytest-cov==4.1.0 +pytest-cov==5.0.0 # via -r requirements/test.txt -python-slugify==8.0.1 +python-slugify==8.0.4 # via -r requirements/test.txt -pytz==2023.3.post1 - # via - # -r requirements/test.txt - # babel - # django +pytz==2024.1 + # via babel pyyaml==6.0.1 # via -r requirements/test.txt -readme-renderer==42.0 +readme-renderer==43.0 # via twine requests==2.31.0 # via @@ -137,7 +142,7 @@ restructuredtext-lint==1.4.0 # via doc8 rfc3986==2.0.0 # via twine -rich==13.7.0 +rich==13.7.1 # via twine snowballstemmer==2.2.0 # via sphinx @@ -166,7 +171,7 @@ sqlparse==0.4.4 # via # -r requirements/test.txt # django -stevedore==5.1.0 +stevedore==5.2.0 # via # -r requirements/test.txt # doc8 @@ -180,19 +185,19 @@ tomli==2.0.1 # coverage # doc8 # pytest -twine==4.0.2 +twine==5.0.0 # via -r requirements/doc.in -typing-extensions==4.8.0 +typing-extensions==4.10.0 # via # -r requirements/test.txt # asgiref # pydata-sphinx-theme # rich -urllib3==2.1.0 +urllib3==2.2.1 # via # requests # twine -zipp==3.17.0 +zipp==3.18.1 # via # importlib-metadata # importlib-resources diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 93a9cee..1471edd 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -4,26 +4,28 @@ # # make upgrade # -build==1.0.3 +build==1.2.1 # via pip-tools click==8.1.7 # via pip-tools -importlib-metadata==7.0.0 +importlib-metadata==7.1.0 # via build -packaging==23.2 +packaging==24.0 # via build -pip-tools==7.3.0 +pip-tools==7.4.1 # via -r requirements/pip-tools.in pyproject-hooks==1.0.0 - # via build + # via + # build + # pip-tools tomli==2.0.1 # via # build # pip-tools # pyproject-hooks -wheel==0.42.0 +wheel==0.43.0 # via pip-tools -zipp==3.17.0 +zipp==3.18.1 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/pip.txt b/requirements/pip.txt index 14cb99c..cf44902 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -4,11 +4,11 @@ # # make upgrade # -wheel==0.42.0 +wheel==0.43.0 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==23.3.1 +pip==24.0 # via -r requirements/pip.in -setuptools==69.0.2 +setuptools==69.2.0 # via -r requirements/pip.in diff --git a/requirements/quality.txt b/requirements/quality.txt index 0942322..22323ec 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -4,14 +4,19 @@ # # make upgrade # -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/test.txt # django -astroid==3.0.1 +astroid==3.1.0 # via # pylint # pylint-celery +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -c requirements/constraints.txt + # -r requirements/test.txt + # django click==8.1.7 # via # -r requirements/test.txt @@ -20,19 +25,16 @@ click==8.1.7 # edx-lint click-log==0.4.0 # via edx-lint -code-annotations==1.5.0 +code-annotations==1.7.0 # via edx-lint -coverage[toml]==7.3.2 +coverage[toml]==7.4.4 # via # -r requirements/test.txt - # coverage # pytest-cov -dill==0.3.7 +dill==0.3.8 # via pylint -django==3.2.23 - # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt - # -r requirements/test.txt +django==4.2.11 + # via -r requirements/test.txt edx-lint==5.3.6 # via -r requirements/quality.in exceptiongroup==1.2.0 @@ -43,15 +45,15 @@ iniconfig==2.0.0 # via # -r requirements/test.txt # pytest -isort==5.12.0 +isort==5.13.2 # via # -r requirements/quality.in # pylint -jinja2==3.1.2 +jinja2==3.1.3 # via # -r requirements/test.txt # code-annotations -markupsafe==2.1.3 +markupsafe==2.1.5 # via # -r requirements/test.txt # jinja2 @@ -59,7 +61,7 @@ mccabe==0.7.0 # via pylint mock==5.1.0 # via -r requirements/test.txt -packaging==23.2 +packaging==24.0 # via # -r requirements/test.txt # pytest @@ -67,9 +69,9 @@ pbr==6.0.0 # via # -r requirements/test.txt # stevedore -platformdirs==4.1.0 +platformdirs==4.2.0 # via pylint -pluggy==1.3.0 +pluggy==1.4.0 # via # -r requirements/test.txt # pytest @@ -77,7 +79,7 @@ pycodestyle==2.11.1 # via -r requirements/quality.in pydocstyle==6.3.0 # via -r requirements/quality.in -pylint==3.0.2 +pylint==3.1.0 # via # edx-lint # pylint-celery @@ -91,20 +93,16 @@ pylint-plugin-utils==0.8.2 # via # pylint-celery # pylint-django -pytest==7.4.3 +pytest==8.1.1 # via # -r requirements/test.txt # pytest-cov -pytest-cov==4.1.0 +pytest-cov==5.0.0 # via -r requirements/test.txt -python-slugify==8.0.1 +python-slugify==8.0.4 # via # -r requirements/test.txt # code-annotations -pytz==2023.3.post1 - # via - # -r requirements/test.txt - # django pyyaml==6.0.1 # via # -r requirements/test.txt @@ -117,7 +115,7 @@ sqlparse==0.4.4 # via # -r requirements/test.txt # django -stevedore==5.1.0 +stevedore==5.2.0 # via # -r requirements/test.txt # code-annotations @@ -131,9 +129,9 @@ tomli==2.0.1 # coverage # pylint # pytest -tomlkit==0.12.3 +tomlkit==0.12.4 # via pylint -typing-extensions==4.8.0 +typing-extensions==4.10.0 # via # -r requirements/test.txt # asgiref diff --git a/requirements/test.txt b/requirements/test.txt index 0fef0d0..f544b3f 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -4,56 +4,53 @@ # # make upgrade # -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/django.txt # django -click==8.1.7 - # via -r requirements/base.txt -coverage[toml]==7.3.2 - # via - # coverage - # pytest-cov +backports-zoneinfo==0.2.1 ; python_version < "3.9" # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + # -c requirements/constraints.txt # -r requirements/django.txt + # django +click==8.1.7 + # via -r requirements/base.txt +coverage[toml]==7.4.4 + # via pytest-cov + # via -r requirements/django.txt exceptiongroup==1.2.0 # via pytest iniconfig==2.0.0 # via pytest -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt -markupsafe==2.1.3 +markupsafe==2.1.5 # via # -r requirements/base.txt # jinja2 mock==5.1.0 # via -r requirements/test.in -packaging==23.2 +packaging==24.0 # via pytest pbr==6.0.0 # via # -r requirements/base.txt # stevedore -pluggy==1.3.0 +pluggy==1.4.0 # via pytest -pytest==7.4.3 +pytest==8.1.1 # via pytest-cov -pytest-cov==4.1.0 +pytest-cov==5.0.0 # via -r requirements/test.in -python-slugify==8.0.1 +python-slugify==8.0.4 # via -r requirements/base.txt -pytz==2023.3.post1 - # via - # -r requirements/django.txt - # django pyyaml==6.0.1 # via -r requirements/base.txt sqlparse==0.4.4 # via # -r requirements/django.txt # django -stevedore==5.1.0 +stevedore==5.2.0 # via -r requirements/base.txt text-unidecode==1.3 # via @@ -63,7 +60,7 @@ tomli==2.0.1 # via # coverage # pytest -typing-extensions==4.8.0 +typing-extensions==4.10.0 # via # -r requirements/django.txt # asgiref diff --git a/setup.py b/setup.py index 688253c..297eeb8 100644 --- a/setup.py +++ b/setup.py @@ -97,7 +97,6 @@ def is_requirement(line): classifiers=[ 'Development Status :: 3 - Alpha', 'Framework :: Django', - 'Framework :: Django :: 3.2', 'Framework :: Django :: 4.2', 'Intended Audience :: Developers', 'License :: OSI Approved :: Apache Software License', @@ -105,5 +104,7 @@ def is_requirement(line): 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: 3.12', ], ) diff --git a/tests/helpers.py b/tests/helpers.py index d5f7b56..939ba59 100644 --- a/tests/helpers.py +++ b/tests/helpers.py @@ -72,7 +72,7 @@ def delete_report_files(file_extension): try: for f in filelist: os.remove(os.path.join('test_reports', f)) - except Exception: # pylint: disable=broad-except + except Exception: pass diff --git a/tox.ini b/tox.ini index ef3da1a..1bc1696 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py38-django{32, 42} +envlist = py{38,311,312}-django{42} [doc8] ignore = D001 @@ -17,7 +17,6 @@ norecursedirs = .* docs requirements [testenv] deps = - django32: Django>=3.2,<4.0 django42: Django>=4.2,<4.3 -r{toxinidir}/requirements/test.txt commands = @@ -31,6 +30,8 @@ allowlist_externals = rm twine deps = + setuptools + wheel -r{toxinidir}/requirements/doc.txt commands = doc8 --ignore-path docs/_build README.rst docs @@ -45,6 +46,7 @@ commands = allowlist_externals = make deps = + setuptools -r{toxinidir}/requirements/quality.txt commands = pylint code_annotations tests test_utils setup.py From b95b1ec0df3f746ec1dd6ca95945abd645dc6911 Mon Sep 17 00:00:00 2001 From: awais qureshi Date: Tue, 2 Apr 2024 15:07:05 +0500 Subject: [PATCH 2/2] feat: Adding python3.11 and 3.12 support. --- requirements/common_constraints.txt | 37 +++++++++++++++++++++++++++++ requirements/dev.txt | 7 ++++-- requirements/django.txt | 4 +++- requirements/doc.txt | 7 ++++-- requirements/pip-tools.txt | 6 +++-- requirements/quality.txt | 4 +++- requirements/test.txt | 4 +++- 7 files changed, 60 insertions(+), 9 deletions(-) diff --git a/requirements/common_constraints.txt b/requirements/common_constraints.txt index e69de29..c9d8d9c 100644 --- a/requirements/common_constraints.txt +++ b/requirements/common_constraints.txt @@ -0,0 +1,37 @@ +# This is a temporary solution to override the real common_constraints.txt +# In edx-lint, until the pyjwt constraint in edx-lint has been removed. +# See BOM-2721 for more details. +# Below is the copied and edited version of common_constraints + +# A central location for most common version constraints +# (across edx repos) for pip-installation. +# +# Similar to other constraint files this file doesn't install any packages. +# It specifies version constraints that will be applied if a package is needed. +# When pinning something here, please provide an explanation of why it is a good +# idea to pin this package across all edx repos, Ideally, link to other information +# that will help people in the future to remove the pin when possible. +# Writing an issue against the offending project and linking to it here is good. +# +# Note: Changes to this file will automatically be used by other repos, referencing +# this file from Github directly. It does not require packaging in edx-lint. + + +# using LTS django version +Django<5.0 + +# elasticsearch>=7.14.0 includes breaking changes in it which caused issues in discovery upgrade process. +# elastic search changelog: https://www.elastic.co/guide/en/enterprise-search/master/release-notes-7.14.0.html +elasticsearch<7.14.0 + +# django-simple-history>3.0.0 adds indexing and causes a lot of migrations to be affected +django-simple-history==3.0.0 + +# opentelemetry requires version 6.x at the moment: +# https://github.com/open-telemetry/opentelemetry-python/issues/3570 +# Normally this could be added as a constraint in edx-django-utils, where we're +# adding the opentelemetry dependency. However, when we compile pip-tools.txt, +# that uses version 7.x, and then there's no undoing that when compiling base.txt. +# So we need to pin it globally, for now. +# Ticket for unpinning: https://github.com/openedx/edx-lint/issues/407 +importlib-metadata<7 diff --git a/requirements/dev.txt b/requirements/dev.txt index 7cf738e..564e670 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -55,7 +55,9 @@ distlib==0.3.8 # -r requirements/ci.txt # virtualenv django==4.2.11 - # via -r requirements/quality.txt + # via + # -c requirements/common_constraints.txt + # -r requirements/quality.txt edx-lint==5.3.6 # via -r requirements/quality.txt exceptiongroup==1.2.0 @@ -67,8 +69,9 @@ filelock==3.13.3 # -r requirements/ci.txt # tox # virtualenv -importlib-metadata==7.1.0 +importlib-metadata==6.11.0 # via + # -c requirements/common_constraints.txt # -r requirements/pip-tools.txt # build iniconfig==2.0.0 diff --git a/requirements/django.txt b/requirements/django.txt index 5180661..a700859 100644 --- a/requirements/django.txt +++ b/requirements/django.txt @@ -11,7 +11,9 @@ backports-zoneinfo==0.2.1 ; python_version < "3.9" # -c requirements/constraints.txt # django django==4.2.11 - # via -r requirements/django.in + # via + # -c requirements/common_constraints.txt + # -r requirements/django.in sqlparse==0.4.4 # via django typing-extensions==4.10.0 diff --git a/requirements/doc.txt b/requirements/doc.txt index 5ac4deb..b65f4b3 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -34,7 +34,9 @@ coverage[toml]==7.4.4 # -r requirements/test.txt # pytest-cov django==4.2.11 - # via -r requirements/test.txt + # via + # -c requirements/common_constraints.txt + # -r requirements/test.txt doc8==1.1.1 # via -r requirements/doc.in docutils==0.19 @@ -52,8 +54,9 @@ idna==3.6 # via requests imagesize==1.4.1 # via sphinx -importlib-metadata==7.1.0 +importlib-metadata==6.11.0 # via + # -c requirements/common_constraints.txt # keyring # sphinx # twine diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 1471edd..6401f54 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -8,8 +8,10 @@ build==1.2.1 # via pip-tools click==8.1.7 # via pip-tools -importlib-metadata==7.1.0 - # via build +importlib-metadata==6.11.0 + # via + # -c requirements/common_constraints.txt + # build packaging==24.0 # via build pip-tools==7.4.1 diff --git a/requirements/quality.txt b/requirements/quality.txt index 22323ec..7e0a746 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -34,7 +34,9 @@ coverage[toml]==7.4.4 dill==0.3.8 # via pylint django==4.2.11 - # via -r requirements/test.txt + # via + # -c requirements/common_constraints.txt + # -r requirements/test.txt edx-lint==5.3.6 # via -r requirements/quality.in exceptiongroup==1.2.0 diff --git a/requirements/test.txt b/requirements/test.txt index f544b3f..e1435c5 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -17,7 +17,9 @@ click==8.1.7 # via -r requirements/base.txt coverage[toml]==7.4.4 # via pytest-cov - # via -r requirements/django.txt + # via + # -c requirements/common_constraints.txt + # -r requirements/django.txt exceptiongroup==1.2.0 # via pytest iniconfig==2.0.0