diff --git a/requirements/base.txt b/requirements/base.txt index 4e112921e12..968911ea552 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -7,43 +7,43 @@ appdirs==1.4.3 # via fs certifi==2019.11.28 # via requests chardet==3.0.4 # via requests -django-crum==0.7.5 -django-ipware==2.1.0 -django-model-utils==3.2.0 -django-waffle==0.19.0 -django-webpack-loader==0.6.0 -django==1.11.27 +django-crum==0.7.5 # via -r requirements/base.in (line 12) +django-ipware==2.1.0 # via -r requirements/base.in (line 8) +django-model-utils==3.2.0 # via -c requirements/constraints.txt (line 39), -r requirements/base.in (line 6), edx-when +django-waffle==0.20.0 # via -r requirements/base.in (line 15), edx-django-utils, edx-drf-extensions +django-webpack-loader==0.7.0 # via -r requirements/base.in (line 14) +django==1.11.28 # via -r requirements/base.in (line 5), django-crum, django-model-utils, djangorestframework, edx-django-utils, edx-drf-extensions, edx-when, event-tracking, jsonfield2, rest-condition djangorestframework-jwt==1.11.0 # via edx-drf-extensions -djangorestframework==3.11.0 -edx-django-utils==2.0.3 # via edx-drf-extensions, edx-rest-api-client -edx-drf-extensions==2.4.5 -edx-opaque-keys==2.0.1 -edx-rest-api-client==3.0.2 -edx-when==0.5.2 -event-tracking==0.3.0 +djangorestframework==3.11.0 # via -r requirements/base.in (line 7), edx-drf-extensions, rest-condition +edx-django-utils==3.0 # via edx-drf-extensions, edx-rest-api-client +edx-drf-extensions==3.0.0 # via -r requirements/base.in (line 21), edx-when +edx-opaque-keys==2.0.1 # via -r requirements/base.in (line 20), edx-drf-extensions, edx-when +edx-rest-api-client==3.0.2 # via -r requirements/base.in (line 22) +edx-when==1.0.2 # via -r requirements/base.in (line 23) +event-tracking==0.3.0 # via -r requirements/base.in (line 19) fs==2.4.11 # via xblock future==0.18.2 # via pyjwkest -idna==2.8 # via requests -jsonfield2==3.0.3 -lxml==4.4.2 # via xblock +idna==2.9 # via requests +jsonfield2==3.0.3 # via -c requirements/constraints.txt (line 42), -r requirements/base.in (line 9) +lxml==4.5.0 # via xblock markupsafe==1.1.1 # via xblock -newrelic==5.4.1.134 # via edx-django-utils +newrelic==5.8.0.136 # via edx-django-utils pbr==5.4.4 # via stevedore psutil==1.2.1 # via edx-django-utils, edx-drf-extensions -pycryptodomex==3.9.4 +pycryptodomex==3.9.7 # via -r requirements/base.in (line 11), pyjwkest pyjwkest==1.3.2 # via edx-drf-extensions pyjwt==1.7.1 # via djangorestframework-jwt, edx-rest-api-client pymongo==3.10.1 # via edx-opaque-keys, event-tracking -python-dateutil==2.8.1 -pytz==2019.3 +python-dateutil==2.8.1 # via -r requirements/base.in (line 13), edx-drf-extensions, xblock +pytz==2019.3 # via -r requirements/base.in (line 10), django, event-tracking, fs, xblock pyyaml==5.3 # via xblock -requests==2.22.0 # via edx-drf-extensions, edx-rest-api-client, pyjwkest, slumber +requests==2.23.0 # via edx-drf-extensions, edx-rest-api-client, pyjwkest, slumber rest-condition==1.0.3 # via edx-drf-extensions -rules==2.2 +rules==2.2 # via -r requirements/base.in (line 16) semantic-version==2.8.4 # via edx-drf-extensions six==1.14.0 # via django-waffle, edx-drf-extensions, edx-opaque-keys, event-tracking, fs, pyjwkest, python-dateutil, stevedore, xblock slumber==0.7.1 # via edx-rest-api-client -stevedore==1.31.0 # via edx-opaque-keys +stevedore==1.32.0 # via edx-opaque-keys typing==3.7.4.1 # via fs urllib3==1.25.8 # via requests web-fragments==0.3.1 # via xblock diff --git a/requirements/dev.txt b/requirements/dev.txt index 622401a2a3c..f689b10dfcb 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -4,41 +4,43 @@ # # make upgrade # +appdirs==1.4.3 # via virtualenv argparse==1.4.0 # via caniusepython3 astroid==2.3.3 # via pylint, pylint-celery backports.functools-lru-cache==1.6.1 # via caniusepython3 -bleach==3.1.0 # via readme-renderer -caniusepython3==7.2.0 +bleach==3.1.1 # via readme-renderer +caniusepython3==7.2.0 # via -r requirements/quality.in (line 4) certifi==2019.11.28 # via requests chardet==3.0.4 # via requests click-log==0.3.2 # via edx-lint click==7.0 # via click-log, edx-lint, pip-tools -diff-cover==2.5.2 -distlib==0.3.0 # via caniusepython3 -django==1.11.27 +diff-cover==2.6.0 # via -r requirements/dev.in (line 6) +distlib==0.3.0 # via caniusepython3, virtualenv +django==1.11.28 # via -r requirements/dev.in (line 15), -r requirements/quality.in (line 9), edx-i18n-tools docutils==0.16 # via readme-renderer -edx-i18n-tools==0.5.0 -edx-lint==1.4.1 -filelock==3.0.12 # via tox -idna==2.8 # via requests -importlib-metadata==1.4.0 # via inflect, path, pluggy, tox +edx-i18n-tools==0.5.0 # via -r requirements/dev.in (line 8) +edx-lint==1.4.1 # via -r requirements/dev.in (line 7), -r requirements/quality.in (line 5) +filelock==3.0.12 # via tox, virtualenv +idna==2.9 # via requests +importlib-metadata==1.5.0 # via inflect, path, pluggy, tox, virtualenv +importlib-resources==1.0.2 # via virtualenv inflect==3.0.2 # via jinja2-pluralize -isort==4.3.21 +isort==4.3.21 # via -r requirements/quality.in (line 6), pylint jinja2-pluralize==0.3.0 # via diff-cover -jinja2==2.11.0 # via diff-cover, jinja2-pluralize +jinja2==2.11.1 # via diff-cover, jinja2-pluralize lazy-object-proxy==1.4.3 # via astroid markupsafe==1.1.1 # via jinja2 mccabe==0.6.1 # via pylint packaging==20.1 # via caniusepython3, tox -path.py==12.4.0 +path.py==12.4.0 # via -r requirements/dev.in (line 14), edx-i18n-tools path==13.1.0 # via path.py -pip-tools==4.4.0 +pip-tools==4.5.0 # via -r requirements/dev.in (line 9) pkginfo==1.5.0.1 # via twine pluggy==0.13.1 # via diff-cover, tox polib==1.1.0 # via edx-i18n-tools py==1.8.1 # via tox -pycodestyle==2.5.0 -pydocstyle==5.0.2 +pycodestyle==2.5.0 # via -r requirements/quality.in (line 7) +pydocstyle==5.0.2 # via -r requirements/quality.in (line 8) pygments==2.5.2 # via diff-cover, readme-renderer pylint-celery==0.3 # via edx-lint pylint-django==2.0.11 # via edx-lint @@ -49,21 +51,21 @@ pytz==2019.3 # via django pyyaml==5.3 # via edx-i18n-tools readme-renderer==24.0 # via twine requests-toolbelt==0.9.1 # via twine -requests==2.22.0 # via caniusepython3, requests-toolbelt, twine -six==1.14.0 # via astroid, bleach, diff-cover, edx-i18n-tools, edx-lint, packaging, pip-tools, readme-renderer, tox +requests==2.23.0 # via caniusepython3, requests-toolbelt, twine +six==1.14.0 # via astroid, bleach, diff-cover, edx-i18n-tools, edx-lint, packaging, pip-tools, readme-renderer, tox, virtualenv snowballstemmer==2.0.0 # via pydocstyle toml==0.10.0 # via tox -tox-battery==0.5.1 -tox==3.14.3 -tqdm==4.42.0 # via twine -twine==1.15.0 +tox-battery==0.5.2 # via -r requirements/dev.in (line 11) +tox==3.14.5 # via -r requirements/dev.in (line 10), tox-battery +tqdm==4.43.0 # via twine +twine==1.15.0 # via -r requirements/dev.in (line 12), -r requirements/quality.in (line 10) typed-ast==1.4.1 # via astroid urllib3==1.25.8 # via requests -virtualenv==16.7.9 # via tox +virtualenv==20.0.5 # via tox webencodings==0.5.1 # via bleach -wheel==0.34.1 +wheel==0.34.2 # via -r requirements/dev.in (line 13) wrapt==1.11.2 # via astroid -zipp==1.1.0 # via importlib-metadata +zipp==1.2.0 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/requirements/doc.txt b/requirements/doc.txt index 682e67ebc82..f7bc9258e59 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -7,61 +7,61 @@ alabaster==0.7.12 # via sphinx appdirs==1.4.3 # via fs babel==2.8.0 # via sphinx -bleach==3.1.0 # via readme-renderer +bleach==3.1.1 # via readme-renderer certifi==2019.11.28 # via requests chardet==3.0.4 # via doc8, requests -django-crum==0.7.5 -django-ipware==2.1.0 -django-model-utils==3.2.0 -django-waffle==0.19.0 -django-webpack-loader==0.6.0 -django==1.11.27 +django-crum==0.7.5 # via -r requirements/base.in (line 12) +django-ipware==2.1.0 # via -r requirements/base.in (line 8) +django-model-utils==3.2.0 # via -c requirements/constraints.txt (line 39), -r requirements/base.in (line 6), edx-when +django-waffle==0.20.0 # via -r requirements/base.in (line 15), edx-django-utils, edx-drf-extensions +django-webpack-loader==0.7.0 # via -r requirements/base.in (line 14) +django==1.11.28 # via -r requirements/base.in (line 5), django-crum, django-model-utils, djangorestframework, edx-django-utils, edx-drf-extensions, edx-when, event-tracking, jsonfield2, rest-condition djangorestframework-jwt==1.11.0 # via edx-drf-extensions -djangorestframework==3.11.0 -doc8==0.8.0 +djangorestframework==3.11.0 # via -r requirements/base.in (line 7), edx-drf-extensions, rest-condition +doc8==0.8.0 # via -r requirements/doc.in (line 6) docutils==0.16 # via doc8, readme-renderer, restructuredtext-lint, sphinx -edx-django-utils==2.0.3 # via edx-drf-extensions, edx-rest-api-client -edx-drf-extensions==2.4.5 -edx-opaque-keys==2.0.1 -edx-rest-api-client==3.0.2 -edx-sphinx-theme==1.5.0 -edx-when==0.5.2 -event-tracking==0.3.0 +edx-django-utils==3.0 # via edx-drf-extensions, edx-rest-api-client +edx-drf-extensions==3.0.0 # via -r requirements/base.in (line 21), edx-when +edx-opaque-keys==2.0.1 # via -r requirements/base.in (line 20), edx-drf-extensions, edx-when +edx-rest-api-client==3.0.2 # via -r requirements/base.in (line 22) +edx-sphinx-theme==1.5.0 # via -r requirements/doc.in (line 7) +edx-when==1.0.2 # via -r requirements/base.in (line 23) +event-tracking==0.3.0 # via -r requirements/base.in (line 19) fs==2.4.11 # via xblock future==0.18.2 # via pyjwkest -idna==2.8 # via requests +idna==2.9 # via requests imagesize==1.2.0 # via sphinx -jinja2==2.11.0 # via sphinx -jsonfield2==3.0.3 -lxml==4.4.2 # via xblock +jinja2==2.11.1 # via sphinx +jsonfield2==3.0.3 # via -c requirements/constraints.txt (line 42), -r requirements/base.in (line 9) +lxml==4.5.0 # via xblock markupsafe==1.1.1 # via jinja2, xblock -newrelic==5.4.1.134 # via edx-django-utils +newrelic==5.8.0.136 # via edx-django-utils packaging==20.1 # via sphinx pbr==5.4.4 # via stevedore pockets==0.9.1 # via sphinxcontrib-napoleon psutil==1.2.1 # via edx-django-utils, edx-drf-extensions -pycryptodomex==3.9.4 +pycryptodomex==3.9.7 # via -r requirements/base.in (line 11), pyjwkest pygments==2.5.2 # via readme-renderer, sphinx pyjwkest==1.3.2 # via edx-drf-extensions pyjwt==1.7.1 # via djangorestframework-jwt, edx-rest-api-client pymongo==3.10.1 # via edx-opaque-keys, event-tracking pyparsing==2.4.6 # via packaging -python-dateutil==2.8.1 -pytz==2019.3 +python-dateutil==2.8.1 # via -r requirements/base.in (line 13), edx-drf-extensions, xblock +pytz==2019.3 # via -r requirements/base.in (line 10), babel, django, event-tracking, fs, xblock pyyaml==5.3 # via xblock -readme-renderer==24.0 -requests==2.22.0 # via edx-drf-extensions, edx-rest-api-client, pyjwkest, slumber, sphinx +readme-renderer==24.0 # via -r requirements/doc.in (line 8) +requests==2.23.0 # via edx-drf-extensions, edx-rest-api-client, pyjwkest, slumber, sphinx rest-condition==1.0.3 # via edx-drf-extensions restructuredtext-lint==1.3.0 # via doc8 -rules==2.2 +rules==2.2 # via -r requirements/base.in (line 16) semantic-version==2.8.4 # via edx-drf-extensions six==1.14.0 # via bleach, django-waffle, doc8, edx-drf-extensions, edx-opaque-keys, edx-sphinx-theme, event-tracking, fs, packaging, pockets, pyjwkest, python-dateutil, readme-renderer, sphinx, sphinxcontrib-napoleon, stevedore, xblock slumber==0.7.1 # via edx-rest-api-client snowballstemmer==2.0.0 # via sphinx -sphinx==1.8.4 -sphinxcontrib-napoleon==0.7 -sphinxcontrib-websupport==1.1.2 # via sphinx -stevedore==1.31.0 # via doc8, edx-opaque-keys +sphinx==1.8.4 # via -c requirements/constraints.txt (line 17), -r requirements/doc.in (line 9), edx-sphinx-theme +sphinxcontrib-napoleon==0.7 # via -r requirements/doc.in (line 10) +sphinxcontrib-websupport==1.2.0 # via sphinx +stevedore==1.32.0 # via doc8, edx-opaque-keys typing==3.7.4.1 # via fs urllib3==1.25.8 # via requests web-fragments==0.3.1 # via xblock diff --git a/requirements/quality.txt b/requirements/quality.txt index 6e7027bf8f4..d1ffb5a4fbb 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -7,24 +7,24 @@ argparse==1.4.0 # via caniusepython3 astroid==2.3.3 # via pylint, pylint-celery backports.functools-lru-cache==1.6.1 # via caniusepython3 -bleach==3.1.0 # via readme-renderer -caniusepython3==7.2.0 +bleach==3.1.1 # via readme-renderer +caniusepython3==7.2.0 # via -r requirements/quality.in (line 4) certifi==2019.11.28 # via requests chardet==3.0.4 # via requests click-log==0.3.2 # via edx-lint click==7.0 # via click-log, edx-lint distlib==0.3.0 # via caniusepython3 -django==1.11.27 +django==1.11.28 # via -r requirements/quality.in (line 9) docutils==0.16 # via readme-renderer -edx-lint==1.4.1 -idna==2.8 # via requests -isort==4.3.21 +edx-lint==1.4.1 # via -r requirements/quality.in (line 5) +idna==2.9 # via requests +isort==4.3.21 # via -r requirements/quality.in (line 6), pylint lazy-object-proxy==1.4.3 # via astroid mccabe==0.6.1 # via pylint packaging==20.1 # via caniusepython3 pkginfo==1.5.0.1 # via twine -pycodestyle==2.5.0 -pydocstyle==5.0.2 +pycodestyle==2.5.0 # via -r requirements/quality.in (line 7) +pydocstyle==5.0.2 # via -r requirements/quality.in (line 8) pygments==2.5.2 # via readme-renderer pylint-celery==0.3 # via edx-lint pylint-django==2.0.11 # via edx-lint @@ -34,11 +34,11 @@ pyparsing==2.4.6 # via packaging pytz==2019.3 # via django readme-renderer==24.0 # via twine requests-toolbelt==0.9.1 # via twine -requests==2.22.0 # via caniusepython3, requests-toolbelt, twine +requests==2.23.0 # via caniusepython3, requests-toolbelt, twine six==1.14.0 # via astroid, bleach, edx-lint, packaging, readme-renderer snowballstemmer==2.0.0 # via pydocstyle -tqdm==4.42.0 # via twine -twine==1.15.0 +tqdm==4.43.0 # via twine +twine==1.15.0 # via -r requirements/quality.in (line 10) typed-ast==1.4.1 # via astroid urllib3==1.25.8 # via requests webencodings==0.5.1 # via bleach diff --git a/requirements/test.txt b/requirements/test.txt index 8e3bb673b17..8689c06c524 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -7,43 +7,43 @@ apipkg==1.5 # via execnet appdirs==1.4.3 # via fs attrs==19.3.0 # via pytest -bok-choy==1.0.1 +bok-choy==1.0.1 # via -r requirements/test.in (line 6) certifi==2019.11.28 # via requests chardet==3.0.4 # via requests click==7.0 # via code-annotations -code-annotations==0.3.3 +code-annotations==0.3.3 # via -r requirements/test.in (line 7) coverage==5.0.3 # via pytest-cov -ddt==1.2.2 -django-crum==0.7.5 -django-ipware==2.1.0 -django-model-utils==3.2.0 -django-waffle==0.19.0 -django-webpack-loader==0.6.0 +ddt==1.2.2 # via -r requirements/test.in (line 8) +django-crum==0.7.5 # via -r requirements/base.in (line 12) +django-ipware==2.1.0 # via -r requirements/base.in (line 8) +django-model-utils==3.2.0 # via -c requirements/constraints.txt (line 39), -r requirements/base.in (line 6), edx-when +django-waffle==0.20.0 # via -r requirements/base.in (line 15), edx-django-utils, edx-drf-extensions +django-webpack-loader==0.7.0 # via -r requirements/base.in (line 14) djangorestframework-jwt==1.11.0 # via edx-drf-extensions -edx-django-utils==2.0.3 # via edx-drf-extensions, edx-rest-api-client -edx-drf-extensions==2.4.5 -edx-i18n-tools==0.5.0 -edx-opaque-keys==2.0.1 -edx-rest-api-client==3.0.2 -edx-when==0.5.2 -event-tracking==0.3.0 +edx-django-utils==3.0 # via edx-drf-extensions, edx-rest-api-client +edx-drf-extensions==3.0.0 # via -r requirements/base.in (line 21), edx-when +edx-i18n-tools==0.5.0 # via -r requirements/test.in (line 9) +edx-opaque-keys==2.0.1 # via -r requirements/base.in (line 20), edx-drf-extensions, edx-when +edx-rest-api-client==3.0.2 # via -r requirements/base.in (line 22) +edx-when==1.0.2 # via -r requirements/base.in (line 23) +event-tracking==0.3.0 # via -r requirements/base.in (line 19) execnet==1.7.1 # via pytest-xdist -freezegun==0.3.14 +freezegun==0.3.15 # via -r requirements/test.in (line 10) fs==2.4.11 # via xblock future==0.18.2 # via pyjwkest -httmock==1.3.0 -httpretty==0.9.7 -idna==2.8 # via requests -importlib-metadata==1.4.0 # via path, pluggy, pytest -jinja2==2.11.0 # via code-annotations -jsonfield2==3.0.3 +httmock==1.3.0 # via -r requirements/test.in (line 11) +httpretty==0.9.7 # via -r requirements/test.in (line 12) +idna==2.9 # via requests +importlib-metadata==1.5.0 # via path, pluggy, pytest +jinja2==2.11.1 # via code-annotations +jsonfield2==3.0.3 # via -c requirements/constraints.txt (line 42), -r requirements/base.in (line 9) lazy==1.4 # via bok-choy -logilab-common==1.5.2 -lxml==4.4.2 # via xblock +logilab-common==1.5.2 # via -r requirements/test.in (line 13) +lxml==4.5.0 # via xblock markupsafe==1.1.1 # via jinja2, xblock -mock==3.0.5 -more-itertools==5.0.0 # via pytest -newrelic==5.4.1.134 # via edx-django-utils +mock==3.0.5 # via -r requirements/test.in (line 14) +more-itertools==5.0.0 # via -c requirements/constraints.txt (line 21), pytest +newrelic==5.8.0.136 # via edx-django-utils packaging==20.1 # via pytest path.py==12.4.0 # via edx-i18n-tools path==13.1.0 # via path.py @@ -53,31 +53,31 @@ pluggy==0.13.1 # via pytest polib==1.1.0 # via edx-i18n-tools psutil==1.2.1 # via edx-django-utils, edx-drf-extensions py==1.8.1 # via pytest -pycryptodomex==3.9.4 +pycryptodomex==3.9.7 # via -r requirements/base.in (line 11), pyjwkest pyjwkest==1.3.2 # via edx-drf-extensions pyjwt==1.7.1 # via djangorestframework-jwt, edx-rest-api-client pymongo==3.10.1 # via edx-opaque-keys, event-tracking pyparsing==2.4.6 # via packaging -pytest-cov==2.8.1 -pytest-django==3.8.0 +pytest-cov==2.8.1 # via -r requirements/test.in (line 15) +pytest-django==3.8.0 # via -r requirements/test.in (line 16) pytest-forked==1.1.3 # via pytest-xdist -pytest-xdist==1.31.0 -pytest==5.3.4 # via pytest-cov, pytest-django, pytest-forked, pytest-xdist -python-dateutil==2.8.1 +pytest-xdist==1.31.0 # via -r requirements/test.in (line 17) +pytest==5.3.5 # via pytest-cov, pytest-django, pytest-forked, pytest-xdist +python-dateutil==2.8.1 # via -r requirements/base.in (line 13), edx-drf-extensions, freezegun, xblock python-slugify==4.0.0 # via code-annotations -pytz==2019.3 +pytz==2019.3 # via -r requirements/base.in (line 10), django, event-tracking, fs, xblock pyyaml==5.3 # via code-annotations, edx-i18n-tools, xblock -requests==2.22.0 # via edx-drf-extensions, edx-rest-api-client, httmock, pyjwkest, responses, slumber -responses==0.10.9 +requests==2.23.0 # via edx-drf-extensions, edx-rest-api-client, httmock, pyjwkest, responses, slumber +responses==0.10.11 # via -r requirements/test.in (line 18) rest-condition==1.0.3 # via edx-drf-extensions -rules==2.2 -selenium==3.141.0 +rules==2.2 # via -r requirements/base.in (line 16) +selenium==3.141.0 # via -r requirements/test.in (line 19), bok-choy semantic-version==2.8.4 # via edx-drf-extensions -six==1.14.0 # via bok-choy, django-waffle, edx-drf-extensions, edx-i18n-tools, edx-opaque-keys, event-tracking, freezegun, fs, httpretty, mock, packaging, pathlib2, pyjwkest, pytest-xdist, python-dateutil, responses, stevedore, xblock +six==1.14.0 # via bok-choy, django-waffle, edx-drf-extensions, edx-i18n-tools, edx-opaque-keys, event-tracking, freezegun, fs, httpretty, mock, more-itertools, packaging, pathlib2, pyjwkest, pytest-xdist, python-dateutil, responses, stevedore, xblock slumber==0.7.1 # via edx-rest-api-client -stevedore==1.31.0 # via code-annotations, edx-opaque-keys -sure==1.2.7 -testfixtures==6.10.3 +stevedore==1.32.0 # via code-annotations, edx-opaque-keys +sure==1.2.7 # via -r requirements/test.in (line 20) +testfixtures==6.14.0 # via -r requirements/test.in (line 21) text-unidecode==1.3 # via python-slugify typing==3.7.4.1 # via fs urllib3==1.25.8 # via requests, selenium @@ -85,7 +85,7 @@ wcwidth==0.1.8 # via pytest web-fragments==0.3.1 # via xblock webob==1.8.6 # via xblock xblock==1.2.9 # via edx-when -zipp==1.1.0 # via importlib-metadata +zipp==1.2.0 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: # setuptools