diff --git a/.editorconfig b/.editorconfig index 167b4f18..0818506d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -12,7 +12,7 @@ indent_style = tab [*.{py,toml}] indent_size = 4 -[*.{json,xml,yaml,yml}] +[*.{json,yaml,yml}] indent_size = 2 [*.{rst,inc}] diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 390001de..0f9a1ce6 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,26 +1,32 @@ --- name: Bug report about: Create a report to help us improve -title: "[BUG] " -labels: bug +title: "" +labels: Bug assignees: "" --- -**Describe the bug** A clear and concise description of what the bug is. +## Bug description -**To Reproduce** Steps to reproduce the behavior: + + + + +## How to reproduce? + +Steps to reproduce the behavior: 1. -**Expected behavior** A clear and concise description of what you expected to -happen. +## Expected behavior -**Error log** If applicable, add an error log or screenshots to help explain -your problem. + -**Desktop (please complete the following information):** +## System info -- OS: [e.g. iOS] -- Version [e.g. 22] +Bug resulted on the following system: -**Additional context** Add any other context about the problem here. +- OS: +- Version +- Python version: +- Virtual environment: diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index e10461af..af1efda5 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,20 +1,22 @@ --- name: Feature request about: Suggest an idea for this project -title: "[REQUEST] " -labels: "" +title: "" +labels: "💡 Enhancement" assignees: "" --- -**Is your feature request related to a problem? Please describe.** A clear and +## Problem description + + + +## Proposed solution -**Describe the solution you'd like** A clear and concise description of what -you want to happen. + -**Describe alternatives you've considered** A clear and concise description of -any alternative solutions or features you've considered. + -**Additional context** Add any other context or screenshots about the feature -request here. + + diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index 9c7f8d57..03c4d3d2 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -11,7 +11,8 @@ categories: - title: 🔨 Internals labels: - 🖱️ DX - - 💡 Enhancement + - 💡 Feature + - ⚠️ Interface - 🔨 Maintenance change-template: "- $TITLE (#$NUMBER)" diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 3111ec71..73c2aff0 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -9,58 +9,10 @@ on: - released jobs: - documentation: - name: Build documentation and run notebooks - if: startsWith(github.ref, 'refs/tags') - runs-on: ubuntu-18.04 - steps: - - uses: actions/checkout@v2 - - name: Set up Python 3.7 - uses: actions/setup-python@v2 - with: - python-version: 3.7 - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -r .reqs/doc.txt - pip install . - sudo apt-get -y install pandoc graphviz - - name: Build documentation and run notebooks - working-directory: docs - env: - EXECUTE_NB: YES - run: make html - - name: Test doctests in docstrings - working-directory: docs - run: make ignore-warnings=1 doctest - - style: - name: Style checks - if: startsWith(github.ref, 'refs/tags') - runs-on: ubuntu-18.04 - steps: - - uses: actions/checkout@v2 - - name: Set up Python 3.7 - uses: actions/setup-python@v2 - with: - python-version: 3.7 - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -r .reqs/sty.txt - pip install . - sudo npm install -g cspell pyright - - name: Perform style checks - run: pre-commit run -a - - name: Check spelling - run: cspell $(git ls-files) - - name: Run pyright - run: pyright - push: name: Push to stable branch if: startsWith(github.ref, 'refs/tags') - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 needs: - documentation - style diff --git a/.github/workflows/ci-epic.yml b/.github/workflows/ci-epic.yml index eb7717bf..b7383111 100644 --- a/.github/workflows/ci-epic.yml +++ b/.github/workflows/ci-epic.yml @@ -13,7 +13,7 @@ on: jobs: documentation: name: Build documentation and run notebooks - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Set up Python 3.7 @@ -32,7 +32,7 @@ jobs: style: name: Style checks - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Set up Python 3.7 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 54f4b2ad..c85c9cd1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: documentation: name: Build documentation and run notebooks if: github.event.pull_request.draft == false - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Set up Python 3.7 @@ -27,7 +27,7 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - pip install -r .reqs/doc.txt + pip install -r reqs/3.7/requirements-doc.txt pip install . sudo apt-get -y install pandoc graphviz - name: Build documentation and run notebooks @@ -37,7 +37,7 @@ jobs: style: name: Style checks if: github.event.pull_request.draft == false - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Set up Python 3.7 @@ -47,12 +47,12 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - pip install -r .reqs/sty.txt + pip install -r reqs/3.7/requirements-sty.txt pip install . sudo npm install -g cspell pyright - name: Perform style checks run: pre-commit run -a - name: Check spelling - run: cspell $(git ls-files) + run: cspell --no-progress $(git ls-files) - name: Run pyright run: pyright diff --git a/.github/workflows/linkcheck.yml b/.github/workflows/linkcheck.yml index a977faa5..6022f494 100644 --- a/.github/workflows/linkcheck.yml +++ b/.github/workflows/linkcheck.yml @@ -17,7 +17,7 @@ jobs: check_links: name: Check external links if: github.event.pull_request.draft == false - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Set up Python 3.7 @@ -27,7 +27,8 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - pip install -r .reqs/doc.txt + pip install -r reqs/3.7/requirements-doc.txt + pip install . sudo apt-get -y install pandoc - name: Check external links working-directory: docs diff --git a/.github/workflows/pr-linting.yml b/.github/workflows/pr-linting.yml index 2a168425..b4b709c3 100644 --- a/.github/workflows/pr-linting.yml +++ b/.github/workflows/pr-linting.yml @@ -14,19 +14,19 @@ on: jobs: check-labels: name: Check labels - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - uses: docker://agilepathway/pull-request-label-checker:latest with: any_of: | - Bug,💡 Enhancement,📝 Docs,🔨 Maintenance,🖱️ DX,📖 Analysis, + Bug,💡 Feature,⚠️ Interface,📝 Docs,🔨 Maintenance,🖱️ DX,📖 Analysis, 📖 Software,📖 Theory none_of: ❌ Won't fix,💫 Good first issue repo_token: ${{ secrets.GITHUB_TOKEN }} check-title: name: Check title - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v1 - name: Install Dependencies diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index 17fdb961..a3373592 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -7,7 +7,7 @@ on: jobs: update_release_draft: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - uses: release-drafter/release-drafter@v5 env: diff --git a/.github/workflows/requirements-cron.yml b/.github/workflows/requirements-cron.yml new file mode 100644 index 00000000..1f6b89e4 --- /dev/null +++ b/.github/workflows/requirements-cron.yml @@ -0,0 +1,65 @@ +# cspell:ignore noreply + +name: Requirements (scheduled) + +on: + schedule: + - cron: "0 2 * * 1" + +jobs: + upgrade: + name: Upgrade requirement files + runs-on: ubuntu-20.04 + strategy: + matrix: + python-version: + - 3.6 + - 3.7 + - 3.8 + - 3.9 + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@master + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install pip-tools + - name: Upgrade dependencies + run: bash reqs/upgrade.sh + - uses: actions/upload-artifact@v2 + with: + name: ${{ matrix.python-version }} + path: reqs/${{ matrix.python-version }} + + push: + name: Create PR + runs-on: ubuntu-20.04 + needs: + - upgrade + steps: + - uses: actions/checkout@v2 + with: + token: ${{ secrets.PAT }} + - uses: actions/download-artifact@v2 + with: + path: reqs + - run: git status -s + - name: Create Pull Request + uses: peter-evans/create-pull-request@v3 + with: + commit-message: "ci: upgrade developer dependencies" + committer: GitHub + author: GitHub + title: "ci: upgrade developer dependencies" + labels: | + 🖱️ DX + branch-suffix: timestamp + delete-branch: true + token: ${{ secrets.PAT }} + - name: Print PR info + run: | + echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" + echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}" diff --git a/.github/workflows/requirements-pr.yml b/.github/workflows/requirements-pr.yml new file mode 100644 index 00000000..4d2acc23 --- /dev/null +++ b/.github/workflows/requirements-pr.yml @@ -0,0 +1,90 @@ +# cspell:ignore noreply + +name: Requirements (PR) + +on: + pull_request: + branches: [master] + types: + - opened + - synchronize + - reopened + - ready_for_review + +jobs: + upgrade: + name: Upgrade requirement files + if: github.event.pull_request.draft == false + runs-on: ubuntu-20.04 + strategy: + matrix: + python-version: + - 3.6 + - 3.7 + - 3.8 + - 3.9 + steps: + - uses: actions/checkout@v2 + - run: git fetch origin + - name: Check for modified dependencies + id: git-diff + run: + echo "::set-output name=dependency-changes::$(git diff + origin/$GITHUB_BASE_REF --name-only -- reqs setup.cfg)" + # Also triggers on (unwanted) changes to requirements.txt files + - name: Show dependency changes changes + run: + git diff origin/$GITHUB_BASE_REF -- reqs/requirements*.in setup.cfg + - name: Abort if fork PR and dependency changes + if: + github.event.pull_request.head.repo.full_name != github.repository && + steps.git-diff.outputs.dependency-changes != '' + run: | + echo "::error::Cannot modify package dependencies through a PR from a fork" + exit 1 + - name: Set up Python ${{ matrix.python-version }} + if: steps.git-diff.outputs.dependency-changes != '' + uses: actions/setup-python@master + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + if: steps.git-diff.outputs.dependency-changes != '' + run: | + python -m pip install --upgrade pip + pip install pip-tools + - name: Upgrade dependencies + if: steps.git-diff.outputs.dependency-changes != '' + run: bash reqs/upgrade.sh + - uses: actions/upload-artifact@v2 + with: + name: ${{ matrix.python-version }} + path: reqs/${{ matrix.python-version }} + + push: + name: Push changes + if: github.event.pull_request.draft == false + runs-on: ubuntu-20.04 + needs: + - upgrade + steps: + - uses: actions/checkout@v2 + with: + token: ${{ secrets.PAT }} + - uses: actions/download-artifact@v2 + with: + path: reqs + - run: git status -s + - name: Commit and push changes + run: | + git remote set-url origin https://x-access-token:${{ secrets.PAT }}@github.com/${{ github.repository }} + git config --global user.name ${{ github.actor }} + git config --global user.email "${{ github.actor }}@users.noreply.github.com" + git checkout -b ${GITHUB_HEAD_REF} + FILES_TO_COMMIT="reqs/*/requirements*.txt" + if [[ $(git diff -- ${FILES_TO_COMMIT}) ]]; then + git add ${FILES_TO_COMMIT} + git commit -m "ci: upgrade developer dependencies (automatic)" + git config pull.rebase true + git pull origin ${GITHUB_HEAD_REF} + git push origin HEAD:${GITHUB_HEAD_REF} + fi diff --git a/.gitpod.yml b/.gitpod.yml index 07a5d734..8a5d12f3 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -1,5 +1,5 @@ tasks: - - init: pip install -r requirements-dev.txt -e . + - init: pip install -r reqs/3.8/requirements-dev.txt -e . github: prebuilds: diff --git a/.readthedocs.yml b/.readthedocs.yml index 46bbaa14..88f0b24f 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -9,8 +9,8 @@ formats: - htmlzip python: - version: 3.7 + version: 3.8 install: - - requirements: .reqs/doc.txt + - requirements: reqs/3.8/requirements-doc.txt - method: pip path: . diff --git a/.reqs/dev.in b/.reqs/dev.in deleted file mode 100644 index 2559c9ce..00000000 --- a/.reqs/dev.in +++ /dev/null @@ -1,9 +0,0 @@ --r ../requirements.txt --r doc.txt --r sty.txt - -jupyterlab -jupyterlab-code-formatter -labels -pip-tools -tox >= 1.9 # for skip_install, use_develop diff --git a/.reqs/doc.txt b/.reqs/doc.txt deleted file mode 100644 index 40d6eab4..00000000 --- a/.reqs/doc.txt +++ /dev/null @@ -1,117 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile .reqs/doc.in -# -alabaster==0.7.12 # via sphinx -argon2-cffi==20.1.0 # via notebook -async-generator==1.10 # via nbclient -attrs==20.3.0 # via jsonschema, jupyter-cache, markdown-it-py -babel==2.9.0 # via sphinx -backcall==0.2.0 # via ipython -beautifulsoup4==4.9.3 # via sphinx-book-theme -bleach==3.2.1 # via nbconvert -certifi==2020.11.8 # via requests -cffi==1.14.4 # via argon2-cffi -chardet==3.0.4 # via requests -click==7.1.2 # via sphinx-book-theme -colorama==0.4.4 # via nbdime -cycler==0.10.0 # via -r .reqs/../requirements.txt, matplotlib -decorator==4.4.2 # via ipython -defusedxml==0.6.0 # via nbconvert -docutils==0.16 # via myst-nb, myst-parser, pybtex-docutils, sphinx, sphinx-book-theme, sphinx-panels, sphinx-togglebutton -entrypoints==0.3 # via nbconvert -gitdb==4.0.5 # via gitpython -gitpython==3.1.11 # via nbdime -graphviz==0.15 # via -r .reqs/doc.in -idna==2.10 # via requests -imagesize==1.2.0 # via sphinx -importlib-metadata==3.1.0 # via myst-nb -ipykernel==5.3.4 # via ipywidgets, jupyter, jupyter-console, notebook, qtconsole -ipython-genutils==0.2.0 # via nbformat, notebook, qtconsole, traitlets -ipython==7.19.0 # via ipykernel, ipywidgets, jupyter-console, jupyter-sphinx, myst-nb -ipywidgets==7.5.1 # via -r .reqs/doc.in, jupyter, jupyter-sphinx, myst-nb -jedi==0.17.2 # via ipython -jinja2==2.11.2 # via nbconvert, nbdime, notebook, sphinx -jsonschema==3.2.0 # via nbformat -jupyter-cache==0.4.1 # via myst-nb -jupyter-client==6.1.7 # via ipykernel, jupyter-console, nbclient, notebook, qtconsole -jupyter-console==6.2.0 # via jupyter -jupyter-core==4.7.0 # via jupyter-client, nbconvert, nbformat, notebook, qtconsole -jupyter-sphinx==0.3.2 # via myst-nb -jupyter==1.0.0 # via -r .reqs/doc.in -kiwisolver==1.3.1 # via -r .reqs/../requirements.txt, matplotlib -latexcodec==2.0.1 # via pybtex -markdown-it-py==0.5.6 # via myst-parser -markupsafe==1.1.1 # via jinja2 -matplotlib==3.3.3 # via -r .reqs/../requirements.txt -mistune==0.8.4 # via nbconvert -myst-nb==0.10.1 # via -r .reqs/doc.in -myst-parser==0.12.10 # via myst-nb -nbclient==0.5.1 # via jupyter-cache -nbconvert==5.6.1 # via jupyter, jupyter-sphinx, myst-nb, notebook -nbdime==2.1.0 # via jupyter-cache -nbformat==5.0.8 # via ipywidgets, jupyter-cache, jupyter-sphinx, myst-nb, nbclient, nbconvert, nbdime, notebook -nest-asyncio==1.4.3 # via nbclient -notebook==6.1.5 # via jupyter, nbdime, widgetsnbextension -numpy==1.19.4 # via -r .reqs/../requirements.txt, matplotlib -oset==0.1.3 # via sphinxcontrib-bibtex -packaging==20.4 # via bleach, sphinx -pandocfilters==1.4.3 # via nbconvert -parso==0.7.1 # via jedi -pexpect==4.8.0 # via ipython -pickleshare==0.7.5 # via ipython -pillow==8.0.1 # via -r .reqs/../requirements.txt, matplotlib -prometheus-client==0.9.0 # via notebook -prompt-toolkit==3.0.8 # via ipython, jupyter-console -ptyprocess==0.6.0 # via pexpect, terminado -pybtex-docutils==0.2.2 # via sphinxcontrib-bibtex -pybtex==0.23.0 # via pybtex-docutils, sphinxcontrib-bibtex -pycparser==2.20 # via cffi -pydata-sphinx-theme==0.4.1 # via sphinx-book-theme -pydeps==1.9.11 # via -r .reqs/doc.in -pygments==2.7.2 # via ipython, jupyter-console, nbconvert, nbdime, qtconsole, sphinx -pyparsing==2.4.7 # via -r .reqs/../requirements.txt, matplotlib, packaging -pyrsistent==0.17.3 # via jsonschema -python-dateutil==2.8.1 # via -r .reqs/../requirements.txt, jupyter-client, matplotlib -pytz==2020.4 # via babel -pyyaml==5.3.1 # via myst-nb, myst-parser, pybtex, sphinx-book-theme -pyzmq==20.0.0 # via jupyter-client, notebook, qtconsole -qtconsole==5.0.1 # via jupyter -qtpy==1.9.0 # via qtconsole -requests==2.25.0 # via nbdime, sphinx -send2trash==1.5.0 # via notebook -six==1.15.0 # via -r .reqs/../requirements.txt, argon2-cffi, bleach, cycler, jsonschema, latexcodec, nbdime, packaging, pybtex, pybtex-docutils, python-dateutil -smmap==3.0.4 # via gitdb -snowballstemmer==2.0.0 # via sphinx -soupsieve==2.0.1 # via beautifulsoup4 -sphinx-book-theme==0.0.39 # via -r .reqs/doc.in -sphinx-copybutton==0.3.1 # via -r .reqs/doc.in -sphinx-math-dollar==1.2 # via -r .reqs/doc.in -sphinx-panels==0.5.2 # via -r .reqs/doc.in -sphinx-thebe==0.0.8 # via -r .reqs/doc.in -sphinx-togglebutton==0.2.3 # via -r .reqs/doc.in, myst-nb -sphinx==3.3.1 # via -r .reqs/doc.in, jupyter-sphinx, myst-nb, myst-parser, pydata-sphinx-theme, sphinx-book-theme, sphinx-copybutton, sphinx-math-dollar, sphinx-panels, sphinx-thebe, sphinx-togglebutton, sphinxcontrib-bibtex -sphinxcontrib-applehelp==1.0.2 # via sphinx -sphinxcontrib-bibtex==1.0.0 # via -r .reqs/doc.in -sphinxcontrib-devhelp==1.0.2 # via sphinx -sphinxcontrib-htmlhelp==1.0.3 # via sphinx -sphinxcontrib-jsmath==1.0.1 # via sphinx -sphinxcontrib-qthelp==1.0.3 # via sphinx -sphinxcontrib-serializinghtml==1.1.4 # via sphinx -sqlalchemy==1.3.20 # via jupyter-cache -stdlib-list==0.8.0 # via pydeps -terminado==0.9.1 # via notebook -testpath==0.4.4 # via nbconvert -tornado==6.1 # via ipykernel, jupyter-client, nbdime, notebook, terminado -traitlets==5.0.5 # via ipykernel, ipython, ipywidgets, jupyter-client, jupyter-core, nbclient, nbconvert, nbformat, notebook, qtconsole -urllib3==1.26.2 # via requests -wcwidth==0.2.5 # via prompt-toolkit -webencodings==0.5.1 # via bleach -wheel==0.35.1 # via sphinx-togglebutton -widgetsnbextension==3.5.1 # via ipywidgets -zipp==3.4.0 # via importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/.reqs/sty.txt b/.reqs/sty.txt deleted file mode 100644 index 78140c53..00000000 --- a/.reqs/sty.txt +++ /dev/null @@ -1,68 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile .reqs/sty.in -# -appdirs==1.4.4 # via black, virtualenv -astroid==2.4.2 # via pylint -attrs==20.3.0 # via flake8-bugbear, jsonschema -black==20.8b1 # via -r .reqs/sty.in -cfgv==3.2.0 # via pre-commit -chardet==3.0.4 # via doc8 -click==7.1.2 # via black -cycler==0.10.0 # via -r .reqs/../requirements.txt, matplotlib -distlib==0.3.1 # via virtualenv -doc8==0.8.1 # via -r .reqs/sty.in -docutils==0.16 # via doc8, restructuredtext-lint, rstcheck -filelock==3.0.12 # via virtualenv -flake8-blind-except==0.1.1 # via -r .reqs/sty.in -flake8-bugbear==20.11.1 # via -r .reqs/sty.in -flake8-builtins==1.5.3 # via -r .reqs/sty.in -flake8-polyfill==1.0.2 # via pep8-naming -flake8-rst-docstrings==0.0.14 # via -r .reqs/sty.in -flake8==3.8.4 # via -r .reqs/sty.in, flake8-bugbear, flake8-builtins, flake8-polyfill, flake8-rst-docstrings -identify==1.5.10 # via pre-commit -ipython-genutils==0.2.0 # via nbformat, traitlets -isort==5.6.4 # via -r .reqs/sty.in, pylint -jsonschema==3.2.0 # via nbformat -jupyter-core==4.7.0 # via nbformat -kiwisolver==1.3.1 # via -r .reqs/../requirements.txt, matplotlib -lazy-object-proxy==1.4.3 # via astroid -matplotlib==3.3.3 # via -r .reqs/../requirements.txt -mccabe==0.6.1 # via flake8, pylint -mypy-extensions==0.4.3 # via black, mypy -mypy==0.790 # via -r .reqs/sty.in -nbformat==5.0.8 # via nbstripout -nbstripout==0.3.9 # via -r .reqs/sty.in -nodeenv==1.5.0 # via pre-commit -numpy==1.19.4 # via -r .reqs/../requirements.txt, matplotlib -pathspec==0.8.1 # via black -pbr==5.5.1 # via stevedore -pep8-naming==0.11.1 # via -r .reqs/sty.in -pillow==8.0.1 # via -r .reqs/../requirements.txt, matplotlib -pre-commit==2.9.0 # via -r .reqs/sty.in -pycodestyle==2.6.0 # via flake8 -pydocstyle==5.1.1 # via -r .reqs/sty.in -pyflakes==2.2.0 # via flake8 -pygments==2.7.2 # via doc8 -pylint==2.6.0 # via -r .reqs/sty.in -pyparsing==2.4.7 # via -r .reqs/../requirements.txt, matplotlib -pyrsistent==0.17.3 # via jsonschema -python-dateutil==2.8.1 # via -r .reqs/../requirements.txt, matplotlib -pyyaml==5.3.1 # via pre-commit -regex==2020.11.13 # via black -restructuredtext-lint==1.3.2 # via doc8, flake8-rst-docstrings -rstcheck==3.3.1 # via -r .reqs/sty.in -six==1.15.0 # via -r .reqs/../requirements.txt, astroid, cycler, doc8, jsonschema, python-dateutil, virtualenv -snowballstemmer==2.0.0 # via pydocstyle -stevedore==3.2.2 # via doc8 -toml==0.10.2 # via black, pre-commit, pylint -traitlets==5.0.5 # via jupyter-core, nbformat -typed-ast==1.4.1 # via black, mypy -typing-extensions==3.7.4.3 # via black, mypy -virtualenv==20.2.1 # via pre-commit -wrapt==1.12.1 # via astroid - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/.vscode/settings.json b/.vscode/settings.json index ec70ee39..09fef50a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -37,6 +37,12 @@ "files.associations": { "*.inc": "restructuredtext" }, + "files.watcherExclude": { + "**/*_cache/**": true, + "**/.eggs/**": true, + "**/.git/**": true, + "**/.tox/**": true + }, "git.rebaseWhenSync": true, "githubPullRequests.telemetry.enabled": false, "gitlens.advanced.telemetry.enabled": false, @@ -62,8 +68,8 @@ "rewrap.wrappingColumn": 79, "search.exclude": { "**/tests/**/__init__.py": true, - ".reqs/*.txt": true, "docs/tox.ini": true, + "reqs/3.*/*.txt": true, "tests/tox.ini": true }, "telemetry.enableCrashReporter": false, diff --git a/cspell.json b/cspell.json index 7f3f165d..9c04c465 100644 --- a/cspell.json +++ b/cspell.json @@ -2,8 +2,7 @@ "version": "0.1", "enableFiletypes": [ "git-commit", - "jupyter", - "xml" + "jupyter" ], "flagWords": [ "analyse", @@ -28,8 +27,6 @@ ".pre-commit-config.yaml", ".pylintrc", ".readthedocs.yml", - ".reqs/*.in", - ".reqs/*.txt", ".vscode/*", ".vscode/.gitignore", "Makefile", @@ -39,6 +36,8 @@ "docs/conf.py", "pyproject.toml", "pyrightconfig.json", + "reqs/**/*.in", + "reqs/**/*.txt", "requirements*.txt", "setup.cfg", "setup.py", @@ -119,6 +118,7 @@ "pytest", "rarita", "rebased", + "reqs", "rightarrow", "rtfd", "scikit", diff --git a/docs/develop.md b/docs/develop.md index fa78973b..a64cdc08 100644 --- a/docs/develop.md +++ b/docs/develop.md @@ -192,7 +192,7 @@ Where possible, we define and enforce our coding conventions through automated tools, instead of describing them in documentation. These tools perform their checks when you commit files locally (see {ref}`develop:Pre-commit`), when {ref}`running tox `, and when you make a -{ref}`pull request `. +{ref}`pull request `. The tools are configured through files such as [`pyproject.toml`](https://github.com/ComPWA/PWA-pages/blob/master/pyproject.toml), @@ -203,7 +203,7 @@ workflow files under run into persistent linting errors, this may mean we need to further specify our conventions. In that case, it's best to {ref}`create an issue ` or a -{ref}`pull request ` and propose a policy change that +{ref}`pull request ` and propose a policy change that can be formulated through those config files. ### Pre-commit @@ -270,7 +270,7 @@ environments install ### GitHub Actions -All {ref}`style checks `, testing of the +All {ref}`style checks `, testing of the {ref}`documentation and links `, and {ref}`unit tests ` are performed upon each pull request through [GitHub Actions](https://docs.github.com/en/actions) (see status @@ -472,16 +472,16 @@ or [Markdown](https://www.markdownguide.org). In addition, it's easy to write ````{margin} ```{tip} -Sometimes it happens that your Jupyter installation does not recognize -your {ref}`virtual environment `. -In that case, have a look at +Sometimes it happens that your Jupyter installation does not recognize your +{ref}`virtual environment `. In that case, have a +look at [these instructions](https://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernels-for-different-environments) ``` ```` The [docs](https://github.com/ComPWA/PWA-pages/tree/master/docs) folder contains a few Jupyter notebooks. These notebooks are run and tested whenever -you make a {ref}`pull request `. If you want to improve +you make a {ref}`pull request `. If you want to improve those notebooks, we recommend working with [Jupyter Lab](https://jupyterlab.readthedocs.io/en/stable), which is {ref}`installed with the dev requirements `. @@ -560,9 +560,9 @@ The documentation of the `stable` branch is also the default view #### `master` branch Represents the upcoming release of the package. This branch is not guaranteed -to be stable, but has high {ref}`CI standards ` -and can only be updated through reviewed pull requests. The documentation of -the `master` branch can be found on RTD under "latest", see e.g. +to be stable, but has high {ref}`CI standards ` and can +only be updated through reviewed pull requests. The documentation of the +`master` branch can be found on RTD under "latest", see e.g. [expertsystem.rtfd.io/en/latest](https://expertsystem.rtfd.io/en/latest). #### Epic branches diff --git a/environment.yml b/environment.yml index 1b9f166c..e3ef9483 100644 --- a/environment.yml +++ b/environment.yml @@ -2,9 +2,9 @@ name: pwa-pages channels: - defaults dependencies: - - python>=3.6,<3.9 + - python==3.8.* - pip - graphviz # for binder - pip: - - -r requirements-dev.txt + - -r reqs/3.8/requirements-dev.txt - -e . diff --git a/labels.toml b/labels.toml index 915753e5..b52063c9 100644 --- a/labels.toml +++ b/labels.toml @@ -8,6 +8,11 @@ color = "3E4B9E" name = "Epic" description = "" +["⚠️ Interface"] +color = "BFDADC" +name = "⚠️ Interface" +description = "Changes to the interface" + ["⚪ Duplicate"] color = "cfd3d7" name = "⚪ Duplicate" @@ -23,10 +28,10 @@ color = "88506B" name = "❔ Question" description = "Discuss this matter in the team" -["💡 Enhancement"] +["💡 Feature"] color = "c2e0c6" -name = "💡 Enhancement" -description = "New feature or improvement of existing code" +name = "💡 Feature" +description = "New feature added to the package" ["💫 Good first issue"] color = "F4EAEF" @@ -56,7 +61,7 @@ description = "Improvements or additions to documentation" ["🔨 Maintenance"] color = "FFCD8F" name = "🔨 Maintenance" -description = "Refactoring or redesign" +description = "Refactoring that doesn't affect the interface" ["🖱️ DX"] color = "fef2c0" diff --git a/reqs/.gitignore b/reqs/.gitignore new file mode 100644 index 00000000..8d0647e4 --- /dev/null +++ b/reqs/.gitignore @@ -0,0 +1,2 @@ +requirements.in +*/requirements*.in diff --git a/reqs/3.6/requirements-dev.txt b/reqs/3.6/requirements-dev.txt new file mode 100644 index 00000000..a32a25cd --- /dev/null +++ b/reqs/3.6/requirements-dev.txt @@ -0,0 +1,177 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-annotate --output-file=reqs/3.6/requirements-dev.txt reqs/requirements-dev.in reqs/requirements-doc.in reqs/requirements-sty.in reqs/requirements.in +# +alabaster==0.7.12 +anyio==2.0.2 +appdirs==1.4.4 +argon2-cffi==20.1.0 +astroid==2.4.2 +async-generator==1.10 +attrs==20.3.0 +babel==2.9.0 +backcall==0.2.0 +beautifulsoup4==4.9.3 +black==20.8b1 +bleach==3.2.1 +certifi==2020.12.5 +cffi==1.14.4 +cfgv==3.2.0 +chardet==4.0.0 +click==7.1.2 +colorama==0.4.4 +contextvars==2.4 +cycler==0.10.0 +dataclasses==0.8 +decorator==4.4.2 +defusedxml==0.6.0 +distlib==0.3.1 +doc8==0.8.1 +docutils==0.16 +entrypoints==0.3 +filelock==3.0.12 +flake8-blind-except==0.2.0 +flake8-bugbear==20.11.1 +flake8-builtins==1.5.3 +flake8-polyfill==1.0.2 +flake8-rst-docstrings==0.0.14 +flake8==3.8.4 +gitdb==4.0.5 +gitpython==3.1.12 +graphviz==0.16 +identify==1.5.12 +idna==2.10 +imagesize==1.2.0 +immutables==0.14 +importlib-metadata==3.4.0 +importlib-resources==3.0.0 +ipykernel==5.4.3 +ipython-genutils==0.2.0 +ipython==7.16.1 +ipywidgets==7.6.3 +isort==5.7.0 +jedi==0.18.0 +jinja2==2.11.2 +json5==0.9.5 +jsonschema==3.2.0 +jupyter-cache==0.4.1 +jupyter-client==6.1.11 +jupyter-console==6.2.0 +jupyter-core==4.7.0 +jupyter-server==1.2.2 +jupyter-sphinx==0.3.1 +jupyter==1.0.0 +jupyterlab-code-formatter==1.4.2 +jupyterlab-server==2.1.2 +jupyterlab-widgets==1.0.0 +jupyterlab==3.0.5 +kiwisolver==1.3.1 +labels==20.1.0 +latexcodec==2.0.1 +lazy-object-proxy==1.4.3 +livereload==2.6.3 +markdown-it-py==0.5.8 +markupsafe==1.1.1 +matplotlib==3.3.3 +mccabe==0.6.1 +mistune==0.8.4 +mypy-extensions==0.4.3 +mypy==0.790 +myst-nb==0.10.2 +myst-parser==0.12.10 +nbclassic==0.2.6 +nbclient==0.5.1 +nbconvert==5.6.1 +nbdime==2.1.0 +nbformat==5.1.2 +nbstripout==0.3.9 +nest-asyncio==1.4.3 +nodeenv==1.5.0 +notebook==6.2.0 +numpy==1.19.5 +oset==0.1.3 +packaging==20.8 +pandocfilters==1.4.3 +parso==0.8.1 +pathspec==0.8.1 +pbr==5.5.1 +pep8-naming==0.11.1 +pexpect==4.8.0 +pickleshare==0.7.5 +pillow==8.1.0 +pip-tools==5.5.0 +pluggy==0.13.1 +pre-commit==2.9.3 +prometheus-client==0.9.0 +prompt-toolkit==3.0.10 +ptyprocess==0.7.0 +py==1.10.0 +pybtex-docutils==1.0.0 +pybtex==0.23.0 +pycodestyle==2.6.0 +pycparser==2.20 +pydata-sphinx-theme==0.4.1 +pydeps==1.9.13 +pydocstyle==5.1.1 +pyflakes==2.2.0 +pygments==2.7.4 +pylint==2.6.0 +pyparsing==2.4.7 +pyrsistent==0.17.3 +python-dateutil==2.8.1 +pytoml==0.1.21 +pytz==2020.5 +pyyaml==5.3.1 +pyzmq==21.0.1 +qtconsole==5.0.1 +qtpy==1.9.0 +regex==2020.11.13 +requests==2.25.1 +restructuredtext-lint==1.3.2 +rstcheck==3.3.1 +send2trash==1.5.0 +six==1.15.0 +smmap==3.0.4 +sniffio==1.2.0 +snowballstemmer==2.0.0 +soupsieve==2.1 +sphinx-autobuild==2020.9.1 +sphinx-book-theme==0.0.39 +sphinx-copybutton==0.3.1 +sphinx-math-dollar==1.2 +sphinx-panels==0.5.2 +sphinx-thebe==0.0.8 +sphinx-togglebutton==0.2.3 +sphinx==3.4.3 +sphinxcontrib-applehelp==1.0.2 +sphinxcontrib-bibtex==1.0.0 +sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-htmlhelp==1.0.3 +sphinxcontrib-jsmath==1.0.1 +sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-serializinghtml==1.1.4 +sqlalchemy==1.3.22 +stdlib-list==0.8.0 +stevedore==3.3.0 +terminado==0.9.2 +testpath==0.4.4 +toml==0.10.2 +tornado==6.1 +tox==3.21.1 +traitlets==4.3.3 +typed-ast==1.4.2 +typing-extensions==3.7.4.3 +urllib3==1.26.2 +virtualenv==20.3.1 +wcwidth==0.2.5 +webencodings==0.5.1 +wheel==0.36.2 +widgetsnbextension==3.5.1 +wrapt==1.12.1 +zipp==3.4.0 + +# The following packages are considered to be unsafe in a requirements file: +# pip +# setuptools diff --git a/reqs/3.6/requirements-doc.txt b/reqs/3.6/requirements-doc.txt new file mode 100644 index 00000000..3fb85f9d --- /dev/null +++ b/reqs/3.6/requirements-doc.txt @@ -0,0 +1,120 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-annotate --output-file=reqs/3.6/requirements-doc.txt reqs/3.6/requirements-doc.in +# +alabaster==0.7.12 +argon2-cffi==20.1.0 +async-generator==1.10 +attrs==20.3.0 +babel==2.9.0 +backcall==0.2.0 +beautifulsoup4==4.9.3 +bleach==3.2.1 +certifi==2020.12.5 +cffi==1.14.4 +chardet==4.0.0 +click==7.1.2 +colorama==0.4.4 +cycler==0.10.0 +decorator==4.4.2 +defusedxml==0.6.0 +docutils==0.16 +entrypoints==0.3 +gitdb==4.0.5 +gitpython==3.1.12 +graphviz==0.16 +idna==2.10 +imagesize==1.2.0 +importlib-metadata==3.4.0 +importlib-resources==3.0.0 +ipykernel==5.4.3 +ipython-genutils==0.2.0 +ipython==7.16.1 +ipywidgets==7.6.3 +jedi==0.18.0 +jinja2==2.11.2 +jsonschema==3.2.0 +jupyter-cache==0.4.1 +jupyter-client==6.1.11 +jupyter-console==6.2.0 +jupyter-core==4.7.0 +jupyter-sphinx==0.3.1 +jupyter==1.0.0 +jupyterlab-widgets==1.0.0 +kiwisolver==1.3.1 +latexcodec==2.0.1 +markdown-it-py==0.5.8 +markupsafe==1.1.1 +matplotlib==3.3.3 +mistune==0.8.4 +myst-nb==0.10.2 +myst-parser==0.12.10 +nbclient==0.5.1 +nbconvert==5.6.1 +nbdime==2.1.0 +nbformat==5.1.2 +nest-asyncio==1.4.3 +notebook==6.2.0 +numpy==1.19.5 +oset==0.1.3 +packaging==20.8 +pandocfilters==1.4.3 +parso==0.8.1 +pexpect==4.8.0 +pickleshare==0.7.5 +pillow==8.1.0 +prometheus-client==0.9.0 +prompt-toolkit==3.0.10 +ptyprocess==0.7.0 +pybtex-docutils==1.0.0 +pybtex==0.23.0 +pycparser==2.20 +pydata-sphinx-theme==0.4.1 +pydeps==1.9.13 +pygments==2.7.4 +pyparsing==2.4.7 +pyrsistent==0.17.3 +python-dateutil==2.8.1 +pytz==2020.5 +pyyaml==5.3.1 +pyzmq==21.0.1 +qtconsole==5.0.1 +qtpy==1.9.0 +requests==2.25.1 +send2trash==1.5.0 +six==1.15.0 +smmap==3.0.4 +snowballstemmer==2.0.0 +soupsieve==2.1 +sphinx-book-theme==0.0.39 +sphinx-copybutton==0.3.1 +sphinx-math-dollar==1.2 +sphinx-panels==0.5.2 +sphinx-thebe==0.0.8 +sphinx-togglebutton==0.2.3 +sphinx==3.4.3 +sphinxcontrib-applehelp==1.0.2 +sphinxcontrib-bibtex==1.0.0 +sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-htmlhelp==1.0.3 +sphinxcontrib-jsmath==1.0.1 +sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-serializinghtml==1.1.4 +sqlalchemy==1.3.22 +stdlib-list==0.8.0 +terminado==0.9.2 +testpath==0.4.4 +tornado==6.1 +traitlets==4.3.3 +typing-extensions==3.7.4.3 +urllib3==1.26.2 +wcwidth==0.2.5 +webencodings==0.5.1 +wheel==0.36.2 +widgetsnbextension==3.5.1 +zipp==3.4.0 + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/reqs/3.6/requirements-sty.txt b/reqs/3.6/requirements-sty.txt new file mode 100644 index 00000000..6fe574df --- /dev/null +++ b/reqs/3.6/requirements-sty.txt @@ -0,0 +1,73 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-annotate --output-file=reqs/3.6/requirements-sty.txt reqs/3.6/requirements-sty.in +# +appdirs==1.4.4 +astroid==2.4.2 +attrs==20.3.0 +black==20.8b1 +cfgv==3.2.0 +chardet==4.0.0 +click==7.1.2 +cycler==0.10.0 +dataclasses==0.8 +decorator==4.4.2 +distlib==0.3.1 +doc8==0.8.1 +docutils==0.16 +filelock==3.0.12 +flake8-blind-except==0.2.0 +flake8-bugbear==20.11.1 +flake8-builtins==1.5.3 +flake8-polyfill==1.0.2 +flake8-rst-docstrings==0.0.14 +flake8==3.8.4 +identify==1.5.12 +importlib-metadata==3.4.0 +importlib-resources==3.0.0 +ipython-genutils==0.2.0 +isort==5.7.0 +jsonschema==3.2.0 +jupyter-core==4.7.0 +kiwisolver==1.3.1 +lazy-object-proxy==1.4.3 +matplotlib==3.3.3 +mccabe==0.6.1 +mypy-extensions==0.4.3 +mypy==0.790 +nbformat==5.1.2 +nbstripout==0.3.9 +nodeenv==1.5.0 +numpy==1.19.5 +pathspec==0.8.1 +pbr==5.5.1 +pep8-naming==0.11.1 +pillow==8.1.0 +pre-commit==2.9.3 +pycodestyle==2.6.0 +pydocstyle==5.1.1 +pyflakes==2.2.0 +pygments==2.7.4 +pylint==2.6.0 +pyparsing==2.4.7 +pyrsistent==0.17.3 +python-dateutil==2.8.1 +pyyaml==5.3.1 +regex==2020.11.13 +restructuredtext-lint==1.3.2 +rstcheck==3.3.1 +six==1.15.0 +snowballstemmer==2.0.0 +stevedore==3.3.0 +toml==0.10.2 +traitlets==4.3.3 +typed-ast==1.4.2 +typing-extensions==3.7.4.3 +virtualenv==20.3.1 +wrapt==1.12.1 +zipp==3.4.0 + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/reqs/3.6/requirements.txt b/reqs/3.6/requirements.txt new file mode 100644 index 00000000..cfca8b19 --- /dev/null +++ b/reqs/3.6/requirements.txt @@ -0,0 +1,14 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-annotate --output-file=reqs/3.6/requirements.txt reqs/3.6/requirements.in +# +cycler==0.10.0 +kiwisolver==1.3.1 +matplotlib==3.3.3 +numpy==1.19.5 +pillow==8.1.0 +pyparsing==2.4.7 +python-dateutil==2.8.1 +six==1.15.0 diff --git a/reqs/3.7/requirements-dev.txt b/reqs/3.7/requirements-dev.txt new file mode 100644 index 00000000..eed5ce90 --- /dev/null +++ b/reqs/3.7/requirements-dev.txt @@ -0,0 +1,173 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-annotate --output-file=reqs/3.7/requirements-dev.txt reqs/requirements-dev.in reqs/requirements-doc.in reqs/requirements-sty.in reqs/requirements.in +# +alabaster==0.7.12 +anyio==2.0.2 +appdirs==1.4.4 +argon2-cffi==20.1.0 +astroid==2.4.2 +async-generator==1.10 +attrs==20.3.0 +babel==2.9.0 +backcall==0.2.0 +beautifulsoup4==4.9.3 +black==20.8b1 +bleach==3.2.1 +certifi==2020.12.5 +cffi==1.14.4 +cfgv==3.2.0 +chardet==4.0.0 +click==7.1.2 +colorama==0.4.4 +cycler==0.10.0 +decorator==4.4.2 +defusedxml==0.6.0 +distlib==0.3.1 +doc8==0.8.1 +docutils==0.16 +entrypoints==0.3 +filelock==3.0.12 +flake8-blind-except==0.2.0 +flake8-bugbear==20.11.1 +flake8-builtins==1.5.3 +flake8-polyfill==1.0.2 +flake8-rst-docstrings==0.0.14 +flake8==3.8.4 +gitdb==4.0.5 +gitpython==3.1.12 +graphviz==0.16 +identify==1.5.12 +idna==2.10 +imagesize==1.2.0 +importlib-metadata==3.4.0 +ipykernel==5.4.3 +ipython-genutils==0.2.0 +ipython==7.19.0 +ipywidgets==7.6.3 +isort==5.7.0 +jedi==0.18.0 +jinja2==2.11.2 +json5==0.9.5 +jsonschema==3.2.0 +jupyter-cache==0.4.1 +jupyter-client==6.1.11 +jupyter-console==6.2.0 +jupyter-core==4.7.0 +jupyter-server==1.2.2 +jupyter-sphinx==0.3.1 +jupyter==1.0.0 +jupyterlab-code-formatter==1.4.2 +jupyterlab-server==2.1.2 +jupyterlab-widgets==1.0.0 +jupyterlab==3.0.5 +kiwisolver==1.3.1 +labels==20.1.0 +latexcodec==2.0.1 +lazy-object-proxy==1.4.3 +livereload==2.6.3 +markdown-it-py==0.5.8 +markupsafe==1.1.1 +matplotlib==3.3.3 +mccabe==0.6.1 +mistune==0.8.4 +mypy-extensions==0.4.3 +mypy==0.790 +myst-nb==0.10.2 +myst-parser==0.12.10 +nbclassic==0.2.6 +nbclient==0.5.1 +nbconvert==5.6.1 +nbdime==2.1.0 +nbformat==5.1.2 +nbstripout==0.3.9 +nest-asyncio==1.4.3 +nodeenv==1.5.0 +notebook==6.2.0 +numpy==1.19.5 +oset==0.1.3 +packaging==20.8 +pandocfilters==1.4.3 +parso==0.8.1 +pathspec==0.8.1 +pbr==5.5.1 +pep8-naming==0.11.1 +pexpect==4.8.0 +pickleshare==0.7.5 +pillow==8.1.0 +pip-tools==5.5.0 +pluggy==0.13.1 +pre-commit==2.9.3 +prometheus-client==0.9.0 +prompt-toolkit==3.0.10 +ptyprocess==0.7.0 +py==1.10.0 +pybtex-docutils==1.0.0 +pybtex==0.23.0 +pycodestyle==2.6.0 +pycparser==2.20 +pydata-sphinx-theme==0.4.1 +pydeps==1.9.13 +pydocstyle==5.1.1 +pyflakes==2.2.0 +pygments==2.7.4 +pylint==2.6.0 +pyparsing==2.4.7 +pyrsistent==0.17.3 +python-dateutil==2.8.1 +pytoml==0.1.21 +pytz==2020.5 +pyyaml==5.3.1 +pyzmq==21.0.1 +qtconsole==5.0.1 +qtpy==1.9.0 +regex==2020.11.13 +requests==2.25.1 +restructuredtext-lint==1.3.2 +rstcheck==3.3.1 +send2trash==1.5.0 +six==1.15.0 +smmap==3.0.4 +sniffio==1.2.0 +snowballstemmer==2.0.0 +soupsieve==2.1 +sphinx-autobuild==2020.9.1 +sphinx-book-theme==0.0.39 +sphinx-copybutton==0.3.1 +sphinx-math-dollar==1.2 +sphinx-panels==0.5.2 +sphinx-thebe==0.0.8 +sphinx-togglebutton==0.2.3 +sphinx==3.4.3 +sphinxcontrib-applehelp==1.0.2 +sphinxcontrib-bibtex==1.0.0 +sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-htmlhelp==1.0.3 +sphinxcontrib-jsmath==1.0.1 +sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-serializinghtml==1.1.4 +sqlalchemy==1.3.22 +stdlib-list==0.8.0 +stevedore==3.3.0 +terminado==0.9.2 +testpath==0.4.4 +toml==0.10.2 +tornado==6.1 +tox==3.21.1 +traitlets==5.0.5 +typed-ast==1.4.2 +typing-extensions==3.7.4.3 +urllib3==1.26.2 +virtualenv==20.3.1 +wcwidth==0.2.5 +webencodings==0.5.1 +wheel==0.36.2 +widgetsnbextension==3.5.1 +wrapt==1.12.1 +zipp==3.4.0 + +# The following packages are considered to be unsafe in a requirements file: +# pip +# setuptools diff --git a/reqs/3.7/requirements-doc.txt b/reqs/3.7/requirements-doc.txt new file mode 100644 index 00000000..0e23fa75 --- /dev/null +++ b/reqs/3.7/requirements-doc.txt @@ -0,0 +1,119 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-annotate --output-file=reqs/3.7/requirements-doc.txt reqs/3.7/requirements-doc.in +# +alabaster==0.7.12 +argon2-cffi==20.1.0 +async-generator==1.10 +attrs==20.3.0 +babel==2.9.0 +backcall==0.2.0 +beautifulsoup4==4.9.3 +bleach==3.2.1 +certifi==2020.12.5 +cffi==1.14.4 +chardet==4.0.0 +click==7.1.2 +colorama==0.4.4 +cycler==0.10.0 +decorator==4.4.2 +defusedxml==0.6.0 +docutils==0.16 +entrypoints==0.3 +gitdb==4.0.5 +gitpython==3.1.12 +graphviz==0.16 +idna==2.10 +imagesize==1.2.0 +importlib-metadata==3.4.0 +ipykernel==5.4.3 +ipython-genutils==0.2.0 +ipython==7.19.0 +ipywidgets==7.6.3 +jedi==0.18.0 +jinja2==2.11.2 +jsonschema==3.2.0 +jupyter-cache==0.4.1 +jupyter-client==6.1.11 +jupyter-console==6.2.0 +jupyter-core==4.7.0 +jupyter-sphinx==0.3.1 +jupyter==1.0.0 +jupyterlab-widgets==1.0.0 +kiwisolver==1.3.1 +latexcodec==2.0.1 +markdown-it-py==0.5.8 +markupsafe==1.1.1 +matplotlib==3.3.3 +mistune==0.8.4 +myst-nb==0.10.2 +myst-parser==0.12.10 +nbclient==0.5.1 +nbconvert==5.6.1 +nbdime==2.1.0 +nbformat==5.1.2 +nest-asyncio==1.4.3 +notebook==6.2.0 +numpy==1.19.5 +oset==0.1.3 +packaging==20.8 +pandocfilters==1.4.3 +parso==0.8.1 +pexpect==4.8.0 +pickleshare==0.7.5 +pillow==8.1.0 +prometheus-client==0.9.0 +prompt-toolkit==3.0.10 +ptyprocess==0.7.0 +pybtex-docutils==1.0.0 +pybtex==0.23.0 +pycparser==2.20 +pydata-sphinx-theme==0.4.1 +pydeps==1.9.13 +pygments==2.7.4 +pyparsing==2.4.7 +pyrsistent==0.17.3 +python-dateutil==2.8.1 +pytz==2020.5 +pyyaml==5.3.1 +pyzmq==21.0.1 +qtconsole==5.0.1 +qtpy==1.9.0 +requests==2.25.1 +send2trash==1.5.0 +six==1.15.0 +smmap==3.0.4 +snowballstemmer==2.0.0 +soupsieve==2.1 +sphinx-book-theme==0.0.39 +sphinx-copybutton==0.3.1 +sphinx-math-dollar==1.2 +sphinx-panels==0.5.2 +sphinx-thebe==0.0.8 +sphinx-togglebutton==0.2.3 +sphinx==3.4.3 +sphinxcontrib-applehelp==1.0.2 +sphinxcontrib-bibtex==1.0.0 +sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-htmlhelp==1.0.3 +sphinxcontrib-jsmath==1.0.1 +sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-serializinghtml==1.1.4 +sqlalchemy==1.3.22 +stdlib-list==0.8.0 +terminado==0.9.2 +testpath==0.4.4 +tornado==6.1 +traitlets==5.0.5 +typing-extensions==3.7.4.3 +urllib3==1.26.2 +wcwidth==0.2.5 +webencodings==0.5.1 +wheel==0.36.2 +widgetsnbextension==3.5.1 +zipp==3.4.0 + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/reqs/3.7/requirements-sty.txt b/reqs/3.7/requirements-sty.txt new file mode 100644 index 00000000..bceb2f58 --- /dev/null +++ b/reqs/3.7/requirements-sty.txt @@ -0,0 +1,70 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-annotate --output-file=reqs/3.7/requirements-sty.txt reqs/3.7/requirements-sty.in +# +appdirs==1.4.4 +astroid==2.4.2 +attrs==20.3.0 +black==20.8b1 +cfgv==3.2.0 +chardet==4.0.0 +click==7.1.2 +cycler==0.10.0 +distlib==0.3.1 +doc8==0.8.1 +docutils==0.16 +filelock==3.0.12 +flake8-blind-except==0.2.0 +flake8-bugbear==20.11.1 +flake8-builtins==1.5.3 +flake8-polyfill==1.0.2 +flake8-rst-docstrings==0.0.14 +flake8==3.8.4 +identify==1.5.12 +importlib-metadata==3.4.0 +ipython-genutils==0.2.0 +isort==5.7.0 +jsonschema==3.2.0 +jupyter-core==4.7.0 +kiwisolver==1.3.1 +lazy-object-proxy==1.4.3 +matplotlib==3.3.3 +mccabe==0.6.1 +mypy-extensions==0.4.3 +mypy==0.790 +nbformat==5.1.2 +nbstripout==0.3.9 +nodeenv==1.5.0 +numpy==1.19.5 +pathspec==0.8.1 +pbr==5.5.1 +pep8-naming==0.11.1 +pillow==8.1.0 +pre-commit==2.9.3 +pycodestyle==2.6.0 +pydocstyle==5.1.1 +pyflakes==2.2.0 +pygments==2.7.4 +pylint==2.6.0 +pyparsing==2.4.7 +pyrsistent==0.17.3 +python-dateutil==2.8.1 +pyyaml==5.3.1 +regex==2020.11.13 +restructuredtext-lint==1.3.2 +rstcheck==3.3.1 +six==1.15.0 +snowballstemmer==2.0.0 +stevedore==3.3.0 +toml==0.10.2 +traitlets==5.0.5 +typed-ast==1.4.2 +typing-extensions==3.7.4.3 +virtualenv==20.3.1 +wrapt==1.12.1 +zipp==3.4.0 + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/reqs/3.7/requirements.txt b/reqs/3.7/requirements.txt new file mode 100644 index 00000000..f8f73e13 --- /dev/null +++ b/reqs/3.7/requirements.txt @@ -0,0 +1,14 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-annotate --output-file=reqs/3.7/requirements.txt reqs/3.7/requirements.in +# +cycler==0.10.0 +kiwisolver==1.3.1 +matplotlib==3.3.3 +numpy==1.19.5 +pillow==8.1.0 +pyparsing==2.4.7 +python-dateutil==2.8.1 +six==1.15.0 diff --git a/reqs/3.8/requirements-dev.txt b/reqs/3.8/requirements-dev.txt new file mode 100644 index 00000000..85ce8d7e --- /dev/null +++ b/reqs/3.8/requirements-dev.txt @@ -0,0 +1,173 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-annotate --output-file=reqs/3.8/requirements-dev.txt reqs/requirements-dev.in reqs/requirements-doc.in reqs/requirements-sty.in reqs/requirements.in +# +alabaster==0.7.12 +anyio==2.0.2 +appdirs==1.4.4 +argon2-cffi==20.1.0 +astroid==2.4.2 +async-generator==1.10 +attrs==20.3.0 +babel==2.9.0 +backcall==0.2.0 +beautifulsoup4==4.9.3 +black==20.8b1 +bleach==3.2.1 +certifi==2020.12.5 +cffi==1.14.4 +cfgv==3.2.0 +chardet==4.0.0 +click==7.1.2 +colorama==0.4.4 +cycler==0.10.0 +decorator==4.4.2 +defusedxml==0.6.0 +distlib==0.3.1 +doc8==0.8.1 +docutils==0.16 +entrypoints==0.3 +filelock==3.0.12 +flake8-blind-except==0.2.0 +flake8-bugbear==20.11.1 +flake8-builtins==1.5.3 +flake8-polyfill==1.0.2 +flake8-rst-docstrings==0.0.14 +flake8==3.8.4 +gitdb==4.0.5 +gitpython==3.1.12 +graphviz==0.16 +identify==1.5.12 +idna==2.10 +imagesize==1.2.0 +importlib-metadata==3.4.0 +ipykernel==5.4.3 +ipython-genutils==0.2.0 +ipython==7.19.0 +ipywidgets==7.6.3 +isort==5.7.0 +jedi==0.18.0 +jinja2==2.11.2 +json5==0.9.5 +jsonschema==3.2.0 +jupyter-cache==0.4.1 +jupyter-client==6.1.11 +jupyter-console==6.2.0 +jupyter-core==4.7.0 +jupyter-server==1.2.2 +jupyter-sphinx==0.3.1 +jupyter==1.0.0 +jupyterlab-code-formatter==1.4.2 +jupyterlab-server==2.1.2 +jupyterlab-widgets==1.0.0 +jupyterlab==3.0.5 +kiwisolver==1.3.1 +labels==20.1.0 +latexcodec==2.0.1 +lazy-object-proxy==1.4.3 +livereload==2.6.3 +markdown-it-py==0.5.8 +markupsafe==1.1.1 +matplotlib==3.3.3 +mccabe==0.6.1 +mistune==0.8.4 +mypy-extensions==0.4.3 +mypy==0.790 +myst-nb==0.10.2 +myst-parser==0.12.10 +nbclassic==0.2.6 +nbclient==0.5.1 +nbconvert==5.6.1 +nbdime==2.1.0 +nbformat==5.1.2 +nbstripout==0.3.9 +nest-asyncio==1.4.3 +nodeenv==1.5.0 +notebook==6.2.0 +numpy==1.19.5 +oset==0.1.3 +packaging==20.8 +pandocfilters==1.4.3 +parso==0.8.1 +pathspec==0.8.1 +pbr==5.5.1 +pep8-naming==0.11.1 +pexpect==4.8.0 +pickleshare==0.7.5 +pillow==8.1.0 +pip-tools==5.5.0 +pluggy==0.13.1 +pre-commit==2.9.3 +prometheus-client==0.9.0 +prompt-toolkit==3.0.10 +ptyprocess==0.7.0 +py==1.10.0 +pybtex-docutils==1.0.0 +pybtex==0.23.0 +pycodestyle==2.6.0 +pycparser==2.20 +pydata-sphinx-theme==0.4.1 +pydeps==1.9.13 +pydocstyle==5.1.1 +pyflakes==2.2.0 +pygments==2.7.4 +pylint==2.6.0 +pyparsing==2.4.7 +pyrsistent==0.17.3 +python-dateutil==2.8.1 +pytoml==0.1.21 +pytz==2020.5 +pyyaml==5.3.1 +pyzmq==21.0.1 +qtconsole==5.0.1 +qtpy==1.9.0 +regex==2020.11.13 +requests==2.25.1 +restructuredtext-lint==1.3.2 +rstcheck==3.3.1 +send2trash==1.5.0 +six==1.15.0 +smmap==3.0.4 +sniffio==1.2.0 +snowballstemmer==2.0.0 +soupsieve==2.1 +sphinx-autobuild==2020.9.1 +sphinx-book-theme==0.0.39 +sphinx-copybutton==0.3.1 +sphinx-math-dollar==1.2 +sphinx-panels==0.5.2 +sphinx-thebe==0.0.8 +sphinx-togglebutton==0.2.3 +sphinx==3.4.3 +sphinxcontrib-applehelp==1.0.2 +sphinxcontrib-bibtex==1.0.0 +sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-htmlhelp==1.0.3 +sphinxcontrib-jsmath==1.0.1 +sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-serializinghtml==1.1.4 +sqlalchemy==1.3.22 +stdlib-list==0.8.0 +stevedore==3.3.0 +terminado==0.9.2 +testpath==0.4.4 +toml==0.10.2 +tornado==6.1 +tox==3.21.1 +traitlets==5.0.5 +typed-ast==1.4.2 +typing-extensions==3.7.4.3 +urllib3==1.26.2 +virtualenv==20.3.1 +wcwidth==0.2.5 +webencodings==0.5.1 +wheel==0.36.2 +widgetsnbextension==3.5.1 +wrapt==1.12.1 +zipp==3.4.0 + +# The following packages are considered to be unsafe in a requirements file: +# pip +# setuptools diff --git a/reqs/3.8/requirements-doc.txt b/reqs/3.8/requirements-doc.txt new file mode 100644 index 00000000..4848faa5 --- /dev/null +++ b/reqs/3.8/requirements-doc.txt @@ -0,0 +1,118 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-annotate --output-file=reqs/3.8/requirements-doc.txt reqs/3.8/requirements-doc.in +# +alabaster==0.7.12 +argon2-cffi==20.1.0 +async-generator==1.10 +attrs==20.3.0 +babel==2.9.0 +backcall==0.2.0 +beautifulsoup4==4.9.3 +bleach==3.2.1 +certifi==2020.12.5 +cffi==1.14.4 +chardet==4.0.0 +click==7.1.2 +colorama==0.4.4 +cycler==0.10.0 +decorator==4.4.2 +defusedxml==0.6.0 +docutils==0.16 +entrypoints==0.3 +gitdb==4.0.5 +gitpython==3.1.12 +graphviz==0.16 +idna==2.10 +imagesize==1.2.0 +importlib-metadata==3.4.0 +ipykernel==5.4.3 +ipython-genutils==0.2.0 +ipython==7.19.0 +ipywidgets==7.6.3 +jedi==0.18.0 +jinja2==2.11.2 +jsonschema==3.2.0 +jupyter-cache==0.4.1 +jupyter-client==6.1.11 +jupyter-console==6.2.0 +jupyter-core==4.7.0 +jupyter-sphinx==0.3.1 +jupyter==1.0.0 +jupyterlab-widgets==1.0.0 +kiwisolver==1.3.1 +latexcodec==2.0.1 +markdown-it-py==0.5.8 +markupsafe==1.1.1 +matplotlib==3.3.3 +mistune==0.8.4 +myst-nb==0.10.2 +myst-parser==0.12.10 +nbclient==0.5.1 +nbconvert==5.6.1 +nbdime==2.1.0 +nbformat==5.1.2 +nest-asyncio==1.4.3 +notebook==6.2.0 +numpy==1.19.5 +oset==0.1.3 +packaging==20.8 +pandocfilters==1.4.3 +parso==0.8.1 +pexpect==4.8.0 +pickleshare==0.7.5 +pillow==8.1.0 +prometheus-client==0.9.0 +prompt-toolkit==3.0.10 +ptyprocess==0.7.0 +pybtex-docutils==1.0.0 +pybtex==0.23.0 +pycparser==2.20 +pydata-sphinx-theme==0.4.1 +pydeps==1.9.13 +pygments==2.7.4 +pyparsing==2.4.7 +pyrsistent==0.17.3 +python-dateutil==2.8.1 +pytz==2020.5 +pyyaml==5.3.1 +pyzmq==21.0.1 +qtconsole==5.0.1 +qtpy==1.9.0 +requests==2.25.1 +send2trash==1.5.0 +six==1.15.0 +smmap==3.0.4 +snowballstemmer==2.0.0 +soupsieve==2.1 +sphinx-book-theme==0.0.39 +sphinx-copybutton==0.3.1 +sphinx-math-dollar==1.2 +sphinx-panels==0.5.2 +sphinx-thebe==0.0.8 +sphinx-togglebutton==0.2.3 +sphinx==3.4.3 +sphinxcontrib-applehelp==1.0.2 +sphinxcontrib-bibtex==1.0.0 +sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-htmlhelp==1.0.3 +sphinxcontrib-jsmath==1.0.1 +sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-serializinghtml==1.1.4 +sqlalchemy==1.3.22 +stdlib-list==0.8.0 +terminado==0.9.2 +testpath==0.4.4 +tornado==6.1 +traitlets==5.0.5 +urllib3==1.26.2 +wcwidth==0.2.5 +webencodings==0.5.1 +wheel==0.36.2 +widgetsnbextension==3.5.1 +zipp==3.4.0 + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/reqs/3.8/requirements-sty.txt b/reqs/3.8/requirements-sty.txt new file mode 100644 index 00000000..c087bb7c --- /dev/null +++ b/reqs/3.8/requirements-sty.txt @@ -0,0 +1,68 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-annotate --output-file=reqs/3.8/requirements-sty.txt reqs/3.8/requirements-sty.in +# +appdirs==1.4.4 +astroid==2.4.2 +attrs==20.3.0 +black==20.8b1 +cfgv==3.2.0 +chardet==4.0.0 +click==7.1.2 +cycler==0.10.0 +distlib==0.3.1 +doc8==0.8.1 +docutils==0.16 +filelock==3.0.12 +flake8-blind-except==0.2.0 +flake8-bugbear==20.11.1 +flake8-builtins==1.5.3 +flake8-polyfill==1.0.2 +flake8-rst-docstrings==0.0.14 +flake8==3.8.4 +identify==1.5.12 +ipython-genutils==0.2.0 +isort==5.7.0 +jsonschema==3.2.0 +jupyter-core==4.7.0 +kiwisolver==1.3.1 +lazy-object-proxy==1.4.3 +matplotlib==3.3.3 +mccabe==0.6.1 +mypy-extensions==0.4.3 +mypy==0.790 +nbformat==5.1.2 +nbstripout==0.3.9 +nodeenv==1.5.0 +numpy==1.19.5 +pathspec==0.8.1 +pbr==5.5.1 +pep8-naming==0.11.1 +pillow==8.1.0 +pre-commit==2.9.3 +pycodestyle==2.6.0 +pydocstyle==5.1.1 +pyflakes==2.2.0 +pygments==2.7.4 +pylint==2.6.0 +pyparsing==2.4.7 +pyrsistent==0.17.3 +python-dateutil==2.8.1 +pyyaml==5.3.1 +regex==2020.11.13 +restructuredtext-lint==1.3.2 +rstcheck==3.3.1 +six==1.15.0 +snowballstemmer==2.0.0 +stevedore==3.3.0 +toml==0.10.2 +traitlets==5.0.5 +typed-ast==1.4.2 +typing-extensions==3.7.4.3 +virtualenv==20.3.1 +wrapt==1.12.1 + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/reqs/3.8/requirements.txt b/reqs/3.8/requirements.txt new file mode 100644 index 00000000..36297251 --- /dev/null +++ b/reqs/3.8/requirements.txt @@ -0,0 +1,14 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-annotate --output-file=reqs/3.8/requirements.txt reqs/3.8/requirements.in +# +cycler==0.10.0 +kiwisolver==1.3.1 +matplotlib==3.3.3 +numpy==1.19.5 +pillow==8.1.0 +pyparsing==2.4.7 +python-dateutil==2.8.1 +six==1.15.0 diff --git a/reqs/3.9/requirements-dev.txt b/reqs/3.9/requirements-dev.txt new file mode 100644 index 00000000..ae7acb83 --- /dev/null +++ b/reqs/3.9/requirements-dev.txt @@ -0,0 +1,173 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-annotate --output-file=reqs/3.9/requirements-dev.txt reqs/requirements-dev.in reqs/requirements-doc.in reqs/requirements-sty.in reqs/requirements.in +# +alabaster==0.7.12 +anyio==2.0.2 +appdirs==1.4.4 +argon2-cffi==20.1.0 +astroid==2.4.2 +async-generator==1.10 +attrs==20.3.0 +babel==2.9.0 +backcall==0.2.0 +beautifulsoup4==4.9.3 +black==20.8b1 +bleach==3.2.1 +certifi==2020.12.5 +cffi==1.14.4 +cfgv==3.2.0 +chardet==4.0.0 +click==7.1.2 +colorama==0.4.4 +cycler==0.10.0 +decorator==4.4.2 +defusedxml==0.6.0 +distlib==0.3.1 +doc8==0.8.1 +docutils==0.16 +entrypoints==0.3 +filelock==3.0.12 +flake8-blind-except==0.2.0 +flake8-bugbear==20.11.1 +flake8-builtins==1.5.3 +flake8-polyfill==1.0.2 +flake8-rst-docstrings==0.0.14 +flake8==3.8.4 +gitdb==4.0.5 +gitpython==3.1.12 +graphviz==0.16 +identify==1.5.12 +idna==2.10 +imagesize==1.2.0 +importlib-metadata==3.4.0 +ipykernel==5.4.3 +ipython-genutils==0.2.0 +ipython==7.19.0 +ipywidgets==7.6.3 +isort==5.7.0 +jedi==0.18.0 +jinja2==2.11.2 +json5==0.9.5 +jsonschema==3.2.0 +jupyter-cache==0.4.1 +jupyter-client==6.1.11 +jupyter-console==6.2.0 +jupyter-core==4.7.0 +jupyter-server==1.2.2 +jupyter-sphinx==0.3.1 +jupyter==1.0.0 +jupyterlab-code-formatter==1.4.2 +jupyterlab-server==2.1.2 +jupyterlab-widgets==1.0.0 +jupyterlab==3.0.5 +kiwisolver==1.3.1 +labels==20.1.0 +latexcodec==2.0.1 +lazy-object-proxy==1.4.3 +livereload==2.6.3 +markdown-it-py==0.5.8 +markupsafe==1.1.1 +matplotlib==3.3.3 +mccabe==0.6.1 +mistune==0.8.4 +mypy-extensions==0.4.3 +mypy==0.790 +myst-nb==0.10.2 +myst-parser==0.12.10 +nbclassic==0.2.6 +nbclient==0.5.1 +nbconvert==5.6.1 +nbdime==2.1.0 +nbformat==5.1.2 +nbstripout==0.3.9 +nest-asyncio==1.4.3 +nodeenv==1.5.0 +notebook==6.2.0 +numpy==1.19.5 +oset==0.1.3 +packaging==20.8 +pandocfilters==1.4.3 +parso==0.8.1 +pathspec==0.8.1 +pbr==5.5.1 +pep8-naming==0.11.1 +pexpect==4.8.0 +pickleshare==0.7.5 +pillow==8.1.0 +pip-tools==5.5.0 +pluggy==0.13.1 +pre-commit==2.9.3 +prometheus-client==0.9.0 +prompt-toolkit==3.0.10 +ptyprocess==0.7.0 +py==1.10.0 +pybtex-docutils==1.0.0 +pybtex==0.23.0 +pycodestyle==2.6.0 +pycparser==2.20 +pydata-sphinx-theme==0.4.1 +pydeps==1.9.13 +pydocstyle==5.1.1 +pyflakes==2.2.0 +pygments==2.7.4 +pylint==2.6.0 +pyparsing==2.4.7 +pyrsistent==0.17.3 +python-dateutil==2.8.1 +pytoml==0.1.21 +pytz==2020.5 +pyyaml==5.3.1 +pyzmq==21.0.1 +qtconsole==5.0.1 +qtpy==1.9.0 +regex==2020.11.13 +requests==2.25.1 +restructuredtext-lint==1.3.2 +rstcheck==3.3.1 +send2trash==1.5.0 +six==1.15.0 +smmap==3.0.4 +sniffio==1.2.0 +snowballstemmer==2.0.0 +soupsieve==2.1 +sphinx-autobuild==2020.9.1 +sphinx-book-theme==0.0.39 +sphinx-copybutton==0.3.1 +sphinx-math-dollar==1.2 +sphinx-panels==0.5.2 +sphinx-thebe==0.0.8 +sphinx-togglebutton==0.2.3 +sphinx==3.4.3 +sphinxcontrib-applehelp==1.0.2 +sphinxcontrib-bibtex==1.0.0 +sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-htmlhelp==1.0.3 +sphinxcontrib-jsmath==1.0.1 +sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-serializinghtml==1.1.4 +sqlalchemy==1.3.22 +stdlib-list==0.8.0 +stevedore==3.3.0 +terminado==0.9.2 +testpath==0.4.4 +toml==0.10.2 +tornado==6.1 +tox==3.21.1 +traitlets==5.0.5 +typed-ast==1.4.2 +typing-extensions==3.7.4.3 +urllib3==1.26.2 +virtualenv==20.3.1 +wcwidth==0.2.5 +webencodings==0.5.1 +wheel==0.36.2 +widgetsnbextension==3.5.1 +wrapt==1.12.1 +zipp==3.4.0 + +# The following packages are considered to be unsafe in a requirements file: +# pip +# setuptools diff --git a/reqs/3.9/requirements-doc.txt b/reqs/3.9/requirements-doc.txt new file mode 100644 index 00000000..5466bf51 --- /dev/null +++ b/reqs/3.9/requirements-doc.txt @@ -0,0 +1,118 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-annotate --output-file=reqs/3.9/requirements-doc.txt reqs/3.9/requirements-doc.in +# +alabaster==0.7.12 +argon2-cffi==20.1.0 +async-generator==1.10 +attrs==20.3.0 +babel==2.9.0 +backcall==0.2.0 +beautifulsoup4==4.9.3 +bleach==3.2.1 +certifi==2020.12.5 +cffi==1.14.4 +chardet==4.0.0 +click==7.1.2 +colorama==0.4.4 +cycler==0.10.0 +decorator==4.4.2 +defusedxml==0.6.0 +docutils==0.16 +entrypoints==0.3 +gitdb==4.0.5 +gitpython==3.1.12 +graphviz==0.16 +idna==2.10 +imagesize==1.2.0 +importlib-metadata==3.4.0 +ipykernel==5.4.3 +ipython-genutils==0.2.0 +ipython==7.19.0 +ipywidgets==7.6.3 +jedi==0.18.0 +jinja2==2.11.2 +jsonschema==3.2.0 +jupyter-cache==0.4.1 +jupyter-client==6.1.11 +jupyter-console==6.2.0 +jupyter-core==4.7.0 +jupyter-sphinx==0.3.1 +jupyter==1.0.0 +jupyterlab-widgets==1.0.0 +kiwisolver==1.3.1 +latexcodec==2.0.1 +markdown-it-py==0.5.8 +markupsafe==1.1.1 +matplotlib==3.3.3 +mistune==0.8.4 +myst-nb==0.10.2 +myst-parser==0.12.10 +nbclient==0.5.1 +nbconvert==5.6.1 +nbdime==2.1.0 +nbformat==5.1.2 +nest-asyncio==1.4.3 +notebook==6.2.0 +numpy==1.19.5 +oset==0.1.3 +packaging==20.8 +pandocfilters==1.4.3 +parso==0.8.1 +pexpect==4.8.0 +pickleshare==0.7.5 +pillow==8.1.0 +prometheus-client==0.9.0 +prompt-toolkit==3.0.10 +ptyprocess==0.7.0 +pybtex-docutils==1.0.0 +pybtex==0.23.0 +pycparser==2.20 +pydata-sphinx-theme==0.4.1 +pydeps==1.9.13 +pygments==2.7.4 +pyparsing==2.4.7 +pyrsistent==0.17.3 +python-dateutil==2.8.1 +pytz==2020.5 +pyyaml==5.3.1 +pyzmq==21.0.1 +qtconsole==5.0.1 +qtpy==1.9.0 +requests==2.25.1 +send2trash==1.5.0 +six==1.15.0 +smmap==3.0.4 +snowballstemmer==2.0.0 +soupsieve==2.1 +sphinx-book-theme==0.0.39 +sphinx-copybutton==0.3.1 +sphinx-math-dollar==1.2 +sphinx-panels==0.5.2 +sphinx-thebe==0.0.8 +sphinx-togglebutton==0.2.3 +sphinx==3.4.3 +sphinxcontrib-applehelp==1.0.2 +sphinxcontrib-bibtex==1.0.0 +sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-htmlhelp==1.0.3 +sphinxcontrib-jsmath==1.0.1 +sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-serializinghtml==1.1.4 +sqlalchemy==1.3.22 +stdlib-list==0.8.0 +terminado==0.9.2 +testpath==0.4.4 +tornado==6.1 +traitlets==5.0.5 +urllib3==1.26.2 +wcwidth==0.2.5 +webencodings==0.5.1 +wheel==0.36.2 +widgetsnbextension==3.5.1 +zipp==3.4.0 + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/reqs/3.9/requirements-sty.txt b/reqs/3.9/requirements-sty.txt new file mode 100644 index 00000000..183c397d --- /dev/null +++ b/reqs/3.9/requirements-sty.txt @@ -0,0 +1,68 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-annotate --output-file=reqs/3.9/requirements-sty.txt reqs/3.9/requirements-sty.in +# +appdirs==1.4.4 +astroid==2.4.2 +attrs==20.3.0 +black==20.8b1 +cfgv==3.2.0 +chardet==4.0.0 +click==7.1.2 +cycler==0.10.0 +distlib==0.3.1 +doc8==0.8.1 +docutils==0.16 +filelock==3.0.12 +flake8-blind-except==0.2.0 +flake8-bugbear==20.11.1 +flake8-builtins==1.5.3 +flake8-polyfill==1.0.2 +flake8-rst-docstrings==0.0.14 +flake8==3.8.4 +identify==1.5.12 +ipython-genutils==0.2.0 +isort==5.7.0 +jsonschema==3.2.0 +jupyter-core==4.7.0 +kiwisolver==1.3.1 +lazy-object-proxy==1.4.3 +matplotlib==3.3.3 +mccabe==0.6.1 +mypy-extensions==0.4.3 +mypy==0.790 +nbformat==5.1.2 +nbstripout==0.3.9 +nodeenv==1.5.0 +numpy==1.19.5 +pathspec==0.8.1 +pbr==5.5.1 +pep8-naming==0.11.1 +pillow==8.1.0 +pre-commit==2.9.3 +pycodestyle==2.6.0 +pydocstyle==5.1.1 +pyflakes==2.2.0 +pygments==2.7.4 +pylint==2.6.0 +pyparsing==2.4.7 +pyrsistent==0.17.3 +python-dateutil==2.8.1 +pyyaml==5.3.1 +regex==2020.11.13 +restructuredtext-lint==1.3.2 +rstcheck==3.3.1 +six==1.15.0 +snowballstemmer==2.0.0 +stevedore==3.3.0 +toml==0.10.2 +traitlets==5.0.5 +typed-ast==1.4.2 +typing-extensions==3.7.4.3 +virtualenv==20.3.1 +wrapt==1.12.1 + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/reqs/3.9/requirements.txt b/reqs/3.9/requirements.txt new file mode 100644 index 00000000..a9294b46 --- /dev/null +++ b/reqs/3.9/requirements.txt @@ -0,0 +1,14 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-annotate --output-file=reqs/3.9/requirements.txt reqs/3.9/requirements.in +# +cycler==0.10.0 +kiwisolver==1.3.1 +matplotlib==3.3.3 +numpy==1.19.5 +pillow==8.1.0 +pyparsing==2.4.7 +python-dateutil==2.8.1 +six==1.15.0 diff --git a/reqs/extract_install_requires.py b/reqs/extract_install_requires.py new file mode 100644 index 00000000..39484f39 --- /dev/null +++ b/reqs/extract_install_requires.py @@ -0,0 +1,18 @@ +"""Extract :code:`install_requires` section to :file:`requirements.in`.""" + +import configparser +from os.path import dirname, realpath + + +def main() -> None: + script_dir = dirname(realpath(__file__)) + cfg = configparser.ConfigParser() + cfg.read(f"{script_dir}/../setup.cfg") + install_requires = cfg.get("options", "install_requires", raw=False) + install_requires = install_requires[1:] # remove first line (empty) + with open(f"{script_dir}/requirements.in", "w") as stream: + stream.write(install_requires) + + +if __name__ == "__main__": + main() diff --git a/reqs/requirements-dev.in b/reqs/requirements-dev.in new file mode 100644 index 00000000..948a5d4f --- /dev/null +++ b/reqs/requirements-dev.in @@ -0,0 +1,11 @@ +-r requirements.in +-r requirements-doc.in +-r requirements-sty.in + +# Additional developer tools +jupyterlab +jupyterlab-code-formatter +labels +pip-tools +sphinx-autobuild +tox >= 1.9 # for skip_install, use_develop diff --git a/.reqs/doc.in b/reqs/requirements-doc.in similarity index 68% rename from .reqs/doc.in rename to reqs/requirements-doc.in index 3108d339..02673b08 100644 --- a/.reqs/doc.in +++ b/reqs/requirements-doc.in @@ -1,10 +1,10 @@ --r ../requirements.txt +-r requirements.in # Requirements to build documentation graphviz ipywidgets jupyter -myst-nb +myst-nb < 0.11 # myst_admonition_enable pydeps Sphinx >= 3 sphinx-book-theme @@ -13,4 +13,4 @@ sphinx-math-dollar sphinx-panels sphinx-thebe sphinx-togglebutton -sphinxcontrib-bibtex +sphinxcontrib-bibtex < 2 diff --git a/.reqs/sty.in b/reqs/requirements-sty.in similarity index 85% rename from .reqs/sty.in rename to reqs/requirements-sty.in index 53ed3f8b..7cc691fa 100644 --- a/.reqs/sty.in +++ b/reqs/requirements-sty.in @@ -1,4 +1,4 @@ --r ../requirements.txt +-r requirements.in pre-commit >= 1.4.0 @@ -13,7 +13,7 @@ flake8-blind-except flake8-bugbear flake8-builtins flake8-rst-docstrings -mypy +mypy >= 0.570 # attrs support pep8-naming pydocstyle pylint diff --git a/reqs/upgrade.sh b/reqs/upgrade.sh new file mode 100644 index 00000000..65a81c46 --- /dev/null +++ b/reqs/upgrade.sh @@ -0,0 +1,28 @@ +# https://github.com/jazzband/pip-tools/issues/625 + +PYTHON_VERSION=$(python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))') + +if [[ -z "$PYTHON_VERSION" ]]; then + echo -e "\e[31;1mERROR: environment variable PYTHON_VERSION needs to be defined!\e[0m" + exit 1 +fi + +mkdir -p reqs/$PYTHON_VERSION && + python reqs/extract_install_requires.py && + cp reqs/requirements*.in reqs/$PYTHON_VERSION/ && + rm reqs/$PYTHON_VERSION/requirements-dev.in && + pip-compile --upgrade \ + --no-annotate \ + reqs/requirements*.in \ + -o reqs/$PYTHON_VERSION/requirements-dev.txt && + for in_file in $(ls reqs/$PYTHON_VERSION/requirements*.in); do + echo -e "-c requirements-dev.txt\n$(cat ${in_file})" >${in_file} + out_file="${in_file/.in/.txt}" + pip-compile "${in_file}" -o "${out_file}" --no-annotate + # https://github.com/jazzband/pip-tools/issues/431#issuecomment-277300235 + sed -i -e 's/typing_extensions/typing-extensions/g' "${out_file}" + done && + pip-sync reqs/$PYTHON_VERSION/requirements*.txt && + exit 0 + +exit 1 # if failure diff --git a/requirements-dev.txt b/requirements-dev.txt deleted file mode 100644 index ac10a22e..00000000 --- a/requirements-dev.txt +++ /dev/null @@ -1,166 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --output-file=requirements-dev.txt .reqs/dev.in -# -alabaster==0.7.12 # via -r .reqs/doc.txt, sphinx -appdirs==1.4.4 # via -r .reqs/sty.txt, black, virtualenv -argon2-cffi==20.1.0 # via -r .reqs/doc.txt, notebook -astroid==2.4.2 # via -r .reqs/sty.txt, pylint -async-generator==1.10 # via -r .reqs/doc.txt, nbclient -attrs==20.3.0 # via -r .reqs/doc.txt, -r .reqs/sty.txt, flake8-bugbear, jsonschema, jupyter-cache, labels, markdown-it-py -babel==2.9.0 # via -r .reqs/doc.txt, sphinx -backcall==0.2.0 # via -r .reqs/doc.txt, ipython -beautifulsoup4==4.9.3 # via -r .reqs/doc.txt, sphinx-book-theme -black==20.8b1 # via -r .reqs/sty.txt -bleach==3.2.1 # via -r .reqs/doc.txt, nbconvert -certifi==2020.11.8 # via -r .reqs/doc.txt, requests -cffi==1.14.4 # via -r .reqs/doc.txt, argon2-cffi -cfgv==3.2.0 # via -r .reqs/sty.txt, pre-commit -chardet==3.0.4 # via -r .reqs/doc.txt, -r .reqs/sty.txt, doc8, requests -click==7.1.2 # via -r .reqs/doc.txt, -r .reqs/sty.txt, black, labels, pip-tools, sphinx-book-theme -colorama==0.4.4 # via -r .reqs/doc.txt, nbdime -cycler==0.10.0 # via -r .reqs/../requirements.txt, -r .reqs/doc.txt, -r .reqs/sty.txt, matplotlib -decorator==4.4.2 # via -r .reqs/doc.txt, ipython -defusedxml==0.6.0 # via -r .reqs/doc.txt, nbconvert -distlib==0.3.1 # via -r .reqs/sty.txt, virtualenv -doc8==0.8.1 # via -r .reqs/sty.txt -docutils==0.16 # via -r .reqs/doc.txt, -r .reqs/sty.txt, doc8, myst-nb, myst-parser, pybtex-docutils, restructuredtext-lint, rstcheck, sphinx, sphinx-book-theme, sphinx-panels, sphinx-togglebutton -entrypoints==0.3 # via -r .reqs/doc.txt, nbconvert -filelock==3.0.12 # via -r .reqs/sty.txt, tox, virtualenv -flake8-blind-except==0.1.1 # via -r .reqs/sty.txt -flake8-bugbear==20.11.1 # via -r .reqs/sty.txt -flake8-builtins==1.5.3 # via -r .reqs/sty.txt -flake8-polyfill==1.0.2 # via -r .reqs/sty.txt, pep8-naming -flake8-rst-docstrings==0.0.14 # via -r .reqs/sty.txt -flake8==3.8.4 # via -r .reqs/sty.txt, flake8-bugbear, flake8-builtins, flake8-polyfill, flake8-rst-docstrings -gitdb==4.0.5 # via -r .reqs/doc.txt, gitpython -gitpython==3.1.11 # via -r .reqs/doc.txt, nbdime -graphviz==0.15 # via -r .reqs/doc.txt -identify==1.5.10 # via -r .reqs/sty.txt, pre-commit -idna==2.10 # via -r .reqs/doc.txt, requests -imagesize==1.2.0 # via -r .reqs/doc.txt, sphinx -importlib-metadata==3.1.0 # via -r .reqs/doc.txt, myst-nb -ipykernel==5.3.4 # via -r .reqs/doc.txt, ipywidgets, jupyter, jupyter-console, notebook, qtconsole -ipython-genutils==0.2.0 # via -r .reqs/doc.txt, -r .reqs/sty.txt, nbformat, notebook, qtconsole, traitlets -ipython==7.19.0 # via -r .reqs/doc.txt, ipykernel, ipywidgets, jupyter-console, jupyter-sphinx, myst-nb -ipywidgets==7.5.1 # via -r .reqs/doc.txt, jupyter, jupyter-sphinx, myst-nb -isort==5.6.4 # via -r .reqs/sty.txt, pylint -jedi==0.17.2 # via -r .reqs/doc.txt, ipython -jinja2==2.11.2 # via -r .reqs/doc.txt, jupyterlab, jupyterlab-server, nbconvert, nbdime, notebook, sphinx -json5==0.9.5 # via jupyterlab-server -jsonschema==3.2.0 # via -r .reqs/doc.txt, -r .reqs/sty.txt, jupyterlab-server, nbformat -jupyter-cache==0.4.1 # via -r .reqs/doc.txt, myst-nb -jupyter-client==6.1.7 # via -r .reqs/doc.txt, ipykernel, jupyter-console, nbclient, notebook, qtconsole -jupyter-console==6.2.0 # via -r .reqs/doc.txt, jupyter -jupyter-core==4.7.0 # via -r .reqs/doc.txt, -r .reqs/sty.txt, jupyter-client, nbconvert, nbformat, notebook, qtconsole -jupyter-sphinx==0.3.2 # via -r .reqs/doc.txt, myst-nb -jupyter==1.0.0 # via -r .reqs/doc.txt -jupyterlab-code-formatter==1.3.8 # via -r .reqs/dev.in -jupyterlab-server==1.2.0 # via jupyterlab -jupyterlab==2.2.9 # via -r .reqs/dev.in -kiwisolver==1.3.1 # via -r .reqs/../requirements.txt, -r .reqs/doc.txt, -r .reqs/sty.txt, matplotlib -labels==20.1.0 # via -r .reqs/dev.in -latexcodec==2.0.1 # via -r .reqs/doc.txt, pybtex -lazy-object-proxy==1.4.3 # via -r .reqs/sty.txt, astroid -markdown-it-py==0.5.6 # via -r .reqs/doc.txt, myst-parser -markupsafe==1.1.1 # via -r .reqs/doc.txt, jinja2 -matplotlib==3.3.3 # via -r .reqs/../requirements.txt, -r .reqs/doc.txt, -r .reqs/sty.txt -mccabe==0.6.1 # via -r .reqs/sty.txt, flake8, pylint -mistune==0.8.4 # via -r .reqs/doc.txt, nbconvert -mypy-extensions==0.4.3 # via -r .reqs/sty.txt, black, mypy -mypy==0.790 # via -r .reqs/sty.txt -myst-nb==0.10.1 # via -r .reqs/doc.txt -myst-parser==0.12.10 # via -r .reqs/doc.txt, myst-nb -nbclient==0.5.1 # via -r .reqs/doc.txt, jupyter-cache -nbconvert==5.6.1 # via -r .reqs/doc.txt, jupyter, jupyter-sphinx, myst-nb, notebook -nbdime==2.1.0 # via -r .reqs/doc.txt, jupyter-cache -nbformat==5.0.8 # via -r .reqs/doc.txt, -r .reqs/sty.txt, ipywidgets, jupyter-cache, jupyter-sphinx, myst-nb, nbclient, nbconvert, nbdime, nbstripout, notebook -nbstripout==0.3.9 # via -r .reqs/sty.txt -nest-asyncio==1.4.3 # via -r .reqs/doc.txt, nbclient -nodeenv==1.5.0 # via -r .reqs/sty.txt, pre-commit -notebook==6.1.5 # via -r .reqs/doc.txt, jupyter, jupyterlab, jupyterlab-code-formatter, jupyterlab-server, nbdime, widgetsnbextension -numpy==1.19.4 # via -r .reqs/../requirements.txt, -r .reqs/doc.txt, -r .reqs/sty.txt, matplotlib -oset==0.1.3 # via -r .reqs/doc.txt, sphinxcontrib-bibtex -packaging==20.4 # via -r .reqs/doc.txt, bleach, jupyterlab-code-formatter, sphinx, tox -pandocfilters==1.4.3 # via -r .reqs/doc.txt, nbconvert -parso==0.7.1 # via -r .reqs/doc.txt, jedi -pathspec==0.8.1 # via -r .reqs/sty.txt, black -pbr==5.5.1 # via -r .reqs/sty.txt, stevedore -pep8-naming==0.11.1 # via -r .reqs/sty.txt -pexpect==4.8.0 # via -r .reqs/doc.txt, ipython -pickleshare==0.7.5 # via -r .reqs/doc.txt, ipython -pillow==8.0.1 # via -r .reqs/../requirements.txt, -r .reqs/doc.txt, -r .reqs/sty.txt, matplotlib -pip-tools==5.4.0 # via -r .reqs/dev.in -pluggy==0.13.1 # via tox -pre-commit==2.9.0 # via -r .reqs/sty.txt -prometheus-client==0.9.0 # via -r .reqs/doc.txt, notebook -prompt-toolkit==3.0.8 # via -r .reqs/doc.txt, ipython, jupyter-console -ptyprocess==0.6.0 # via -r .reqs/doc.txt, pexpect, terminado -py==1.9.0 # via tox -pybtex-docutils==0.2.2 # via -r .reqs/doc.txt, sphinxcontrib-bibtex -pybtex==0.23.0 # via -r .reqs/doc.txt, pybtex-docutils, sphinxcontrib-bibtex -pycodestyle==2.6.0 # via -r .reqs/sty.txt, flake8 -pycparser==2.20 # via -r .reqs/doc.txt, cffi -pydata-sphinx-theme==0.4.1 # via -r .reqs/doc.txt, sphinx-book-theme -pydeps==1.9.11 # via -r .reqs/doc.txt -pydocstyle==5.1.1 # via -r .reqs/sty.txt -pyflakes==2.2.0 # via -r .reqs/sty.txt, flake8 -pygments==2.7.2 # via -r .reqs/doc.txt, -r .reqs/sty.txt, doc8, ipython, jupyter-console, nbconvert, nbdime, qtconsole, sphinx -pylint==2.6.0 # via -r .reqs/sty.txt -pyparsing==2.4.7 # via -r .reqs/../requirements.txt, -r .reqs/doc.txt, -r .reqs/sty.txt, matplotlib, packaging -pyrsistent==0.17.3 # via -r .reqs/doc.txt, -r .reqs/sty.txt, jsonschema -python-dateutil==2.8.1 # via -r .reqs/../requirements.txt, -r .reqs/doc.txt, -r .reqs/sty.txt, jupyter-client, matplotlib -pytoml==0.1.21 # via labels -pytz==2020.4 # via -r .reqs/doc.txt, babel -pyyaml==5.3.1 # via -r .reqs/doc.txt, -r .reqs/sty.txt, myst-nb, myst-parser, pre-commit, pybtex, sphinx-book-theme -pyzmq==20.0.0 # via -r .reqs/doc.txt, jupyter-client, notebook, qtconsole -qtconsole==5.0.1 # via -r .reqs/doc.txt, jupyter -qtpy==1.9.0 # via -r .reqs/doc.txt, qtconsole -regex==2020.11.13 # via -r .reqs/sty.txt, black -requests==2.25.0 # via -r .reqs/doc.txt, jupyterlab-server, labels, nbdime, sphinx -restructuredtext-lint==1.3.2 # via -r .reqs/sty.txt, doc8, flake8-rst-docstrings -rstcheck==3.3.1 # via -r .reqs/sty.txt -send2trash==1.5.0 # via -r .reqs/doc.txt, notebook -six==1.15.0 # via -r .reqs/../requirements.txt, -r .reqs/doc.txt, -r .reqs/sty.txt, argon2-cffi, astroid, bleach, cycler, doc8, jsonschema, latexcodec, nbdime, packaging, pip-tools, pybtex, pybtex-docutils, python-dateutil, tox, virtualenv -smmap==3.0.4 # via -r .reqs/doc.txt, gitdb -snowballstemmer==2.0.0 # via -r .reqs/doc.txt, -r .reqs/sty.txt, pydocstyle, sphinx -soupsieve==2.0.1 # via -r .reqs/doc.txt, beautifulsoup4 -sphinx-book-theme==0.0.39 # via -r .reqs/doc.txt -sphinx-copybutton==0.3.1 # via -r .reqs/doc.txt -sphinx-math-dollar==1.2 # via -r .reqs/doc.txt -sphinx-panels==0.5.2 # via -r .reqs/doc.txt -sphinx-thebe==0.0.8 # via -r .reqs/doc.txt -sphinx-togglebutton==0.2.3 # via -r .reqs/doc.txt, myst-nb -sphinx==3.3.1 # via -r .reqs/doc.txt, jupyter-sphinx, myst-nb, myst-parser, pydata-sphinx-theme, sphinx-book-theme, sphinx-copybutton, sphinx-math-dollar, sphinx-panels, sphinx-thebe, sphinx-togglebutton, sphinxcontrib-bibtex -sphinxcontrib-applehelp==1.0.2 # via -r .reqs/doc.txt, sphinx -sphinxcontrib-bibtex==1.0.0 # via -r .reqs/doc.txt -sphinxcontrib-devhelp==1.0.2 # via -r .reqs/doc.txt, sphinx -sphinxcontrib-htmlhelp==1.0.3 # via -r .reqs/doc.txt, sphinx -sphinxcontrib-jsmath==1.0.1 # via -r .reqs/doc.txt, sphinx -sphinxcontrib-qthelp==1.0.3 # via -r .reqs/doc.txt, sphinx -sphinxcontrib-serializinghtml==1.1.4 # via -r .reqs/doc.txt, sphinx -sqlalchemy==1.3.20 # via -r .reqs/doc.txt, jupyter-cache -stdlib-list==0.8.0 # via -r .reqs/doc.txt, pydeps -stevedore==3.2.2 # via -r .reqs/sty.txt, doc8 -terminado==0.9.1 # via -r .reqs/doc.txt, notebook -testpath==0.4.4 # via -r .reqs/doc.txt, nbconvert -toml==0.10.2 # via -r .reqs/sty.txt, black, pre-commit, pylint, tox -tornado==6.1 # via -r .reqs/doc.txt, ipykernel, jupyter-client, jupyterlab, nbdime, notebook, terminado -tox==3.20.1 # via -r .reqs/dev.in -traitlets==5.0.5 # via -r .reqs/doc.txt, -r .reqs/sty.txt, ipykernel, ipython, ipywidgets, jupyter-client, jupyter-core, nbclient, nbconvert, nbformat, notebook, qtconsole -typed-ast==1.4.1 # via -r .reqs/sty.txt, black, mypy -typing-extensions==3.7.4.3 # via -r .reqs/sty.txt, black, mypy -urllib3==1.26.2 # via -r .reqs/doc.txt, requests -virtualenv==20.2.1 # via -r .reqs/sty.txt, pre-commit, tox -wcwidth==0.2.5 # via -r .reqs/doc.txt, prompt-toolkit -webencodings==0.5.1 # via -r .reqs/doc.txt, bleach -wheel==0.35.1 # via -r .reqs/doc.txt, sphinx-togglebutton -widgetsnbextension==3.5.1 # via -r .reqs/doc.txt, ipywidgets -wrapt==1.12.1 # via -r .reqs/sty.txt, astroid -zipp==3.4.0 # via -r .reqs/doc.txt, importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# pip -# setuptools diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 862364c9..00000000 --- a/requirements.txt +++ /dev/null @@ -1,14 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile -# -cycler==0.10.0 # via matplotlib -kiwisolver==1.3.1 # via matplotlib -matplotlib==3.3.3 # via PWA-pages (setup.py) -numpy==1.19.4 # via PWA-pages (setup.py), matplotlib -pillow==8.0.1 # via matplotlib -pyparsing==2.4.7 # via matplotlib -python-dateutil==2.8.1 # via matplotlib -six==1.15.0 # via cycler, python-dateutil diff --git a/setup.cfg b/setup.cfg index a68abac0..c176eb2d 100644 --- a/setup.cfg +++ b/setup.cfg @@ -32,12 +32,13 @@ classifiers = Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 Topic :: Scientific/Engineering Topic :: Scientific/Engineering :: Physics Typing :: Typed [options] -python_requires = >=3.6 +python_requires = >=3.6, <3.10 setup_requires = setuptools_scm install_requires = diff --git a/tox.ini b/tox.ini index 6e0f4e5c..2a0194c0 100644 --- a/tox.ini +++ b/tox.ini @@ -1,20 +1,17 @@ [tox] -passenv = PYTHONPATH -skip_install = True -skipsdist = True envlist = doc, sty, +passenv = PYTHONPATH +skip_install = True skip_missing_interpreters = True +skipsdist = True [testenv:doc] description = Build documentation and API through Sphinx -deps = - -r .reqs/doc.txt -usedevelop = true changedir = docs -whitelist_externals = +allowlist_externals = make commands = make html @@ -22,10 +19,8 @@ commands = [testenv:doclive] description = Set up a server to directly preview changes to the HTML pages -deps = - -r .reqs/doc.txt +allowlist_externals = sphinx-autobuild -usedevelop = true commands = sphinx-autobuild \ --watch docs \ @@ -39,11 +34,8 @@ commands = [testenv:linkcheck] description = Check external links in the documentation (requires internet connection) -deps = - -r .reqs/doc.txt -usedevelop = true changedir = docs -whitelist_externals = +allowlist_externals = make commands = make ignore-warnings=1 linkcheck # for margin directive @@ -51,35 +43,33 @@ commands = [testenv:sty] description = Perform all linting, formatting, and spelling checks -deps = - -r .reqs/sty.txt -usedevelop = true setenv = SKIP = mypy -whitelist_externals = +allowlist_externals = bash + mypy + pre-commit commands = - mypy . # run separately because of potential caching problems + mypy src . # run separately because of potential caching problems pre-commit run {posargs} -a - - bash -ec "cspell $(git ls-files)" + - bash -ec "cspell --no-progress $(git ls-files)" [testenv:upgrade] description = - Upgrade pinned dependencies + Upgrade pinned dependencies for native Python version +allowlist_externals = + bash deps = pip-tools -skip_install = true commands = - pip-compile --upgrade - pip-compile --upgrade .reqs/doc.in - pip-compile --upgrade .reqs/sty.in - pip-compile --upgrade .reqs/dev.in -o requirements-dev.txt + bash reqs/upgrade.sh [flake8] application-import-names = pwa_pages filename = ./src/*.py + ./tests/*.py exclude = __pycache__ docs/conf.py