diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 96473769..6423fc2e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,27 +15,19 @@ concurrency: jobs: tests: runs-on: ${{ matrix.os }} - services: - # Using SQLite3 for integration tests throws `django.db.utils.OperationalError: database table is locked: workbench_xblockstate`. - mysql: - image: mysql:8 - env: - MYSQL_ROOT_PASSWORD: rootpw - ports: - - 3307:3306 strategy: fail-fast: false matrix: - os: [ubuntu-20.04] - python-version: [3.8] - toxenv: [py38-django32, py38-django42, integration32, integration42, quality] + os: [ubuntu-latest] + python-version: [3.11, 3.12] + toxenv: [django42, django52, quality] steps: - name: checkout repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: setup python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} @@ -54,8 +46,8 @@ jobs: run: tox - name: Run coverage - if: matrix.python-version == '3.8' && matrix.toxenv == 'py38-django32' - uses: codecov/codecov-action@v3 + if: matrix.python-version == '3.11' && matrix.toxenv == 'django42' + uses: codecov/codecov-action@v5 with: token: ${{ secrets.CODECOV_TOKEN }} flags: unittests diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml index 527dc58c..4d20b0c3 100644 --- a/.github/workflows/pypi-publish.yml +++ b/.github/workflows/pypi-publish.yml @@ -6,16 +6,16 @@ on: jobs: push: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: setup python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: - python-version: 3.8 + python-version: 3.11 - name: Install Dependencies run: pip install -r requirements/pip.txt diff --git a/.gitignore b/.gitignore index 6c4fc06a..f729b409 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ *~ *.pyc -/.coverage* +.coverage +.coverage.* +coverage.xml /xblock_problem_builder.egg-info /workbench* /dist diff --git a/Makefile b/Makefile index 16783a0f..72add859 100644 --- a/Makefile +++ b/Makefile @@ -59,7 +59,7 @@ test.unit: ## run all unit tests tox -- $(TEST) test.integration: ## run all integration tests - tox -e integration -- $(TEST) + tox -e integration42 -- $(TEST) test: test.unit test.integration test.quality ## Run all tests diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 00000000..112c1632 --- /dev/null +++ b/codecov.yml @@ -0,0 +1,6 @@ +coverage: + status: + project: + default: + target: auto + threshold: 0.1% diff --git a/problem_builder/__init__.py b/problem_builder/__init__.py index 1070cc03..6c235c59 100644 --- a/problem_builder/__init__.py +++ b/problem_builder/__init__.py @@ -1 +1 @@ -__version__ = "5.1.4" +__version__ = "5.2.0" diff --git a/problem_builder/choice.py b/problem_builder/choice.py index b44fe6b4..a6020da0 100644 --- a/problem_builder/choice.py +++ b/problem_builder/choice.py @@ -133,7 +133,7 @@ def get_template(cls, template_id): return {'metadata': {}, 'data': {}} @classmethod - def parse_xml(cls, node, runtime, keys, id_generator): + def parse_xml(cls, node, runtime, keys): """ Construct this XBlock from the given XML node. """ diff --git a/problem_builder/message.py b/problem_builder/message.py index 5f7dfcd6..da60370a 100644 --- a/problem_builder/message.py +++ b/problem_builder/message.py @@ -150,7 +150,7 @@ def get_template(cls, template_id): }} @classmethod - def parse_xml(cls, node, runtime, keys, id_generator): + def parse_xml(cls, node, runtime, keys): """ Construct this XBlock from the given XML node. """ diff --git a/problem_builder/tip.py b/problem_builder/tip.py index 18abdecc..7e0c9048 100644 --- a/problem_builder/tip.py +++ b/problem_builder/tip.py @@ -131,7 +131,7 @@ def add_error(msg): add_error(self._("A choice selected for this tip does not exist.")) @classmethod - def parse_xml(cls, node, runtime, keys, id_generator): + def parse_xml(cls, node, runtime, keys): """ Construct this XBlock from the given XML node. """ diff --git a/problem_builder/v1/studio_xml_utils.py b/problem_builder/v1/studio_xml_utils.py index 907e7f1d..4c08603b 100644 --- a/problem_builder/v1/studio_xml_utils.py +++ b/problem_builder/v1/studio_xml_utils.py @@ -53,7 +53,7 @@ def create_block_from_node(self, node): usage_id = self.id_generator.create_usage(def_id) keys = ScopeIds(None, block_type, def_id, usage_id) block_class = self.mixologist.mix(self.load_block_type(block_type)) - block = block_class.parse_xml(node, self, keys, self.id_generator) + block = block_class.parse_xml(node, self, keys) block.save() return block diff --git a/problem_builder/v1/tests/test_upgrade.py b/problem_builder/v1/tests/test_upgrade.py index 16357ec5..79c44b1f 100644 --- a/problem_builder/v1/tests/test_upgrade.py +++ b/problem_builder/v1/tests/test_upgrade.py @@ -88,7 +88,7 @@ def create_block_from_node(self, node): usage_id = self.runtime.id_generator.create_usage(def_id) keys = ScopeIds(None, block_type, def_id, usage_id) block_class = self.runtime.mixologist.mix(self.runtime.load_block_type(block_type)) - block = block_class.parse_xml(node, self.runtime, keys, self.runtime.id_generator) + block = block_class.parse_xml(node, self.runtime, keys) block.save() return block diff --git a/problem_builder/v1/upgrade.py b/problem_builder/v1/upgrade.py index d623454a..35cea020 100644 --- a/problem_builder/v1/upgrade.py +++ b/problem_builder/v1/upgrade.py @@ -70,7 +70,7 @@ def upgrade_block(store, block, from_version="v1"): pass # Perhaps HtmlModule has been converted to an XBlock? else: @classmethod - def parse_xml_for_HtmlDescriptor(cls, node, runtime, keys, id_generator): + def parse_xml_for_HtmlDescriptor(cls, node, runtime, keys): block = runtime.construct_xblock_from_class(cls, keys) block.data = node.text if node.text else "" for child in list(node): diff --git a/pylintrc b/pylintrc index 90e03c12..6d21a26b 100644 --- a/pylintrc +++ b/pylintrc @@ -365,6 +365,7 @@ disable=blacklisted-name, comprehension-escape, import-outside-toplevel, use-dict-literal, + too-many-positional-arguments, # Enable the message, report, category or checker with the given id(s). You can # either give multiple identifier separated by comma (,) or put this option diff --git a/requirements/base.txt b/requirements/base.txt index 950a3c8a..ec5500dc 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,25 +1,27 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # appdirs==1.4.4 # via fs -asgiref==3.7.2 +asgiref==3.8.1 # via django -boto3==1.34.49 +boto3==1.38.37 # via fs-s3fs -botocore==1.34.49 +botocore==1.38.37 # via # boto3 # s3transfer -django==3.2.24 +django==4.2.23 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.in # openedx-django-pyfs -edx-opaque-keys==2.5.1 +dnspython==2.7.0 + # via pymongo +edx-opaque-keys==3.0.0 # via -r requirements/base.in fs==2.4.16 # via @@ -34,60 +36,58 @@ jmespath==1.0.1 # botocore lazy==1.6 # via xblock -lxml==5.1.0 +lxml==5.4.0 # via xblock -mako==1.3.2 +mako==1.3.10 # via # xblock # xblock-utils -markupsafe==2.1.5 +markupsafe==3.0.2 # via # mako # xblock -openedx-django-pyfs==3.5.0 +openedx-django-pyfs==3.8.0 # via xblock -pbr==6.0.0 +pbr==6.1.1 # via stevedore -pymongo==3.13.0 +pymongo==4.13.2 # via edx-opaque-keys -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # botocore # xblock -pytz==2024.1 - # via - # django - # xblock -pyyaml==6.0.1 +pytz==2025.2 + # via xblock +pyyaml==6.0.2 # via xblock -s3transfer==0.10.0 +s3transfer==0.13.0 # via boto3 -simplejson==3.19.2 +simplejson==3.20.1 # via # xblock # xblock-utils -six==1.16.0 +six==1.17.0 # via # fs # fs-s3fs # python-dateutil -sqlparse==0.4.4 +sqlparse==0.5.3 # via django -stevedore==5.2.0 +stevedore==5.4.1 # via edx-opaque-keys -typing-extensions==4.10.0 +typing-extensions==4.14.0 + # via edx-opaque-keys +urllib3==2.2.3 # via - # asgiref - # edx-opaque-keys -urllib3==1.26.18 - # via botocore -web-fragments==2.1.0 + # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + # botocore +web-fragments==3.1.0 # via # xblock # xblock-utils -webob==1.8.7 +webob==1.8.9 # via xblock -xblock[django]==1.10.0 +xblock[django]==5.2.0 # via xblock-utils xblock-utils==4.0.0 # via -r requirements/base.in diff --git a/requirements/ci.txt b/requirements/ci.txt index a58d1b17..658cedb0 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -1,38 +1,34 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -distlib==0.3.8 +distlib==0.3.9 # via virtualenv -filelock==3.13.1 +filelock==3.18.0 # via # tox # virtualenv -packaging==23.2 +packaging==25.0 # via # pyproject-api # tox -platformdirs==4.2.0 +platformdirs==4.3.8 # via # tox # virtualenv -pluggy==1.4.0 +pluggy==1.6.0 # via tox py==1.11.0 # via tox -six==1.16.0 +six==1.17.0 # via tox -tomli==2.0.1 - # via - # pyproject-api - # tox tox==3.28.0 # via # -r requirements/ci.in # tox-battery tox-battery==0.6.2 # via -r requirements/ci.in -virtualenv==20.25.1 +virtualenv==20.31.2 # via tox diff --git a/requirements/dev.txt b/requirements/dev.txt index fdfbfb47..30b8e164 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade @@ -14,12 +14,12 @@ arrow==1.3.0 # -r requirements/quality.txt # -r requirements/workbench.txt # cookiecutter -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/quality.txt # -r requirements/workbench.txt # django -astroid==3.1.0 +astroid==3.3.10 # via # -r requirements/quality.txt # pylint @@ -33,22 +33,22 @@ bok-choy==0.7.1 # via # -c requirements/constraints.txt # -r requirements/workbench.txt -boto3==1.34.49 +boto3==1.38.37 # via # -r requirements/quality.txt # -r requirements/workbench.txt # fs-s3fs -botocore==1.34.49 +botocore==1.38.37 # via # -r requirements/quality.txt # -r requirements/workbench.txt # boto3 # s3transfer -build==1.0.3 +build==1.2.2.post1 # via # -r requirements/pip-tools.txt # pip-tools -certifi==2024.2.2 +certifi==2025.6.15 # via # -r requirements/quality.txt # -r requirements/workbench.txt @@ -58,12 +58,12 @@ chardet==5.2.0 # -r requirements/quality.txt # -r requirements/workbench.txt # binaryornot -charset-normalizer==3.3.2 +charset-normalizer==3.4.2 # via # -r requirements/quality.txt # -r requirements/workbench.txt # requests -click==8.1.7 +click==8.2.1 # via # -r requirements/pip-tools.txt # -r requirements/quality.txt @@ -77,7 +77,7 @@ click-log==0.4.0 # via # -r requirements/quality.txt # edx-lint -code-annotations==1.6.0 +code-annotations==2.3.0 # via # -r requirements/quality.txt # -r requirements/workbench.txt @@ -87,24 +87,24 @@ cookiecutter==2.6.0 # -r requirements/quality.txt # -r requirements/workbench.txt # xblock-sdk -coverage[toml]==7.4.3 +coverage[toml]==7.9.1 # via # -r requirements/quality.txt # -r requirements/workbench.txt # pytest-cov -ddt==1.7.1 +ddt==1.7.2 # via # -r requirements/quality.txt # -r requirements/workbench.txt -dill==0.3.8 +dill==0.4.0 # via # -r requirements/quality.txt # pylint -distlib==0.3.8 +distlib==0.3.9 # via # -r requirements/ci.txt # virtualenv -django==3.2.24 +django==4.2.23 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/quality.txt @@ -114,31 +114,31 @@ django==3.2.24 # edx-i18n-tools # openedx-django-pyfs # xblock-sdk -django-appconf==1.0.6 +django-appconf==1.1.0 # via # -r requirements/quality.txt # -r requirements/workbench.txt # django-statici18n -django-statici18n==2.4.0 +django-statici18n==2.6.0 # via # -r requirements/quality.txt # -r requirements/workbench.txt -edx-i18n-tools==1.3.0 +dnspython==2.7.0 # via # -r requirements/quality.txt # -r requirements/workbench.txt -edx-lint==5.3.6 - # via -r requirements/quality.txt -edx-opaque-keys==2.5.1 + # pymongo +edx-i18n-tools==1.9.0 # via # -r requirements/quality.txt # -r requirements/workbench.txt -exceptiongroup==1.2.0 +edx-lint==5.6.0 + # via -r requirements/quality.txt +edx-opaque-keys==3.0.0 # via # -r requirements/quality.txt # -r requirements/workbench.txt - # pytest -filelock==3.13.1 +filelock==3.18.0 # via # -r requirements/ci.txt # tox @@ -156,25 +156,21 @@ fs-s3fs==1.1.1 # -r requirements/workbench.txt # openedx-django-pyfs # xblock-sdk -idna==3.6 +idna==3.10 # via # -r requirements/quality.txt # -r requirements/workbench.txt # requests -importlib-metadata==7.0.1 - # via - # -r requirements/pip-tools.txt - # build -iniconfig==2.0.0 +iniconfig==2.1.0 # via # -r requirements/quality.txt # -r requirements/workbench.txt # pytest -isort==5.13.2 +isort==6.0.1 # via # -r requirements/quality.txt # pylint -jinja2==3.1.3 +jinja2==3.1.6 # via # -r requirements/quality.txt # -r requirements/workbench.txt @@ -192,14 +188,20 @@ lazy==1.6 # -r requirements/workbench.txt # bok-choy # xblock -lxml==5.1.0 +lxml[html-clean]==5.4.0 # via # -r requirements/quality.txt # -r requirements/workbench.txt # edx-i18n-tools + # lxml-html-clean # xblock # xblock-sdk -mako==1.3.2 +lxml-html-clean==0.4.2 + # via + # -r requirements/quality.txt + # -r requirements/workbench.txt + # lxml +mako==1.3.10 # via # -r requirements/quality.txt # -r requirements/workbench.txt @@ -210,7 +212,7 @@ markdown-it-py==3.0.0 # -r requirements/quality.txt # -r requirements/workbench.txt # rich -markupsafe==2.1.5 +markupsafe==3.0.2 # via # -r requirements/quality.txt # -r requirements/workbench.txt @@ -226,11 +228,11 @@ mdurl==0.1.2 # -r requirements/quality.txt # -r requirements/workbench.txt # markdown-it-py -mock==5.1.0 +mock==5.2.0 # via # -r requirements/quality.txt # -r requirements/workbench.txt -mysqlclient==2.2.4 +mysqlclient==2.2.7 # via -r requirements/workbench.txt needle==0.5.0 # via @@ -240,12 +242,12 @@ nose==1.3.7 # via # -r requirements/workbench.txt # needle -openedx-django-pyfs==3.5.0 +openedx-django-pyfs==3.8.0 # via # -r requirements/quality.txt # -r requirements/workbench.txt # xblock -packaging==23.2 +packaging==25.0 # via # -r requirements/ci.txt # -r requirements/pip-tools.txt @@ -254,34 +256,35 @@ packaging==23.2 # build # pytest # tox -path==16.10.0 +path==16.16.0 # via # -r requirements/quality.txt # -r requirements/workbench.txt # edx-i18n-tools -pbr==6.0.0 +pbr==6.1.1 # via # -r requirements/quality.txt # -r requirements/workbench.txt # stevedore -pillow==10.2.0 +pillow==11.2.1 # via # -r requirements/workbench.txt # needle -pip-tools==7.4.0 +pip-tools==7.4.1 # via -r requirements/pip-tools.txt -platformdirs==4.2.0 +platformdirs==4.3.8 # via # -r requirements/ci.txt # -r requirements/quality.txt # pylint # virtualenv -pluggy==1.4.0 +pluggy==1.6.0 # via # -r requirements/ci.txt # -r requirements/quality.txt # -r requirements/workbench.txt # pytest + # pytest-cov # tox polib==1.2.0 # via @@ -292,16 +295,17 @@ py==1.11.0 # via # -r requirements/ci.txt # tox -pycodestyle==2.11.1 +pycodestyle==2.13.0 # via -r requirements/quality.txt pydocstyle==6.3.0 # via -r requirements/quality.txt -pygments==2.17.2 +pygments==2.19.1 # via # -r requirements/quality.txt # -r requirements/workbench.txt + # pytest # rich -pylint==3.1.0 +pylint==3.3.7 # via # -r requirements/quality.txt # edx-lint @@ -312,7 +316,7 @@ pylint-celery==0.3 # via # -r requirements/quality.txt # edx-lint -pylint-django==2.5.5 +pylint-django==2.6.1 # via # -r requirements/quality.txt # edx-lint @@ -321,7 +325,7 @@ pylint-plugin-utils==0.8.2 # -r requirements/quality.txt # pylint-celery # pylint-django -pymongo==3.13.0 +pymongo==4.13.2 # via # -r requirements/quality.txt # -r requirements/workbench.txt @@ -331,26 +335,26 @@ pypng==0.20220715.0 # -r requirements/quality.txt # -r requirements/workbench.txt # xblock-sdk -pyproject-hooks==1.0.0 +pyproject-hooks==1.2.0 # via # -r requirements/pip-tools.txt # build # pip-tools -pytest==8.0.2 +pytest==8.4.0 # via # -r requirements/quality.txt # -r requirements/workbench.txt # pytest-cov # pytest-django -pytest-cov==4.1.0 +pytest-cov==6.2.1 # via # -r requirements/quality.txt # -r requirements/workbench.txt -pytest-django==4.8.0 +pytest-django==4.11.1 # via # -r requirements/quality.txt # -r requirements/workbench.txt -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # -r requirements/quality.txt # -r requirements/workbench.txt @@ -363,13 +367,12 @@ python-slugify==8.0.4 # -r requirements/workbench.txt # code-annotations # cookiecutter -pytz==2024.1 +pytz==2025.2 # via # -r requirements/quality.txt # -r requirements/workbench.txt - # django # xblock -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/quality.txt # -r requirements/workbench.txt @@ -377,18 +380,18 @@ pyyaml==6.0.1 # cookiecutter # edx-i18n-tools # xblock -requests==2.31.0 +requests==2.32.4 # via # -r requirements/quality.txt # -r requirements/workbench.txt # cookiecutter # xblock-sdk -rich==13.7.0 +rich==14.0.0 # via # -r requirements/quality.txt # -r requirements/workbench.txt # cookiecutter -s3transfer==0.10.0 +s3transfer==0.13.0 # via # -r requirements/quality.txt # -r requirements/workbench.txt @@ -398,14 +401,14 @@ selenium==3.141.0 # -r requirements/workbench.txt # bok-choy # needle -simplejson==3.19.2 +simplejson==3.20.1 # via # -r requirements/quality.txt # -r requirements/workbench.txt # xblock # xblock-sdk # xblock-utils -six==1.16.0 +six==1.17.0 # via # -r requirements/ci.txt # -r requirements/quality.txt @@ -416,16 +419,16 @@ six==1.16.0 # fs-s3fs # python-dateutil # tox -snowballstemmer==2.2.0 +snowballstemmer==3.0.1 # via # -r requirements/quality.txt # pydocstyle -sqlparse==0.4.4 +sqlparse==0.5.3 # via # -r requirements/quality.txt # -r requirements/workbench.txt # django -stevedore==5.2.0 +stevedore==5.4.1 # via # -r requirements/quality.txt # -r requirements/workbench.txt @@ -436,20 +439,7 @@ text-unidecode==1.3 # -r requirements/quality.txt # -r requirements/workbench.txt # python-slugify -tomli==2.0.1 - # via - # -r requirements/ci.txt - # -r requirements/pip-tools.txt - # -r requirements/quality.txt - # -r requirements/workbench.txt - # build - # coverage - # pip-tools - # pylint - # pyproject-hooks - # pytest - # tox -tomlkit==0.12.3 +tomlkit==0.13.3 # via # -r requirements/quality.txt # pylint @@ -459,55 +449,52 @@ tox==3.28.0 # tox-battery tox-battery==0.6.2 # via -r requirements/ci.txt -types-python-dateutil==2.8.19.20240106 +types-python-dateutil==2.9.0.20250516 # via # -r requirements/quality.txt # -r requirements/workbench.txt # arrow -typing-extensions==4.10.0 +typing-extensions==4.14.0 # via # -r requirements/quality.txt # -r requirements/workbench.txt - # asgiref - # astroid # edx-opaque-keys - # pylint - # rich -urllib3==1.26.18 +urllib3==2.2.3 # via + # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/quality.txt # -r requirements/workbench.txt # botocore # requests # selenium -virtualenv==20.25.1 +virtualenv==20.31.2 # via # -r requirements/ci.txt # tox -web-fragments==2.1.0 +web-fragments==3.1.0 # via # -r requirements/quality.txt # -r requirements/workbench.txt # xblock # xblock-sdk # xblock-utils -webob==1.8.7 +webob==1.8.9 # via # -r requirements/quality.txt # -r requirements/workbench.txt # xblock # xblock-sdk -wheel==0.42.0 +wheel==0.45.1 # via # -r requirements/pip-tools.txt # pip-tools -xblock[django]==1.10.0 +xblock[django]==5.2.0 # via # -r requirements/quality.txt # -r requirements/workbench.txt # xblock-sdk # xblock-utils -xblock-sdk==0.7.0 +xblock-sdk==0.13.0 # via # -r requirements/quality.txt # -r requirements/workbench.txt @@ -515,10 +502,6 @@ xblock-utils==4.0.0 # via # -r requirements/quality.txt # -r requirements/workbench.txt -zipp==3.17.0 - # via - # -r requirements/pip-tools.txt - # importlib-metadata # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 44c48d99..990b4234 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -1,32 +1,23 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -build==1.0.3 +build==1.2.2.post1 # via pip-tools -click==8.1.7 +click==8.2.1 # via pip-tools -importlib-metadata==7.0.1 +packaging==25.0 # via build -packaging==23.2 - # via build -pip-tools==7.4.0 +pip-tools==7.4.1 # via -r requirements/pip-tools.in -pyproject-hooks==1.0.0 - # via - # build - # pip-tools -tomli==2.0.1 +pyproject-hooks==1.2.0 # via # build # pip-tools - # pyproject-hooks -wheel==0.42.0 +wheel==0.45.1 # via pip-tools -zipp==3.17.0 - # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/requirements/pip.txt b/requirements/pip.txt index 66656035..e109db2d 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -1,14 +1,16 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -wheel==0.42.0 +wheel==0.45.1 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==24.0 - # via -r requirements/pip.in -setuptools==69.1.1 +pip==24.2 + # via + # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + # -r requirements/pip.in +setuptools==80.9.0 # via -r requirements/pip.in diff --git a/requirements/quality.txt b/requirements/quality.txt index 87deeb77..4ad45966 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade @@ -12,11 +12,11 @@ arrow==1.3.0 # via # -r requirements/test.txt # cookiecutter -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/test.txt # django -astroid==3.1.0 +astroid==3.3.10 # via # pylint # pylint-celery @@ -24,16 +24,16 @@ binaryornot==0.4.4 # via # -r requirements/test.txt # cookiecutter -boto3==1.34.49 +boto3==1.38.37 # via # -r requirements/test.txt # fs-s3fs -botocore==1.34.49 +botocore==1.38.37 # via # -r requirements/test.txt # boto3 # s3transfer -certifi==2024.2.2 +certifi==2025.6.15 # via # -r requirements/test.txt # requests @@ -41,11 +41,11 @@ chardet==5.2.0 # via # -r requirements/test.txt # binaryornot -charset-normalizer==3.3.2 +charset-normalizer==3.4.2 # via # -r requirements/test.txt # requests -click==8.1.7 +click==8.2.1 # via # -r requirements/test.txt # click-log @@ -54,7 +54,7 @@ click==8.1.7 # edx-lint click-log==0.4.0 # via edx-lint -code-annotations==1.6.0 +code-annotations==2.3.0 # via # -r requirements/test.txt # edx-lint @@ -62,15 +62,15 @@ cookiecutter==2.6.0 # via # -r requirements/test.txt # xblock-sdk -coverage[toml]==7.4.3 +coverage[toml]==7.9.1 # via # -r requirements/test.txt # pytest-cov -ddt==1.7.1 +ddt==1.7.2 # via -r requirements/test.txt -dill==0.3.8 +dill==0.4.0 # via pylint -django==3.2.24 +django==4.2.23 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/test.txt @@ -79,22 +79,22 @@ django==3.2.24 # edx-i18n-tools # openedx-django-pyfs # xblock-sdk -django-appconf==1.0.6 +django-appconf==1.1.0 # via # -r requirements/test.txt # django-statici18n -django-statici18n==2.4.0 +django-statici18n==2.6.0 # via -r requirements/test.txt -edx-i18n-tools==1.3.0 +dnspython==2.7.0 + # via + # -r requirements/test.txt + # pymongo +edx-i18n-tools==1.9.0 # via -r requirements/test.txt -edx-lint==5.3.6 +edx-lint==5.6.0 # via -r requirements/quality.in -edx-opaque-keys==2.5.1 +edx-opaque-keys==3.0.0 # via -r requirements/test.txt -exceptiongroup==1.2.0 - # via - # -r requirements/test.txt - # pytest fs==2.4.16 # via # -r requirements/test.txt @@ -106,19 +106,19 @@ fs-s3fs==1.1.1 # -r requirements/test.txt # openedx-django-pyfs # xblock-sdk -idna==3.6 +idna==3.10 # via # -r requirements/test.txt # requests -iniconfig==2.0.0 +iniconfig==2.1.0 # via # -r requirements/test.txt # pytest -isort==5.13.2 +isort==6.0.1 # via # -r requirements/quality.in # pylint -jinja2==3.1.3 +jinja2==3.1.6 # via # -r requirements/test.txt # code-annotations @@ -132,13 +132,18 @@ lazy==1.6 # via # -r requirements/test.txt # xblock -lxml==5.1.0 +lxml[html-clean]==5.4.0 # via # -r requirements/test.txt # edx-i18n-tools + # lxml-html-clean # xblock # xblock-sdk -mako==1.3.2 +lxml-html-clean==0.4.2 + # via + # -r requirements/test.txt + # lxml +mako==1.3.10 # via # -r requirements/test.txt # xblock @@ -147,7 +152,7 @@ markdown-it-py==3.0.0 # via # -r requirements/test.txt # rich -markupsafe==2.1.5 +markupsafe==3.0.2 # via # -r requirements/test.txt # jinja2 @@ -159,43 +164,45 @@ mdurl==0.1.2 # via # -r requirements/test.txt # markdown-it-py -mock==5.1.0 +mock==5.2.0 # via -r requirements/test.txt -openedx-django-pyfs==3.5.0 +openedx-django-pyfs==3.8.0 # via # -r requirements/test.txt # xblock -packaging==23.2 +packaging==25.0 # via # -r requirements/test.txt # pytest -path==16.10.0 +path==16.16.0 # via # -r requirements/test.txt # edx-i18n-tools -pbr==6.0.0 +pbr==6.1.1 # via # -r requirements/test.txt # stevedore -platformdirs==4.2.0 +platformdirs==4.3.8 # via pylint -pluggy==1.4.0 +pluggy==1.6.0 # via # -r requirements/test.txt # pytest + # pytest-cov polib==1.2.0 # via # -r requirements/test.txt # edx-i18n-tools -pycodestyle==2.11.1 +pycodestyle==2.13.0 # via -r requirements/quality.in pydocstyle==6.3.0 # via -r requirements/quality.in -pygments==2.17.2 +pygments==2.19.1 # via # -r requirements/test.txt + # pytest # rich -pylint==3.1.0 +pylint==3.3.7 # via # edx-lint # pylint-celery @@ -203,13 +210,13 @@ pylint==3.1.0 # pylint-plugin-utils pylint-celery==0.3 # via edx-lint -pylint-django==2.5.5 +pylint-django==2.6.1 # via edx-lint pylint-plugin-utils==0.8.2 # via # pylint-celery # pylint-django -pymongo==3.13.0 +pymongo==4.13.2 # via # -r requirements/test.txt # edx-opaque-keys @@ -217,16 +224,16 @@ pypng==0.20220715.0 # via # -r requirements/test.txt # xblock-sdk -pytest==8.0.2 +pytest==8.4.0 # via # -r requirements/test.txt # pytest-cov # pytest-django -pytest-cov==4.1.0 +pytest-cov==6.2.1 # via -r requirements/test.txt -pytest-django==4.8.0 +pytest-django==4.11.1 # via -r requirements/test.txt -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # -r requirements/test.txt # arrow @@ -237,51 +244,50 @@ python-slugify==8.0.4 # -r requirements/test.txt # code-annotations # cookiecutter -pytz==2024.1 +pytz==2025.2 # via # -r requirements/test.txt - # django # xblock -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/test.txt # code-annotations # cookiecutter # edx-i18n-tools # xblock -requests==2.31.0 +requests==2.32.4 # via # -r requirements/test.txt # cookiecutter # xblock-sdk -rich==13.7.0 +rich==14.0.0 # via # -r requirements/test.txt # cookiecutter -s3transfer==0.10.0 +s3transfer==0.13.0 # via # -r requirements/test.txt # boto3 -simplejson==3.19.2 +simplejson==3.20.1 # via # -r requirements/test.txt # xblock # xblock-sdk # xblock-utils -six==1.16.0 +six==1.17.0 # via # -r requirements/test.txt # edx-lint # fs # fs-s3fs # python-dateutil -snowballstemmer==2.2.0 +snowballstemmer==3.0.1 # via pydocstyle -sqlparse==0.4.4 +sqlparse==0.5.3 # via # -r requirements/test.txt # django -stevedore==5.2.0 +stevedore==5.4.1 # via # -r requirements/test.txt # code-annotations @@ -290,48 +296,39 @@ text-unidecode==1.3 # via # -r requirements/test.txt # python-slugify -tomli==2.0.1 - # via - # -r requirements/test.txt - # coverage - # pylint - # pytest -tomlkit==0.12.3 +tomlkit==0.13.3 # via pylint -types-python-dateutil==2.8.19.20240106 +types-python-dateutil==2.9.0.20250516 # via # -r requirements/test.txt # arrow -typing-extensions==4.10.0 +typing-extensions==4.14.0 # via # -r requirements/test.txt - # asgiref - # astroid # edx-opaque-keys - # pylint - # rich -urllib3==1.26.18 +urllib3==2.2.3 # via + # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/test.txt # botocore # requests -web-fragments==2.1.0 +web-fragments==3.1.0 # via # -r requirements/test.txt # xblock # xblock-sdk # xblock-utils -webob==1.8.7 +webob==1.8.9 # via # -r requirements/test.txt # xblock # xblock-sdk -xblock[django]==1.10.0 +xblock[django]==5.2.0 # via # -r requirements/test.txt # xblock-sdk # xblock-utils -xblock-sdk==0.7.0 +xblock-sdk==0.13.0 # via -r requirements/test.txt xblock-utils==4.0.0 # via -r requirements/test.txt diff --git a/requirements/test.txt b/requirements/test.txt index 6f0ce5f3..08f41356 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade @@ -10,38 +10,38 @@ appdirs==1.4.4 # fs arrow==1.3.0 # via cookiecutter -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/base.txt # django binaryornot==0.4.4 # via cookiecutter -boto3==1.34.49 +boto3==1.38.37 # via # -r requirements/base.txt # fs-s3fs -botocore==1.34.49 +botocore==1.38.37 # via # -r requirements/base.txt # boto3 # s3transfer -certifi==2024.2.2 +certifi==2025.6.15 # via requests chardet==5.2.0 # via binaryornot -charset-normalizer==3.3.2 +charset-normalizer==3.4.2 # via requests -click==8.1.7 +click==8.2.1 # via # code-annotations # cookiecutter -code-annotations==1.6.0 +code-annotations==2.3.0 # via -r requirements/test.in cookiecutter==2.6.0 # via xblock-sdk -coverage[toml]==7.4.3 +coverage[toml]==7.9.1 # via pytest-cov -ddt==1.7.1 +ddt==1.7.2 # via -r requirements/test.in # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt @@ -51,16 +51,18 @@ ddt==1.7.1 # edx-i18n-tools # openedx-django-pyfs # xblock-sdk -django-appconf==1.0.6 +django-appconf==1.1.0 # via django-statici18n -django-statici18n==2.4.0 +django-statici18n==2.6.0 # via -r requirements/test.in -edx-i18n-tools==1.3.0 +dnspython==2.7.0 + # via + # -r requirements/base.txt + # pymongo +edx-i18n-tools==1.9.0 # via -r requirements/test.in -edx-opaque-keys==2.5.1 +edx-opaque-keys==3.0.0 # via -r requirements/base.txt -exceptiongroup==1.2.0 - # via pytest fs==2.4.16 # via # -r requirements/base.txt @@ -72,11 +74,11 @@ fs-s3fs==1.1.1 # -r requirements/base.txt # openedx-django-pyfs # xblock-sdk -idna==3.6 +idna==3.10 # via requests -iniconfig==2.0.0 +iniconfig==2.1.0 # via pytest -jinja2==3.1.3 +jinja2==3.1.6 # via # code-annotations # cookiecutter @@ -89,20 +91,23 @@ lazy==1.6 # via # -r requirements/base.txt # xblock -lxml==5.1.0 +lxml[html-clean]==5.4.0 # via # -r requirements/base.txt # edx-i18n-tools + # lxml-html-clean # xblock # xblock-sdk -mako==1.3.2 +lxml-html-clean==0.4.2 + # via lxml +mako==1.3.10 # via # -r requirements/base.txt # xblock # xblock-utils markdown-it-py==3.0.0 # via rich -markupsafe==2.1.5 +markupsafe==3.0.2 # via # -r requirements/base.txt # jinja2 @@ -110,41 +115,45 @@ markupsafe==2.1.5 # xblock mdurl==0.1.2 # via markdown-it-py -mock==5.1.0 +mock==5.2.0 # via -r requirements/test.in -openedx-django-pyfs==3.5.0 +openedx-django-pyfs==3.8.0 # via # -r requirements/base.txt # xblock -packaging==23.2 +packaging==25.0 # via pytest -path==16.10.0 +path==16.16.0 # via edx-i18n-tools -pbr==6.0.0 +pbr==6.1.1 # via # -r requirements/base.txt # stevedore -pluggy==1.4.0 - # via pytest +pluggy==1.6.0 + # via + # pytest + # pytest-cov polib==1.2.0 # via edx-i18n-tools -pygments==2.17.2 - # via rich -pymongo==3.13.0 +pygments==2.19.1 + # via + # pytest + # rich +pymongo==4.13.2 # via # -r requirements/base.txt # edx-opaque-keys pypng==0.20220715.0 # via xblock-sdk -pytest==8.0.2 +pytest==8.4.0 # via # pytest-cov # pytest-django -pytest-cov==4.1.0 +pytest-cov==6.2.1 # via -r requirements/test.in -pytest-django==4.8.0 +pytest-django==4.11.1 # via -r requirements/test.in -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # -r requirements/base.txt # arrow @@ -154,86 +163,80 @@ python-slugify==8.0.4 # via # code-annotations # cookiecutter -pytz==2024.1 +pytz==2025.2 # via # -r requirements/base.txt - # django # xblock -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/base.txt # code-annotations # cookiecutter # edx-i18n-tools # xblock -requests==2.31.0 +requests==2.32.4 # via # cookiecutter # xblock-sdk -rich==13.7.0 +rich==14.0.0 # via cookiecutter -s3transfer==0.10.0 +s3transfer==0.13.0 # via # -r requirements/base.txt # boto3 -simplejson==3.19.2 +simplejson==3.20.1 # via # -r requirements/base.txt # xblock # xblock-sdk # xblock-utils -six==1.16.0 +six==1.17.0 # via # -r requirements/base.txt # fs # fs-s3fs # python-dateutil -sqlparse==0.4.4 +sqlparse==0.5.3 # via # -r requirements/base.txt # django -stevedore==5.2.0 +stevedore==5.4.1 # via # -r requirements/base.txt # code-annotations # edx-opaque-keys text-unidecode==1.3 # via python-slugify -tomli==2.0.1 - # via - # coverage - # pytest -types-python-dateutil==2.8.19.20240106 +types-python-dateutil==2.9.0.20250516 # via arrow -typing-extensions==4.10.0 +typing-extensions==4.14.0 # via # -r requirements/base.txt - # asgiref # edx-opaque-keys - # rich -urllib3==1.26.18 +urllib3==2.2.3 # via + # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.txt # botocore # requests -web-fragments==2.1.0 +web-fragments==3.1.0 # via # -r requirements/base.txt # xblock # xblock-sdk # xblock-utils -webob==1.8.7 +webob==1.8.9 # via # -r requirements/base.txt # xblock # xblock-sdk -xblock[django]==1.10.0 +xblock[django]==5.2.0 # via # -r requirements/base.txt # -r requirements/test.in # xblock-sdk # xblock-utils -xblock-sdk==0.7.0 +xblock-sdk==0.13.0 # via -r requirements/test.in xblock-utils==4.0.0 # via -r requirements/base.txt diff --git a/requirements/workbench.txt b/requirements/workbench.txt index c1e741f2..a4a4c693 100644 --- a/requirements/workbench.txt +++ b/requirements/workbench.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade @@ -12,7 +12,7 @@ arrow==1.3.0 # via # -r requirements/test.txt # cookiecutter -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/test.txt # django @@ -24,16 +24,16 @@ bok-choy==0.7.1 # via # -c requirements/constraints.txt # -r requirements/workbench.in -boto3==1.34.49 +boto3==1.38.37 # via # -r requirements/test.txt # fs-s3fs -botocore==1.34.49 +botocore==1.38.37 # via # -r requirements/test.txt # boto3 # s3transfer -certifi==2024.2.2 +certifi==2025.6.15 # via # -r requirements/test.txt # requests @@ -41,26 +41,26 @@ chardet==5.2.0 # via # -r requirements/test.txt # binaryornot -charset-normalizer==3.3.2 +charset-normalizer==3.4.2 # via # -r requirements/test.txt # requests -click==8.1.7 +click==8.2.1 # via # -r requirements/test.txt # code-annotations # cookiecutter -code-annotations==1.6.0 +code-annotations==2.3.0 # via -r requirements/test.txt cookiecutter==2.6.0 # via # -r requirements/test.txt # xblock-sdk -coverage[toml]==7.4.3 +coverage[toml]==7.9.1 # via # -r requirements/test.txt # pytest-cov -ddt==1.7.1 +ddt==1.7.2 # via -r requirements/test.txt # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt @@ -70,20 +70,20 @@ ddt==1.7.1 # edx-i18n-tools # openedx-django-pyfs # xblock-sdk -django-appconf==1.0.6 +django-appconf==1.1.0 # via # -r requirements/test.txt # django-statici18n -django-statici18n==2.4.0 +django-statici18n==2.6.0 # via -r requirements/test.txt -edx-i18n-tools==1.3.0 - # via -r requirements/test.txt -edx-opaque-keys==2.5.1 - # via -r requirements/test.txt -exceptiongroup==1.2.0 +dnspython==2.7.0 # via # -r requirements/test.txt - # pytest + # pymongo +edx-i18n-tools==1.9.0 + # via -r requirements/test.txt +edx-opaque-keys==3.0.0 + # via -r requirements/test.txt fs==2.4.16 # via # -r requirements/test.txt @@ -96,15 +96,15 @@ fs-s3fs==1.1.1 # -r requirements/workbench.in # openedx-django-pyfs # xblock-sdk -idna==3.6 +idna==3.10 # via # -r requirements/test.txt # requests -iniconfig==2.0.0 +iniconfig==2.1.0 # via # -r requirements/test.txt # pytest -jinja2==3.1.3 +jinja2==3.1.6 # via # -r requirements/test.txt # code-annotations @@ -119,14 +119,19 @@ lazy==1.6 # -r requirements/test.txt # bok-choy # xblock -lxml==5.1.0 +lxml[html-clean]==5.4.0 # via # -r requirements/test.txt # -r requirements/workbench.in # edx-i18n-tools + # lxml-html-clean # xblock # xblock-sdk -mako==1.3.2 +lxml-html-clean==0.4.2 + # via + # -r requirements/test.txt + # lxml +mako==1.3.10 # via # -r requirements/test.txt # xblock @@ -135,7 +140,7 @@ markdown-it-py==3.0.0 # via # -r requirements/test.txt # rich -markupsafe==2.1.5 +markupsafe==3.0.2 # via # -r requirements/test.txt # jinja2 @@ -145,45 +150,47 @@ mdurl==0.1.2 # via # -r requirements/test.txt # markdown-it-py -mock==5.1.0 +mock==5.2.0 # via -r requirements/test.txt -mysqlclient==2.2.4 +mysqlclient==2.2.7 # via -r requirements/workbench.in needle==0.5.0 # via bok-choy nose==1.3.7 # via needle -openedx-django-pyfs==3.5.0 +openedx-django-pyfs==3.8.0 # via # -r requirements/test.txt # xblock -packaging==23.2 +packaging==25.0 # via # -r requirements/test.txt # pytest -path==16.10.0 +path==16.16.0 # via # -r requirements/test.txt # edx-i18n-tools -pbr==6.0.0 +pbr==6.1.1 # via # -r requirements/test.txt # stevedore -pillow==10.2.0 +pillow==11.2.1 # via needle -pluggy==1.4.0 +pluggy==1.6.0 # via # -r requirements/test.txt # pytest + # pytest-cov polib==1.2.0 # via # -r requirements/test.txt # edx-i18n-tools -pygments==2.17.2 +pygments==2.19.1 # via # -r requirements/test.txt + # pytest # rich -pymongo==3.13.0 +pymongo==4.13.2 # via # -r requirements/test.txt # edx-opaque-keys @@ -192,16 +199,16 @@ pypng==0.20220715.0 # -r requirements/test.txt # -r requirements/workbench.in # xblock-sdk -pytest==8.0.2 +pytest==8.4.0 # via # -r requirements/test.txt # pytest-cov # pytest-django -pytest-cov==4.1.0 +pytest-cov==6.2.1 # via -r requirements/test.txt -pytest-django==4.8.0 +pytest-django==4.11.1 # via -r requirements/test.txt -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # -r requirements/test.txt # arrow @@ -212,29 +219,28 @@ python-slugify==8.0.4 # -r requirements/test.txt # code-annotations # cookiecutter -pytz==2024.1 +pytz==2025.2 # via # -r requirements/test.txt - # django # xblock -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/test.txt # code-annotations # cookiecutter # edx-i18n-tools # xblock -requests==2.31.0 +requests==2.32.4 # via # -r requirements/test.txt # -r requirements/workbench.in # cookiecutter # xblock-sdk -rich==13.7.0 +rich==14.0.0 # via # -r requirements/test.txt # cookiecutter -s3transfer==0.10.0 +s3transfer==0.13.0 # via # -r requirements/test.txt # boto3 @@ -243,25 +249,25 @@ selenium==3.141.0 # -r requirements/workbench.in # bok-choy # needle -simplejson==3.19.2 +simplejson==3.20.1 # via # -r requirements/test.txt # -r requirements/workbench.in # xblock # xblock-sdk # xblock-utils -six==1.16.0 +six==1.17.0 # via # -r requirements/test.txt # bok-choy # fs # fs-s3fs # python-dateutil -sqlparse==0.4.4 +sqlparse==0.5.3 # via # -r requirements/test.txt # django -stevedore==5.2.0 +stevedore==5.4.1 # via # -r requirements/test.txt # code-annotations @@ -270,46 +276,40 @@ text-unidecode==1.3 # via # -r requirements/test.txt # python-slugify -tomli==2.0.1 - # via - # -r requirements/test.txt - # coverage - # pytest -types-python-dateutil==2.8.19.20240106 +types-python-dateutil==2.9.0.20250516 # via # -r requirements/test.txt # arrow -typing-extensions==4.10.0 +typing-extensions==4.14.0 # via # -r requirements/test.txt - # asgiref # edx-opaque-keys - # rich -urllib3==1.26.18 +urllib3==2.2.3 # via + # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/test.txt # botocore # requests # selenium -web-fragments==2.1.0 +web-fragments==3.1.0 # via # -r requirements/test.txt # -r requirements/workbench.in # xblock # xblock-sdk # xblock-utils -webob==1.8.7 +webob==1.8.9 # via # -r requirements/test.txt # -r requirements/workbench.in # xblock # xblock-sdk -xblock[django]==1.10.0 +xblock[django]==5.2.0 # via # -r requirements/test.txt # xblock-sdk # xblock-utils -xblock-sdk==0.7.0 +xblock-sdk==0.13.0 # via -r requirements/test.txt xblock-utils==4.0.0 # via -r requirements/test.txt diff --git a/setup.py b/setup.py index a4978f0c..ca9dea50 100644 --- a/setup.py +++ b/setup.py @@ -179,7 +179,7 @@ def package_data(pkg, roots): ), package_data=package_data("problem_builder", ["templates", "public", "translations"]), install_requires=load_requirements('requirements/base.in'), - python_requires=">=3.8", + python_requires=">=3.11", keywords='Python edx', entry_points={ 'xblock.v1': BLOCKS, diff --git a/tox.ini b/tox.ini index b605e328..d235df03 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py38-django32,py38-django42,quality +envlist = py{311,312}-django{42,52},quality [pycodestyle] exclude = .git,.tox,migrations @@ -37,29 +37,13 @@ allowlist_externals = mkdir deps = -r{toxinidir}/requirements/test.txt - django32: Django>=3.2,<4.0 - django42: Django>=4.2,<5.0 + django42: Django>=4.2,<4.3 + django52: Django>=5.2,<5.3 commands = mkdir -p var python manage.py check pytest --ignore=problem_builder/tests/integration {posargs:problem_builder --cov problem_builder} -[testenv:integration32] -allowlist_externals = - mkdir - make - xvfb-run -deps = - -r{toxinidir}/requirements/workbench.txt - Django>=3.2,<4.0 -setenv = - PATH = external{:}external/firefox{:}{env:PATH} - WORKBENCH_DATABASES = \{"default": \{"ENGINE": "django.db.backends.mysql", "NAME": "db", "USER": "root", "PASSWORD": "rootpw", "HOST": "127.0.0.1", "PORT": "3307"\}\} -commands = - mkdir -p var - make install_firefox - xvfb-run pytest {posargs:problem_builder/tests/integration} - [testenv:integration42] allowlist_externals = mkdir