diff options
author | Jarrod Millman <jarrod.millman@gmail.com> | 2022-08-09 21:44:57 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-09 21:44:57 -0700 |
commit | b50be98dea148e5cca450a30cf1ae8a7669c2589 (patch) | |
tree | 41ee1f75b3e656248035e9bdf81f8aefe80d29d4 | |
parent | 94a7ce096426462a040ad157cb2f86a07514b72b (diff) | |
download | networkx-b50be98dea148e5cca450a30cf1ae8a7669c2589.tar.gz |
Update precommit hooks (#5923)
-rw-r--r-- | .circleci/config.yml | 4 | ||||
-rw-r--r-- | .github/ISSUE_TEMPLATE/bug_report.md | 10 | ||||
-rw-r--r-- | .github/ISSUE_TEMPLATE/config.yml | 2 | ||||
-rw-r--r-- | .github/workflows/coverage.yml | 44 | ||||
-rw-r--r-- | .github/workflows/deploy-docs.yml | 109 | ||||
-rw-r--r-- | .github/workflows/pytest-randomly.yml | 29 | ||||
-rw-r--r-- | .github/workflows/test.yml | 209 | ||||
-rw-r--r-- | .pre-commit-config.yaml | 24 | ||||
-rw-r--r-- | doc/README.md | 2 | ||||
-rw-r--r-- | doc/_templates/dev_banner.html | 17 | ||||
-rw-r--r-- | doc/_templates/eol_banner.html | 11 | ||||
-rw-r--r-- | doc/_templates/layout.html | 8 | ||||
-rw-r--r-- | doc/_templates/version.html | 31 | ||||
-rw-r--r-- | examples/external/force/force.html | 2 | ||||
-rw-r--r-- | requirements/developer.txt | 2 |
15 files changed, 261 insertions, 243 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml index d56391ba..46398533 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,7 +2,6 @@ version: 2.1 jobs: - documentation: docker: - image: cimg/python:3.9 @@ -29,7 +28,7 @@ jobs: name: Install pysal dependencies command: | sudo apt-get install libspatialindex-dev - + - restore_cache: keys: - pip-cache-v1 @@ -102,7 +101,6 @@ jobs: - store_artifacts: path: results - workflows: documentation_and_image_comparison: jobs: diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index a57dee01..5326ab64 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,27 +1,31 @@ --- name: Bug report -about: 'Please describe the problem you have encountered' +about: "Please describe the problem you have encountered" --- <!-- If you have a general question about NetworkX, please use the discussions tab to create a new discussion --> <!--- Provide a general summary of the issue in the Title above --> - ### Current Behavior + <!--- Tell us what happens instead of the expected behavior --> ### Expected Behavior + <!--- Tell us what should happen --> ### Steps to Reproduce + <!--- Provide a minimal example that reproduces the bug --> ### Environment + <!--- Please provide details about your local environment --> + Python version: NetworkX version: - ### Additional context + <!--- Add any other context about the problem here, screenshots, etc. --> diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 058d8844..d0be5a4f 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -5,4 +5,4 @@ contact_links: about: Ask questions about usage of NetworkX - name: Discussions and Ideas url: https://github.com/networkx/networkx/discussions - about: Talk about new algorithms, feature requests, show your latest application of networks.
\ No newline at end of file + about: Talk about new algorithms, feature requests, show your latest application of networks. diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index b015a499..52c8d2c4 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -2,9 +2,9 @@ name: coverage on: push: - branches: [ main ] + branches: [main] pull_request: - branches: [ main ] + branches: [main] jobs: report: @@ -13,26 +13,26 @@ jobs: matrix: python-version: ["3.10"] steps: - - uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v3 - with: - python-version: ${{ matrix.python-version }} + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} - - name: Before install - run: | - sudo apt-get update - sudo apt-get install graphviz graphviz-dev + - name: Before install + run: | + sudo apt-get update + sudo apt-get install graphviz graphviz-dev - - name: Install packages - run: | - pip install --upgrade pip wheel setuptools - pip install -r requirements/default.txt -r requirements/test.txt - pip install -r requirements/extra.txt - pip install . - pip list + - name: Install packages + run: | + pip install --upgrade pip wheel setuptools + pip install -r requirements/default.txt -r requirements/test.txt + pip install -r requirements/extra.txt + pip install . + pip list - - name: Test NetworkX - run: | - pytest --cov=networkx --runslow --doctest-modules --durations=20 --pyargs networkx - codecov + - name: Test NetworkX + run: | + pytest --cov=networkx --runslow --doctest-modules --durations=20 --pyargs networkx + codecov diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 87f9ace6..df873404 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -2,72 +2,71 @@ name: deploy on: push: - branches: [ main ] + branches: [main] jobs: documentation: - # Do not attempt to deploy documentation on forks if: github.repository_owner == 'networkx' runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 - - name: Set up Python - uses: actions/setup-python@v3 - with: - python-version: '3.9' + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v3 + with: + python-version: "3.9" - - name: Before install - run: | - sudo apt-get update - sudo apt-get install graphviz graphviz-dev - sudo apt-get install texlive texlive-latex-extra latexmk texlive-xetex - sudo apt-get install fonts-freefont-otf xindy - sudo apt-get install libspatialindex-dev + - name: Before install + run: | + sudo apt-get update + sudo apt-get install graphviz graphviz-dev + sudo apt-get install texlive texlive-latex-extra latexmk texlive-xetex + sudo apt-get install fonts-freefont-otf xindy + sudo apt-get install libspatialindex-dev - - name: Install packages - run: | - pip install --upgrade pip wheel setuptools - pip install -r requirements/default.txt -r requirements/test.txt - pip install -r requirements/extra.txt - pip install -r requirements/example.txt - pip install -U -r requirements/doc.txt - pip install . - pip list + - name: Install packages + run: | + pip install --upgrade pip wheel setuptools + pip install -r requirements/default.txt -r requirements/test.txt + pip install -r requirements/extra.txt + pip install -r requirements/example.txt + pip install -U -r requirements/doc.txt + pip install . + pip list - # To set up a cross-repository deploy key: - # 1. Create a key pair: - # `ssh-keygen -t ed25519 -C "nx_doc_deploy_bot@nomail"` - # 2. Add the public key to the networkx/documentation repo - # - Settings -> Deploy keys -> Add new - # - Make sure the key has write permissions - # 3. Add private key as a secret to networkx/networkx repo - # - Settings -> Secrets -> New Repository Secret - # - Make sure the name is the same as below: CI_DEPLOY_KEY - - name: Install SSH agent - if: github.ref == 'refs/heads/main' - uses: webfactory/ssh-agent@v0.5.4 - with: - ssh-private-key: ${{ secrets.CI_DEPLOY_KEY }} + # To set up a cross-repository deploy key: + # 1. Create a key pair: + # `ssh-keygen -t ed25519 -C "nx_doc_deploy_bot@nomail"` + # 2. Add the public key to the networkx/documentation repo + # - Settings -> Deploy keys -> Add new + # - Make sure the key has write permissions + # 3. Add private key as a secret to networkx/networkx repo + # - Settings -> Secrets -> New Repository Secret + # - Make sure the name is the same as below: CI_DEPLOY_KEY + - name: Install SSH agent + if: github.ref == 'refs/heads/main' + uses: webfactory/ssh-agent@v0.5.4 + with: + ssh-private-key: ${{ secrets.CI_DEPLOY_KEY }} - - name: Build docs - if: github.ref == 'refs/heads/main' - run: | - export DISPLAY=:99 - make -C doc/ html - make -C doc/ latexpdf LATEXOPTS="-file-line-error -halt-on-error" - cp -a doc/build/latex/networkx_reference.pdf doc/build/html/_downloads/. + - name: Build docs + if: github.ref == 'refs/heads/main' + run: | + export DISPLAY=:99 + make -C doc/ html + make -C doc/ latexpdf LATEXOPTS="-file-line-error -halt-on-error" + cp -a doc/build/latex/networkx_reference.pdf doc/build/html/_downloads/. - - name: Deploy docs - if: github.ref == 'refs/heads/main' - uses: JamesIves/github-pages-deploy-action@releases/v3 - with: - GIT_CONFIG_NAME: nx-doc-deploy-bot - GIT_CONFIG_EMAIL: nx-doc-deploy-bot@nomail - FOLDER: doc/build/html - REPOSITORY_NAME: networkx/documentation - BRANCH: gh-pages - TARGET_FOLDER: latest - SSH: true + - name: Deploy docs + if: github.ref == 'refs/heads/main' + uses: JamesIves/github-pages-deploy-action@releases/v3 + with: + GIT_CONFIG_NAME: nx-doc-deploy-bot + GIT_CONFIG_EMAIL: nx-doc-deploy-bot@nomail + FOLDER: doc/build/html + REPOSITORY_NAME: networkx/documentation + BRANCH: gh-pages + TARGET_FOLDER: latest + SSH: true diff --git a/.github/workflows/pytest-randomly.yml b/.github/workflows/pytest-randomly.yml index 2b8b1754..84168d20 100644 --- a/.github/workflows/pytest-randomly.yml +++ b/.github/workflows/pytest-randomly.yml @@ -5,23 +5,22 @@ on: - cron: "0 0 * * *" jobs: - randomize-test-order: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - name: Set up Python - uses: actions/setup-python@v2 - with: - python-version: "3.9" + - uses: actions/checkout@v2 + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: "3.9" - - name: Install packages - run: | - pip install --upgrade pip wheel setuptools - pip install -r requirements/default.txt -r requirements/test.txt - pip install pytest-randomly - pip install . - pip list + - name: Install packages + run: | + pip install --upgrade pip wheel setuptools + pip install -r requirements/default.txt -r requirements/test.txt + pip install pytest-randomly + pip install . + pip list - - name: Run tests - run: pytest --doctest-modules --durations=10 --pyargs networkx + - name: Run tests + run: pytest --doctest-modules --durations=10 --pyargs networkx diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7918692d..17dab7ce 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,135 +3,134 @@ name: test on: [push, pull_request] jobs: - base: runs-on: ${{ matrix.os }}-latest strategy: matrix: os: [ubuntu, macos, windows] - python-version: ['pypy-3.8', '3.11-dev'] + python-version: ["pypy-3.8", "3.11-dev"] steps: - - uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v3 - with: - python-version: ${{ matrix.python-version }} - - - name: Install packages - run: | - python -m pip install --upgrade pip wheel setuptools - python -m pip install -r requirements/test.txt - python -m pip install . - python -m pip list - - - name: Test NetworkX - run: | - pytest --durations=10 --pyargs networkx + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + + - name: Install packages + run: | + python -m pip install --upgrade pip wheel setuptools + python -m pip install -r requirements/test.txt + python -m pip install . + python -m pip list + + - name: Test NetworkX + run: | + pytest --durations=10 --pyargs networkx default: runs-on: ${{ matrix.os }}-latest strategy: matrix: os: [ubuntu, macos, windows] - python-version: ['3.8', '3.9', '3.10'] + python-version: ["3.8", "3.9", "3.10"] steps: - - uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v3 - with: - python-version: ${{ matrix.python-version }} - - - name: Install packages - run: | - python -m pip install --upgrade pip wheel setuptools - python -m pip install -r requirements/default.txt -r requirements/test.txt - python -m pip install . - python -m pip list - - - name: Test NetworkX - run: | - pytest --doctest-modules --durations=10 --pyargs networkx + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + + - name: Install packages + run: | + python -m pip install --upgrade pip wheel setuptools + python -m pip install -r requirements/default.txt -r requirements/test.txt + python -m pip install . + python -m pip list + + - name: Test NetworkX + run: | + pytest --doctest-modules --durations=10 --pyargs networkx extra: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-22.04, macos-latest, windows-latest] - python-version: ['3.8', '3.9', '3.10'] + python-version: ["3.8", "3.9", "3.10"] steps: - - uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v3 - with: - python-version: ${{ matrix.python-version }} - - - name: Before install (Linux) - if: runner.os == 'Linux' - run: sudo apt-get update && sudo apt-get install graphviz graphviz-dev - - - name: Before install (macOS) - if: runner.os == 'macOS' - run: brew install graphviz - - - name: Before install (Windows) - if: runner.os == 'Windows' - run: choco install graphviz - - - name: Install packages (Linux) - if: runner.os == 'Linux' - run: | - pip install --upgrade pip wheel setuptools - pip install -r requirements/default.txt -r requirements/test.txt - pip install -r requirements/extra.txt - pip install . - pip list - - name: Install packages (macOS) - if: runner.os == 'macOS' - run: | - pip install --upgrade pip wheel setuptools - pip install -r requirements/default.txt -r requirements/test.txt - pip install --global-option=build_ext --global-option="-I/usr/local/include/" --global-option="-L/usr/local/lib/" pygraphviz - pip install -r requirements/extra.txt - pip install . - pip list - - name: Install packages (windows) - if: runner.os == 'Windows' - run: | - echo "C:\Program Files\Graphviz\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - python -m pip install --upgrade pip wheel setuptools - python -m pip install -r requirements/default.txt -r requirements/test.txt - python -m pip install --global-option=build_ext ` - --global-option="-IC:\Program Files\Graphviz\include" ` - --global-option="-LC:\Program Files\Graphviz\lib" ` - pygraphviz - python -m pip install -r requirements/extra.txt - python -m pip install . - python -m pip list - - - name: Test NetworkX - run: | - pytest --doctest-modules --durations=10 --pyargs networkx + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + + - name: Before install (Linux) + if: runner.os == 'Linux' + run: sudo apt-get update && sudo apt-get install graphviz graphviz-dev + + - name: Before install (macOS) + if: runner.os == 'macOS' + run: brew install graphviz + + - name: Before install (Windows) + if: runner.os == 'Windows' + run: choco install graphviz + + - name: Install packages (Linux) + if: runner.os == 'Linux' + run: | + pip install --upgrade pip wheel setuptools + pip install -r requirements/default.txt -r requirements/test.txt + pip install -r requirements/extra.txt + pip install . + pip list + - name: Install packages (macOS) + if: runner.os == 'macOS' + run: | + pip install --upgrade pip wheel setuptools + pip install -r requirements/default.txt -r requirements/test.txt + pip install --global-option=build_ext --global-option="-I/usr/local/include/" --global-option="-L/usr/local/lib/" pygraphviz + pip install -r requirements/extra.txt + pip install . + pip list + - name: Install packages (windows) + if: runner.os == 'Windows' + run: | + echo "C:\Program Files\Graphviz\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + python -m pip install --upgrade pip wheel setuptools + python -m pip install -r requirements/default.txt -r requirements/test.txt + python -m pip install --global-option=build_ext ` + --global-option="-IC:\Program Files\Graphviz\include" ` + --global-option="-LC:\Program Files\Graphviz\lib" ` + pygraphviz + python -m pip install -r requirements/extra.txt + python -m pip install . + python -m pip list + + - name: Test NetworkX + run: | + pytest --doctest-modules --durations=10 --pyargs networkx prerelease: runs-on: ${{ matrix.os }}-latest strategy: matrix: os: [ubuntu, macos] - python-version: ['3.8', '3.9', '3.10'] + python-version: ["3.8", "3.9", "3.10"] steps: - - uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v3 - with: - python-version: ${{ matrix.python-version }} - - - name: Install packages - run: | - pip install --upgrade pip wheel setuptools - pip install --pre -r requirements/default.txt -r requirements/test.txt - pip install . - pip list - - - name: Test NetworkX - run: | - pytest --doctest-modules --durations=10 --pyargs networkx + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + + - name: Install packages + run: | + pip install --upgrade pip wheel setuptools + pip install --pre -r requirements/default.txt -r requirements/test.txt + pip install . + pip list + + - name: Test NetworkX + run: | + pytest --doctest-modules --durations=10 --pyargs networkx diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ca7a51af..07671dd1 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,23 +2,29 @@ # pre-commit install repos: -- repo: https://github.com/psf/black + - repo: https://github.com/psf/black rev: 22.6.0 hooks: - - id: black -- repo: https://github.com/asottile/pyupgrade - rev: v2.34.0 + - id: black + - repo: https://github.com/asottile/pyupgrade + rev: v2.37.3 hooks: - - id: pyupgrade + - id: pyupgrade args: [--py38-plus] -- repo: https://github.com/asottile/blacken-docs + - repo: https://github.com/asottile/blacken-docs rev: v1.12.1 hooks: - - id: blacken-docs -- repo: https://github.com/pycqa/isort + - id: blacken-docs + - repo: https://github.com/pycqa/isort rev: 5.10.1 hooks: - - id: isort + - id: isort name: isort (python) args: ["--profile", "black", "--filter-files", "--skip", "__init__.py"] files: ^networkx/ + - repo: https://github.com/pre-commit/mirrors-prettier + rev: v2.7.1 + hooks: + - id: prettier + files: \.(html|md|yml|yaml) + args: [--prose-wrap=preserve] diff --git a/doc/README.md b/doc/README.md index 481f2674..96012b25 100644 --- a/doc/README.md +++ b/doc/README.md @@ -21,7 +21,7 @@ To build the HTML documentation, enter:: make html -in the ``doc/`` directory. This will generate a ``build/html`` subdirectory +in the `doc/` directory. This will generate a `build/html` subdirectory containing the built documentation. To build the PDF documentation, enter:: diff --git a/doc/_templates/dev_banner.html b/doc/_templates/dev_banner.html index 5fd2b535..b90046d3 100644 --- a/doc/_templates/dev_banner.html +++ b/doc/_templates/dev_banner.html @@ -1,10 +1,13 @@ {# Creates a banner at the top of the page for development versions. #} <div class="container-fluid version-alert devbar"> -<div class="row no-gutters"> -<div class="col-12 text-center"> -This page is documentation for a DEVELOPMENT / PRE-RELEASE version. -<a class="btn version-stable font-weight-bold ml-3 my-3 align-baseline" -href="https://networkx.org/documentation/stable/">Switch to stable version</a> -</div> -</div> + <div class="row no-gutters"> + <div class="col-12 text-center"> + This page is documentation for a DEVELOPMENT / PRE-RELEASE version. + <a + class="btn version-stable font-weight-bold ml-3 my-3 align-baseline" + href="https://networkx.org/documentation/stable/" + >Switch to stable version</a + > + </div> + </div> </div> diff --git a/doc/_templates/eol_banner.html b/doc/_templates/eol_banner.html index 7f607cc8..2f8a1df6 100644 --- a/doc/_templates/eol_banner.html +++ b/doc/_templates/eol_banner.html @@ -1,6 +1,11 @@ {# Creates a banner at the top of the page for EOL versions. #} <div class="admonition note"> -<p class="admonition-title">Note</p> - <p>This documents an unmaintained version of NetworkX. Please upgrade to a maintained version and see <a href="https://networkx.org/documentation/stable/">the current NetworkX documentation</a>.</p> + <p class="admonition-title">Note</p> + <p> + This documents an unmaintained version of NetworkX. Please upgrade to a + maintained version and see + <a href="https://networkx.org/documentation/stable/" + >the current NetworkX documentation</a + >. + </p> </div> - diff --git a/doc/_templates/layout.html b/doc/_templates/layout.html index 45f314b7..b4665f6c 100644 --- a/doc/_templates/layout.html +++ b/doc/_templates/layout.html @@ -1,6 +1,2 @@ -{% extends "!layout.html" %} - -{% block content %} - {% include "dev_banner.html" %} - {{ super() }} -{% endblock %} +{% extends "!layout.html" %} {% block content %} {% include "dev_banner.html" %} +{{ super() }} {% endblock %} diff --git a/doc/_templates/version.html b/doc/_templates/version.html index 877fd146..94b91541 100644 --- a/doc/_templates/version.html +++ b/doc/_templates/version.html @@ -1,13 +1,22 @@ <ul class="navbar-nav"> - <li class="mr-2 dropdown"> - <button type="button" class="btn btn-version btn-sm navbar-btn dropdown-toggle" id="dLabelMore" data-toggle="dropdown"> - v{{ release }} - <span class="caret"></span> - </button> - <ul class="dropdown-menu" aria-labelledby="dLabelMore"> - {%- for ver, txt in versions_dropdown.items() %} - <li><a href="https://networkx.org/documentation/{{ ver }}/index.html">{{ txt }}</a></li> - {%- endfor %} - </ul> - </li> + <li class="mr-2 dropdown"> + <button + type="button" + class="btn btn-version btn-sm navbar-btn dropdown-toggle" + id="dLabelMore" + data-toggle="dropdown" + > + v{{ release }} + <span class="caret"></span> + </button> + <ul class="dropdown-menu" aria-labelledby="dLabelMore"> + {%- for ver, txt in versions_dropdown.items() %} + <li> + <a href="https://networkx.org/documentation/{{ ver }}/index.html" + >{{ txt }}</a + > + </li> + {%- endfor %} + </ul> + </li> </ul> diff --git a/examples/external/force/force.html b/examples/external/force/force.html index 21cc7e33..780ed7fb 100644 --- a/examples/external/force/force.html +++ b/examples/external/force/force.html @@ -3,7 +3,7 @@ <head> <title>Force-Directed Layout</title> <script type="text/javascript" src="https://d3js.org/d3.v4.min.js"></script> - <link type="text/css" rel="stylesheet" href="force/force.css"/> + <link type="text/css" rel="stylesheet" href="force/force.css" /> </head> <body> <svg width="960" height="600"></svg> diff --git a/requirements/developer.txt b/requirements/developer.txt index 30426ca1..912592dc 100644 --- a/requirements/developer.txt +++ b/requirements/developer.txt @@ -1,2 +1,2 @@ -pre-commit>=2.19 +pre-commit>=2.20 mypy>=0.961 |