From daa0701b8954474c1b12f0bbeef22a21e2d9ba62 Mon Sep 17 00:00:00 2001 From: edX requirements bot Date: Sun, 15 Mar 2026 20:44:21 -0400 Subject: [PATCH] chore: Upgrade Python requirements --- requirements/base.txt | 10 ++-- requirements/ci.txt | 20 ++++---- requirements/dev.txt | 96 +++++++++++++++++++++----------------- requirements/doc.txt | 70 +++++++++++++-------------- requirements/pip-tools.txt | 12 +++-- requirements/pip.txt | 8 ++-- requirements/quality.txt | 62 ++++++++++++------------ requirements/test.txt | 24 +++++----- 8 files changed, 159 insertions(+), 143 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 4e80931c..de33bd33 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -4,21 +4,21 @@ # # make upgrade # -asgiref==3.11.0 +asgiref==3.11.1 # via django -django==5.2.9 +django==5.2.12 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.in dnspython==2.8.0 # via pymongo -edx-opaque-keys[django]==3.0.0 +edx-opaque-keys[django]==3.1.0 # via -r requirements/base.in -pymongo==4.15.5 +pymongo==4.16.0 # via edx-opaque-keys sqlparse==0.5.5 # via django -stevedore==5.6.0 +stevedore==5.7.0 # via edx-opaque-keys typing-extensions==4.15.0 # via edx-opaque-keys diff --git a/requirements/ci.txt b/requirements/ci.txt index 4380dfc5..5f966cd6 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -4,31 +4,35 @@ # # make upgrade # -cachetools==6.2.4 - # via tox -chardet==5.2.0 +cachetools==7.0.5 # via tox colorama==0.4.6 # via tox distlib==0.4.0 # via virtualenv -filelock==3.20.2 +filelock==3.25.2 # via + # python-discovery # tox # virtualenv -packaging==25.0 +packaging==26.0 # via # pyproject-api # tox -platformdirs==4.5.1 +platformdirs==4.9.4 # via + # python-discovery # tox # virtualenv pluggy==1.6.0 # via tox pyproject-api==1.10.0 # via tox -tox==4.33.0 +python-discovery==1.1.3 + # via virtualenv +tomli-w==1.2.0 + # via tox +tox==4.49.1 # via -r requirements/ci.in -virtualenv==20.35.4 +virtualenv==21.2.0 # via tox diff --git a/requirements/dev.txt b/requirements/dev.txt index 4be865b5..a5783236 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -4,11 +4,11 @@ # # make upgrade # -asgiref==3.11.0 +asgiref==3.11.1 # via # -r requirements/quality.txt # django -astroid==4.0.3 +astroid==4.0.4 # via # -r requirements/quality.txt # pylint @@ -19,15 +19,15 @@ backports-tarfile==1.2.0 # via # -r requirements/quality.txt # jaraco-context -build==1.3.0 +build==1.4.0 # via # -r requirements/pip-tools.txt # pip-tools -cachetools==6.2.4 +cachetools==7.0.5 # via # -r requirements/ci.txt # tox -certifi==2026.1.4 +certifi==2026.2.25 # via # -r requirements/quality.txt # requests @@ -35,12 +35,9 @@ cffi==2.0.0 # via # -r requirements/quality.txt # cryptography -chardet==5.2.0 - # via - # -r requirements/ci.txt - # diff-cover - # tox -charset-normalizer==3.4.4 +chardet==7.1.0 + # via diff-cover +charset-normalizer==3.4.6 # via # -r requirements/quality.txt # requests @@ -58,7 +55,7 @@ click-log==0.4.0 # -r requirements/quality.txt # edx-lint # scriv -code-annotations==2.3.0 +code-annotations==2.3.2 # via # -r requirements/quality.txt # edx-lint @@ -66,19 +63,19 @@ colorama==0.4.6 # via # -r requirements/ci.txt # tox -coverage[toml]==7.13.1 +coverage[toml]==7.13.4 # via # -r requirements/quality.txt # pytest-cov -cryptography==46.0.3 +cryptography==46.0.5 # via # -r requirements/quality.txt # secretstorage ddt==1.7.2 # via -r requirements/quality.txt -diff-cover==10.1.0 +diff-cover==10.2.0 # via -r requirements/dev.in -dill==0.4.0 +dill==0.4.1 # via # -r requirements/quality.txt # pylint @@ -86,15 +83,15 @@ distlib==0.4.0 # via # -r requirements/ci.txt # virtualenv -django==5.2.9 +django==5.2.12 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/quality.txt # django-stubs # django-stubs-ext -django-stubs==5.2.8 +django-stubs==5.2.9 # via -r requirements/quality.txt -django-stubs-ext==5.2.8 +django-stubs-ext==5.2.9 # via # -r requirements/quality.txt # django-stubs @@ -106,16 +103,17 @@ docutils==0.22.4 # via # -r requirements/quality.txt # readme-renderer -edx-lint==5.6.0 +edx-lint==6.0.0 # via -r requirements/quality.txt -edx-opaque-keys[django]==3.0.0 +edx-opaque-keys[django]==3.1.0 # via -r requirements/quality.txt -filelock==3.20.2 +filelock==3.25.2 # via # -r requirements/ci.txt + # python-discovery # tox # virtualenv -id==1.5.0 +id==1.6.1 # via # -r requirements/quality.txt # twine @@ -131,7 +129,7 @@ iniconfig==2.3.0 # via # -r requirements/quality.txt # pytest -isort==7.0.0 +isort==8.0.1 # via # -r requirements/quality.txt # pylint @@ -139,7 +137,7 @@ jaraco-classes==3.4.0 # via # -r requirements/quality.txt # keyring -jaraco-context==6.0.2 +jaraco-context==6.1.1 # via # -r requirements/quality.txt # keyring @@ -162,7 +160,7 @@ keyring==25.7.0 # via # -r requirements/quality.txt # twine -librt==0.7.7 +librt==0.8.1 # via # -r requirements/quality.txt # mypy @@ -194,11 +192,11 @@ mypy-extensions==1.1.0 # via # -r requirements/quality.txt # mypy -nh3==0.3.2 +nh3==0.3.3 # via # -r requirements/quality.txt # readme-renderer -packaging==25.0 +packaging==26.0 # via # -r requirements/ci.txt # -r requirements/pip-tools.txt @@ -208,17 +206,19 @@ packaging==25.0 # pytest # tox # twine -pathspec==0.12.1 + # wheel +pathspec==1.0.4 # via # -r requirements/quality.txt # mypy -pip-tools==7.5.2 +pip-tools==7.5.3 # via -r requirements/pip-tools.txt -platformdirs==4.5.1 +platformdirs==4.9.4 # via # -r requirements/ci.txt # -r requirements/quality.txt # pylint + # python-discovery # tox # virtualenv pluggy==1.6.0 @@ -231,7 +231,7 @@ pluggy==1.6.0 # tox pycodestyle==2.14.0 # via -r requirements/quality.txt -pycparser==2.23 +pycparser==3.0 # via # -r requirements/quality.txt # cffi @@ -242,7 +242,7 @@ pygments==2.19.2 # pytest # readme-renderer # rich -pylint==4.0.4 +pylint==4.0.5 # via # -r requirements/quality.txt # edx-lint @@ -262,7 +262,7 @@ pylint-plugin-utils==0.9.0 # -r requirements/quality.txt # pylint-celery # pylint-django -pymongo==4.15.5 +pymongo==4.16.0 # via # -r requirements/quality.txt # edx-opaque-keys @@ -282,8 +282,12 @@ pytest==9.0.2 # pytest-django pytest-cov==7.0.0 # via -r requirements/quality.txt -pytest-django==4.11.1 +pytest-django==4.12.0 # via -r requirements/quality.txt +python-discovery==1.1.3 + # via + # -r requirements/ci.txt + # virtualenv python-slugify==8.0.4 # via # -r requirements/quality.txt @@ -299,7 +303,6 @@ readme-renderer==44.0 requests==2.32.5 # via # -r requirements/quality.txt - # id # requests-toolbelt # scriv # twine @@ -311,11 +314,11 @@ rfc3986==2.0.0 # via # -r requirements/quality.txt # twine -rich==14.2.0 +rich==14.3.3 # via # -r requirements/quality.txt # twine -ruff==0.14.10 +ruff==0.15.6 # via -r requirements/quality.txt scriv==1.8.0 # via -r requirements/dev.in @@ -331,7 +334,7 @@ sqlparse==0.5.5 # via # -r requirements/quality.txt # django -stevedore==5.6.0 +stevedore==5.7.0 # via # -r requirements/quality.txt # code-annotations @@ -340,11 +343,15 @@ text-unidecode==1.3 # via # -r requirements/quality.txt # python-slugify -tomlkit==0.13.3 +tomli-w==1.2.0 + # via + # -r requirements/ci.txt + # tox +tomlkit==0.14.0 # via # -r requirements/quality.txt # pylint -tox==4.33.0 +tox==4.49.1 # via -r requirements/ci.txt twine==6.2.0 # via -r requirements/quality.txt @@ -359,16 +366,17 @@ typing-extensions==4.15.0 # django-stubs-ext # edx-opaque-keys # mypy -urllib3==2.6.2 +urllib3==2.6.3 # via # -r requirements/quality.txt + # id # requests # twine -virtualenv==20.35.4 +virtualenv==21.2.0 # via # -r requirements/ci.txt # tox -wheel==0.45.1 +wheel==0.46.3 # via # -r requirements/pip-tools.txt # pip-tools diff --git a/requirements/doc.txt b/requirements/doc.txt index 24eb9731..bb99928d 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -8,15 +8,15 @@ accessible-pygments==0.0.5 # via pydata-sphinx-theme alabaster==1.0.0 # via sphinx -anyio==4.12.0 +anyio==4.12.1 # via # starlette # watchfiles -asgiref==3.11.0 +asgiref==3.11.1 # via # -r requirements/test.txt # django -babel==2.17.0 +babel==2.18.0 # via # pydata-sphinx-theme # sphinx @@ -24,40 +24,40 @@ backports-tarfile==1.2.0 # via jaraco-context beautifulsoup4==4.14.3 # via pydata-sphinx-theme -build==1.3.0 +build==1.4.0 # via -r requirements/doc.in -certifi==2026.1.4 +certifi==2026.2.25 # via requests cffi==2.0.0 # via cryptography -charset-normalizer==3.4.4 +charset-normalizer==3.4.6 # via requests click==8.3.1 # via # -r requirements/test.txt # code-annotations # uvicorn -code-annotations==2.3.0 +code-annotations==2.3.2 # via -r requirements/test.txt colorama==0.4.6 # via sphinx-autobuild -coverage[toml]==7.13.1 +coverage[toml]==7.13.4 # via # -r requirements/test.txt # pytest-cov -cryptography==46.0.3 +cryptography==46.0.5 # via secretstorage ddt==1.7.2 # via -r requirements/test.txt -django==5.2.9 +django==5.2.12 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/test.txt # django-stubs # django-stubs-ext -django-stubs==5.2.8 +django-stubs==5.2.9 # via -r requirements/test.txt -django-stubs-ext==5.2.8 +django-stubs-ext==5.2.9 # via # -r requirements/test.txt # django-stubs @@ -74,17 +74,17 @@ docutils==0.21.2 # readme-renderer # restructuredtext-lint # sphinx -edx-opaque-keys[django]==3.0.0 +edx-opaque-keys[django]==3.1.0 # via -r requirements/test.txt h11==0.16.0 # via uvicorn -id==1.5.0 +id==1.6.1 # via twine idna==3.11 # via # anyio # requests -imagesize==1.4.1 +imagesize==2.0.0 # via sphinx importlib-metadata==8.7.1 # via keyring @@ -94,7 +94,7 @@ iniconfig==2.3.0 # pytest jaraco-classes==3.4.0 # via keyring -jaraco-context==6.0.2 +jaraco-context==6.1.1 # via keyring jaraco-functools==4.4.0 # via keyring @@ -107,9 +107,10 @@ jinja2==3.1.6 # -r requirements/test.txt # code-annotations # sphinx + # sphinxcontrib-mermaid keyring==25.7.0 # via twine -librt==0.7.7 +librt==0.8.1 # via # -r requirements/test.txt # mypy @@ -131,17 +132,16 @@ mypy-extensions==1.1.0 # via # -r requirements/test.txt # mypy -nh3==0.3.2 +nh3==0.3.3 # via readme-renderer -packaging==25.0 +packaging==26.0 # via # -r requirements/test.txt # build - # pydata-sphinx-theme # pytest # sphinx # twine -pathspec==0.12.1 +pathspec==1.0.4 # via # -r requirements/test.txt # mypy @@ -150,9 +150,9 @@ pluggy==1.6.0 # -r requirements/test.txt # pytest # pytest-cov -pycparser==2.23 +pycparser==3.0 # via cffi -pydata-sphinx-theme==0.15.4 +pydata-sphinx-theme==0.16.1 # via sphinx-book-theme pygments==2.19.2 # via @@ -164,7 +164,7 @@ pygments==2.19.2 # readme-renderer # rich # sphinx -pymongo==4.15.5 +pymongo==4.16.0 # via # -r requirements/test.txt # edx-opaque-keys @@ -177,7 +177,7 @@ pytest==9.0.2 # pytest-django pytest-cov==7.0.0 # via -r requirements/test.txt -pytest-django==4.11.1 +pytest-django==4.12.0 # via -r requirements/test.txt python-slugify==8.0.4 # via @@ -192,7 +192,6 @@ readme-renderer==44.0 # via twine requests==2.32.5 # via - # id # requests-toolbelt # sphinx # twine @@ -202,7 +201,7 @@ restructuredtext-lint==2.0.2 # via doc8 rfc3986==2.0.0 # via twine -rich==14.2.0 +rich==14.3.3 # via twine roman-numerals==4.1.0 # via sphinx @@ -210,7 +209,7 @@ secretstorage==3.5.0 # via keyring snowballstemmer==3.0.1 # via sphinx -soupsieve==2.8.1 +soupsieve==2.8.3 # via beautifulsoup4 sphinx==9.0.4 # via @@ -223,7 +222,7 @@ sphinx==9.0.4 # sphinxcontrib-mermaid sphinx-autobuild==2025.8.25 # via -r requirements/doc.in -sphinx-book-theme==1.1.4 +sphinx-book-theme==1.2.0 # via -r requirements/doc.in sphinx-copybutton==0.5.2 # via -r requirements/doc.in @@ -237,7 +236,7 @@ sphinxcontrib-htmlhelp==2.1.0 # via sphinx sphinxcontrib-jsmath==1.0.1 # via sphinx -sphinxcontrib-mermaid==1.2.3 +sphinxcontrib-mermaid==2.0.1 # via -r requirements/doc.in sphinxcontrib-qthelp==2.0.0 # via sphinx @@ -247,9 +246,9 @@ sqlparse==0.5.5 # via # -r requirements/test.txt # django -starlette==0.50.0 +starlette==0.52.1 # via sphinx-autobuild -stevedore==5.6.0 +stevedore==5.7.0 # via # -r requirements/test.txt # code-annotations @@ -276,15 +275,16 @@ typing-extensions==4.15.0 # mypy # pydata-sphinx-theme # starlette -urllib3==2.6.2 +urllib3==2.6.3 # via + # id # requests # twine -uvicorn==0.40.0 +uvicorn==0.41.0 # via sphinx-autobuild watchfiles==1.1.1 # via sphinx-autobuild -websockets==15.0.1 +websockets==16.0 # via sphinx-autobuild zipp==3.23.0 # via importlib-metadata diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 383d2a06..c952cd2a 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -4,19 +4,21 @@ # # make upgrade # -build==1.3.0 +build==1.4.0 # via pip-tools click==8.3.1 # via pip-tools -packaging==25.0 - # via build -pip-tools==7.5.2 +packaging==26.0 + # via + # build + # wheel +pip-tools==7.5.3 # via -r requirements/pip-tools.in pyproject-hooks==1.2.0 # via # build # pip-tools -wheel==0.45.1 +wheel==0.46.3 # via pip-tools # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/pip.txt b/requirements/pip.txt index 929f3ee4..341a251b 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -4,11 +4,13 @@ # # make upgrade # -wheel==0.45.1 +packaging==26.0 + # via wheel +wheel==0.46.3 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==25.3 +pip==26.0.1 # via -r requirements/pip.in -setuptools==80.9.0 +setuptools==82.0.1 # via -r requirements/pip.in diff --git a/requirements/quality.txt b/requirements/quality.txt index ae1b7a4a..3838e8a7 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -4,21 +4,21 @@ # # make upgrade # -asgiref==3.11.0 +asgiref==3.11.1 # via # -r requirements/test.txt # django -astroid==4.0.3 +astroid==4.0.4 # via # pylint # pylint-celery backports-tarfile==1.2.0 # via jaraco-context -certifi==2026.1.4 +certifi==2026.2.25 # via requests cffi==2.0.0 # via cryptography -charset-normalizer==3.4.4 +charset-normalizer==3.4.6 # via requests click==8.3.1 # via @@ -28,29 +28,29 @@ click==8.3.1 # edx-lint click-log==0.4.0 # via edx-lint -code-annotations==2.3.0 +code-annotations==2.3.2 # via # -r requirements/test.txt # edx-lint -coverage[toml]==7.13.1 +coverage[toml]==7.13.4 # via # -r requirements/test.txt # pytest-cov -cryptography==46.0.3 +cryptography==46.0.5 # via secretstorage ddt==1.7.2 # via -r requirements/test.txt -dill==0.4.0 +dill==0.4.1 # via pylint -django==5.2.9 +django==5.2.12 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/test.txt # django-stubs # django-stubs-ext -django-stubs==5.2.8 +django-stubs==5.2.9 # via -r requirements/test.txt -django-stubs-ext==5.2.8 +django-stubs-ext==5.2.9 # via # -r requirements/test.txt # django-stubs @@ -60,11 +60,11 @@ dnspython==2.8.0 # pymongo docutils==0.22.4 # via readme-renderer -edx-lint==5.6.0 +edx-lint==6.0.0 # via -r requirements/quality.in -edx-opaque-keys[django]==3.0.0 +edx-opaque-keys[django]==3.1.0 # via -r requirements/test.txt -id==1.5.0 +id==1.6.1 # via twine idna==3.11 # via requests @@ -74,13 +74,13 @@ iniconfig==2.3.0 # via # -r requirements/test.txt # pytest -isort==7.0.0 +isort==8.0.1 # via # -r requirements/quality.in # pylint jaraco-classes==3.4.0 # via keyring -jaraco-context==6.0.2 +jaraco-context==6.1.1 # via keyring jaraco-functools==4.4.0 # via keyring @@ -94,7 +94,7 @@ jinja2==3.1.6 # code-annotations keyring==25.7.0 # via twine -librt==0.7.7 +librt==0.8.1 # via # -r requirements/test.txt # mypy @@ -120,18 +120,18 @@ mypy-extensions==1.1.0 # via # -r requirements/test.txt # mypy -nh3==0.3.2 +nh3==0.3.3 # via readme-renderer -packaging==25.0 +packaging==26.0 # via # -r requirements/test.txt # pytest # twine -pathspec==0.12.1 +pathspec==1.0.4 # via # -r requirements/test.txt # mypy -platformdirs==4.5.1 +platformdirs==4.9.4 # via pylint pluggy==1.6.0 # via @@ -140,7 +140,7 @@ pluggy==1.6.0 # pytest-cov pycodestyle==2.14.0 # via -r requirements/quality.in -pycparser==2.23 +pycparser==3.0 # via cffi pygments==2.19.2 # via @@ -148,7 +148,7 @@ pygments==2.19.2 # pytest # readme-renderer # rich -pylint==4.0.4 +pylint==4.0.5 # via # edx-lint # pylint-celery @@ -162,7 +162,7 @@ pylint-plugin-utils==0.9.0 # via # pylint-celery # pylint-django -pymongo==4.15.5 +pymongo==4.16.0 # via # -r requirements/test.txt # edx-opaque-keys @@ -173,7 +173,7 @@ pytest==9.0.2 # pytest-django pytest-cov==7.0.0 # via -r requirements/test.txt -pytest-django==4.11.1 +pytest-django==4.12.0 # via -r requirements/test.txt python-slugify==8.0.4 # via @@ -187,16 +187,15 @@ readme-renderer==44.0 # via twine requests==2.32.5 # via - # id # requests-toolbelt # twine requests-toolbelt==1.0.0 # via twine rfc3986==2.0.0 # via twine -rich==14.2.0 +rich==14.3.3 # via twine -ruff==0.14.10 +ruff==0.15.6 # via -r requirements/quality.in secretstorage==3.5.0 # via keyring @@ -206,7 +205,7 @@ sqlparse==0.5.5 # via # -r requirements/test.txt # django -stevedore==5.6.0 +stevedore==5.7.0 # via # -r requirements/test.txt # code-annotations @@ -215,7 +214,7 @@ text-unidecode==1.3 # via # -r requirements/test.txt # python-slugify -tomlkit==0.13.3 +tomlkit==0.14.0 # via pylint twine==6.2.0 # via -r requirements/quality.in @@ -230,8 +229,9 @@ typing-extensions==4.15.0 # django-stubs-ext # edx-opaque-keys # mypy -urllib3==2.6.2 +urllib3==2.6.3 # via + # id # requests # twine zipp==3.23.0 diff --git a/requirements/test.txt b/requirements/test.txt index d594e518..5c90ef29 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -4,15 +4,15 @@ # # make upgrade # -asgiref==3.11.0 +asgiref==3.11.1 # via # -r requirements/base.txt # django click==8.3.1 # via code-annotations -code-annotations==2.3.0 +code-annotations==2.3.2 # via -r requirements/test.in -coverage[toml]==7.13.1 +coverage[toml]==7.13.4 # via pytest-cov ddt==1.7.2 # via -r requirements/test.in @@ -21,21 +21,21 @@ ddt==1.7.2 # -r requirements/base.txt # django-stubs # django-stubs-ext -django-stubs==5.2.8 +django-stubs==5.2.9 # via -r requirements/test.in -django-stubs-ext==5.2.8 +django-stubs-ext==5.2.9 # via django-stubs dnspython==2.8.0 # via # -r requirements/base.txt # pymongo -edx-opaque-keys[django]==3.0.0 +edx-opaque-keys[django]==3.1.0 # via -r requirements/base.txt iniconfig==2.3.0 # via pytest jinja2==3.1.6 # via code-annotations -librt==0.7.7 +librt==0.8.1 # via mypy markupsafe==3.0.3 # via jinja2 @@ -43,9 +43,9 @@ mypy==1.19.1 # via -r requirements/test.in mypy-extensions==1.1.0 # via mypy -packaging==25.0 +packaging==26.0 # via pytest -pathspec==0.12.1 +pathspec==1.0.4 # via mypy pluggy==1.6.0 # via @@ -53,7 +53,7 @@ pluggy==1.6.0 # pytest-cov pygments==2.19.2 # via pytest -pymongo==4.15.5 +pymongo==4.16.0 # via # -r requirements/base.txt # edx-opaque-keys @@ -63,7 +63,7 @@ pytest==9.0.2 # pytest-django pytest-cov==7.0.0 # via -r requirements/test.in -pytest-django==4.11.1 +pytest-django==4.12.0 # via -r requirements/test.in python-slugify==8.0.4 # via code-annotations @@ -73,7 +73,7 @@ sqlparse==0.5.5 # via # -r requirements/base.txt # django -stevedore==5.6.0 +stevedore==5.7.0 # via # -r requirements/base.txt # code-annotations