diff --git a/.cookiecutter.json b/.cookiecutter.json index ddac2641..e9233e71 100644 --- a/.cookiecutter.json +++ b/.cookiecutter.json @@ -4,6 +4,7 @@ "email": "mail@claudiojolowicz.com", "friendly_name": "nox-poetry", "github_user": "cjolowicz", + "license": "MIT", "package_name": "nox_poetry", "project_name": "nox-poetry", "version": "0.1.0" diff --git a/.darglint b/.darglint index 2b03755a..72ccc6c5 100644 --- a/.darglint +++ b/.darglint @@ -1,2 +1,2 @@ [darglint] -strictness = short +strictness = long diff --git a/.flake8 b/.flake8 index 785d1707..0f464316 100644 --- a/.flake8 +++ b/.flake8 @@ -5,5 +5,5 @@ max-line-length = 80 max-complexity = 10 docstring-convention = google per-file-ignores = tests/*:S101 -rst-roles = const,class,func,meth,mod,ref +rst-roles = class,const,func,meth,mod,ref rst-directives = deprecated diff --git a/.github/workflows/constraints.txt b/.github/workflows/constraints.txt index 27e44a5b..7edaab63 100644 --- a/.github/workflows/constraints.txt +++ b/.github/workflows/constraints.txt @@ -1,4 +1,4 @@ pip==21.0.1 nox==2020.12.31 -poetry==1.1.5 +poetry==1.1.6 virtualenv==20.4.3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 58a5121d..9666d01a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,7 +17,7 @@ jobs: fetch-depth: 2 - name: Set up Python - uses: actions/setup-python@v2.2.1 + uses: actions/setup-python@v2.2.2 with: python-version: "3.9" diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 6071efba..790c3a58 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -35,7 +35,7 @@ jobs: uses: actions/checkout@v2.3.4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2.2.1 + uses: actions/setup-python@v2.2.2 with: python-version: ${{ matrix.python-version }} @@ -74,7 +74,7 @@ jobs: print("::set-output name=result::{}".format(result)) - name: Restore pre-commit cache - uses: actions/cache@v2.1.4 + uses: actions/cache@v2.1.5 if: matrix.session == 'pre-commit' with: path: ~/.cache/pre-commit @@ -88,14 +88,14 @@ jobs: - name: Upload coverage data if: always() && matrix.session == 'tests' - uses: "actions/upload-artifact@v2.2.2" + uses: "actions/upload-artifact@v2.2.3" with: name: coverage-data path: ".coverage.*" - name: Upload documentation if: matrix.session == 'docs-build' - uses: actions/upload-artifact@v2.2.2 + uses: actions/upload-artifact@v2.2.3 with: name: docs path: docs/_build @@ -108,7 +108,7 @@ jobs: uses: actions/checkout@v2.3.4 - name: Set up Python 3.9 - uses: actions/setup-python@v2.2.1 + uses: actions/setup-python@v2.2.2 with: python-version: 3.9 @@ -132,7 +132,7 @@ jobs: pip install . - name: Download coverage data - uses: actions/download-artifact@v2.0.8 + uses: actions/download-artifact@v2.0.9 with: name: coverage-data @@ -145,4 +145,4 @@ jobs: nox --force-color --session=coverage -- xml - name: Upload coverage report - uses: codecov/codecov-action@v1.3.1 + uses: codecov/codecov-action@v1.3.2 diff --git a/LICENSE.rst b/LICENSE.rst index 78431609..4f7320ca 100644 --- a/LICENSE.rst +++ b/LICENSE.rst @@ -1,7 +1,7 @@ MIT License =========== -Copyright © 2020 Claudio Jolowicz +Copyright © 2021 Claudio Jolowicz Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.rst b/README.rst index 1b5c9d87..9f595cd8 100644 --- a/README.rst +++ b/README.rst @@ -164,7 +164,7 @@ License ------- ``nox-poetry`` is free and open source software, -distributed under the terms of the MIT_ license. +distributed under the terms of the `MIT license`_. Issues @@ -179,9 +179,9 @@ Credits This project was generated from `@cjolowicz`_'s `Hypermodern Python Cookiecutter`_ template. - .. _@cjolowicz: https://github.com/cjolowicz .. _Cookiecutter: https://github.com/audreyr/cookiecutter +.. _MIT license: https://opensource.org/licenses/MIT .. _Hypermodern Python Cookiecutter: https://github.com/cjolowicz/cookiecutter-hypermodern-python .. _MIT: http://opensource.org/licenses/MIT .. _Nox: https://nox.thea.codes/ diff --git a/docs/requirements.txt b/docs/requirements.txt index 69515dd8..ba8712dd 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,2 +1,2 @@ -sphinx==3.5.3 -furo==2021.3.20b30 +sphinx==3.5.4 +furo==2021.2.28b28 diff --git a/mypy.ini b/mypy.ini index 0eab3c51..d382b762 100644 --- a/mypy.ini +++ b/mypy.ini @@ -1,23 +1,9 @@ [mypy] -check_untyped_defs = True -disallow_any_generics = True -disallow_incomplete_defs = True -disallow_subclassing_any = True -disallow_untyped_calls = True -disallow_untyped_decorators = True -disallow_untyped_defs = True -no_implicit_optional = True -no_implicit_reexport = True +strict = True pretty = True show_column_numbers = True show_error_codes = True show_error_context = True -strict_equality = True -warn_redundant_casts = True -warn_return_any = True -warn_unreachable = True -warn_unused_configs = True -warn_unused_ignores = True [mypy-tomlkit] ignore_missing_imports = True diff --git a/noxfile.py b/noxfile.py index f969974e..ad1b2b05 100644 --- a/noxfile.py +++ b/noxfile.py @@ -101,9 +101,7 @@ def safety(session: Session) -> None: """Scan dependencies for insecure packages.""" requirements = session.poetry.export_requirements() session.install("safety") - # Ignore CVE-2020-28476 affecting all versions of tornado - # https://github.com/tornadoweb/tornado/issues/2981 - session.run("safety", "check", f"--file={requirements}", "--bare", "--ignore=39462") + session.run("safety", "check", "--full-report", f"--file={requirements}") @session(python=python_versions) diff --git a/poetry.lock b/poetry.lock index 98bb2517..f25377be 100644 --- a/poetry.lock +++ b/poetry.lock @@ -292,7 +292,7 @@ test = ["pytest (>=6.0)", "pytest-cov", "pytest-subtests", "pytest-xdist", "pret [[package]] name = "darglint" -version = "1.7.0" +version = "1.8.0" description = "A utility for ensuring Google-style docstrings stay up to date with the source code." category = "dev" optional = false @@ -376,7 +376,7 @@ pycodestyle = "*" [[package]] name = "flake8-bugbear" -version = "21.3.2" +version = "21.4.3" description = "A plugin for flake8 finding likely bugs and design problems in your program. Contains warnings that don't belong in pyflakes and pycodestyle." category = "dev" optional = false @@ -804,7 +804,7 @@ importlib-metadata = {version = ">=1.7.0,<2.0.0", markers = "python_version >= \ [[package]] name = "pre-commit" -version = "2.11.1" +version = "2.12.1" description = "A framework for managing and maintaining multi-language pre-commit hooks." category = "dev" optional = false @@ -909,7 +909,7 @@ python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" [[package]] name = "pytest" -version = "6.2.2" +version = "6.2.3" description = "pytest: simple powerful testing with Python" category = "dev" optional = false @@ -1114,7 +1114,7 @@ python-versions = ">=3.6" [[package]] name = "sphinx" -version = "3.5.3" +version = "3.5.4" description = "Python documentation generator" category = "dev" optional = false @@ -1124,7 +1124,7 @@ python-versions = ">=3.5" alabaster = ">=0.7,<0.8" babel = ">=1.3" colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""} -docutils = ">=0.12" +docutils = ">=0.12,<0.17" imagesize = "*" Jinja2 = ">=2.3" packaging = "*" @@ -1276,7 +1276,7 @@ python-versions = "*" [[package]] name = "typeguard" -version = "2.11.1" +version = "2.12.0" description = "Run-time type checker for Python" category = "dev" optional = false @@ -1370,7 +1370,7 @@ testing = ["pytest (>=4.6)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pyt [metadata] lock-version = "1.1" python-versions = "^3.6.1" -content-hash = "28b4ada6c6b9e4b2471e672061405deea70e5223c3e55772da82c9f2790169b1" +content-hash = "5cd2c1ff7e506e3f0fe482cfcc5216872169a025c48c1606248715d612e64f26" [metadata.files] alabaster = [ @@ -1569,8 +1569,8 @@ cryptography = [ {file = "cryptography-3.4.6.tar.gz", hash = "sha256:2d32223e5b0ee02943f32b19245b61a62db83a882f0e76cc564e1cec60d48f87"}, ] darglint = [ - {file = "darglint-1.7.0-py3-none-any.whl", hash = "sha256:3bf16e78e2909ecdb737afd45fcd6a3f8993b092c2ba2b7cd7b179cceee87a43"}, - {file = "darglint-1.7.0.tar.gz", hash = "sha256:e49b36ac9b4272a9a988b508d23e9f31c29f80a5fc030f1023b46740b5deab31"}, + {file = "darglint-1.8.0-py3-none-any.whl", hash = "sha256:ac6797bcc918cd8d8f14c168a4a364f54e1aeb4ced59db58e7e4c6dfec2fe15c"}, + {file = "darglint-1.8.0.tar.gz", hash = "sha256:aa605ef47817a6d14797d32b390466edab621768ea4ca5cc0f3c54f6d8dcaec8"}, ] dataclasses = [ {file = "dataclasses-0.8-py3-none-any.whl", hash = "sha256:0201d89fa866f68c8ebd9d08ee6ff50c0b255f8ec63a71c16fda7af82bb887bf"}, @@ -1600,8 +1600,8 @@ flake8-bandit = [ {file = "flake8_bandit-2.1.2.tar.gz", hash = "sha256:687fc8da2e4a239b206af2e54a90093572a60d0954f3054e23690739b0b0de3b"}, ] flake8-bugbear = [ - {file = "flake8-bugbear-21.3.2.tar.gz", hash = "sha256:cadce434ceef96463b45a7c3000f23527c04ea4b531d16c7ac8886051f516ca0"}, - {file = "flake8_bugbear-21.3.2-py36.py37.py38-none-any.whl", hash = "sha256:5d6ccb0c0676c738a6e066b4d50589c408dcc1c5bf1d73b464b18b73cd6c05c2"}, + {file = "flake8-bugbear-21.4.3.tar.gz", hash = "sha256:2346c81f889955b39e4a368eb7d508de723d9de05716c287dc860a4073dc57e7"}, + {file = "flake8_bugbear-21.4.3-py36.py37.py38-none-any.whl", hash = "sha256:4f305dca96be62bf732a218fe6f1825472a621d3452c5b994d8f89dae21dbafa"}, ] flake8-docstrings = [ {file = "flake8-docstrings-1.6.0.tar.gz", hash = "sha256:9fe7c6a306064af8e62a055c2f61e9eb1da55f84bb39caef2b84ce53708ac34b"}, @@ -1819,8 +1819,8 @@ poetry-core = [ {file = "poetry_core-1.0.2-py2.py3-none-any.whl", hash = "sha256:ee0ed4164440eeab27d1b01bc7b9b3afdc3124f68d4ea28d0821a402a9c7c044"}, ] pre-commit = [ - {file = "pre_commit-2.11.1-py2.py3-none-any.whl", hash = "sha256:94c82f1bf5899d56edb1d926732f4e75a7df29a0c8c092559c77420c9d62428b"}, - {file = "pre_commit-2.11.1.tar.gz", hash = "sha256:de55c5c72ce80d79106e48beb1b54104d16495ce7f95b0c7b13d4784193a00af"}, + {file = "pre_commit-2.12.1-py2.py3-none-any.whl", hash = "sha256:70c5ec1f30406250b706eda35e868b87e3e4ba099af8787e3e8b4b01e84f4712"}, + {file = "pre_commit-2.12.1.tar.gz", hash = "sha256:900d3c7e1bf4cf0374bb2893c24c23304952181405b4d88c9c40b72bda1bb8a9"}, ] pre-commit-hooks = [ {file = "pre_commit_hooks-3.4.0-py2.py3-none-any.whl", hash = "sha256:b1d329fc712f53f56af7c4a0ac08c414a7fcfd634dbd829c3a03f39cfb9c3574"}, @@ -1863,8 +1863,8 @@ pyparsing = [ {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, ] pytest = [ - {file = "pytest-6.2.2-py3-none-any.whl", hash = "sha256:b574b57423e818210672e07ca1fa90aaf194a4f63f3ab909a2c67ebb22913839"}, - {file = "pytest-6.2.2.tar.gz", hash = "sha256:9d1edf9e7d0b84d72ea3dbcdfd22b35fb543a5e8f2a60092dd578936bf63d7f9"}, + {file = "pytest-6.2.3-py3-none-any.whl", hash = "sha256:6ad9c7bdf517a808242b998ac20063c41532a570d088d77eec1ee12b0b5574bc"}, + {file = "pytest-6.2.3.tar.gz", hash = "sha256:671238a46e4df0f3498d1c3270e5deb9b32d25134c99b7d75370a68cfbe9b634"}, ] pytest-datadir = [ {file = "pytest-datadir-1.3.1.tar.gz", hash = "sha256:d3af1e738df87515ee509d6135780f25a15959766d9c2b2dbe02bf4fb979cb18"}, @@ -2018,8 +2018,8 @@ soupsieve = [ {file = "soupsieve-2.2.tar.gz", hash = "sha256:407fa1e8eb3458d1b5614df51d9651a1180ea5fedf07feb46e45d7e25e6d6cdd"}, ] sphinx = [ - {file = "Sphinx-3.5.3-py3-none-any.whl", hash = "sha256:3f01732296465648da43dec8fb40dc451ba79eb3e2cc5c6d79005fd98197107d"}, - {file = "Sphinx-3.5.3.tar.gz", hash = "sha256:ce9c228456131bab09a3d7d10ae58474de562a6f79abb3dc811ae401cf8c1abc"}, + {file = "Sphinx-3.5.4-py3-none-any.whl", hash = "sha256:2320d4e994a191f4b4be27da514e46b3d6b420f2ff895d064f52415d342461e8"}, + {file = "Sphinx-3.5.4.tar.gz", hash = "sha256:19010b7b9fa0dc7756a6e105b2aacd3a80f798af3c25c273be64d7beeb482cb1"}, ] sphinx-autobuild = [ {file = "sphinx-autobuild-2021.3.14.tar.gz", hash = "sha256:de1ca3b66e271d2b5b5140c35034c89e47f263f2cd5db302c9217065f7443f05"}, @@ -2137,8 +2137,8 @@ typed-ast = [ {file = "typed_ast-1.4.2.tar.gz", hash = "sha256:9fc0b3cb5d1720e7141d103cf4819aea239f7d136acf9ee4a69b047b7986175a"}, ] typeguard = [ - {file = "typeguard-2.11.1-py3-none-any.whl", hash = "sha256:c62706201ec6c14962162fa67d70bd2762753247533d70ff2442e5ac08f94fa2"}, - {file = "typeguard-2.11.1.tar.gz", hash = "sha256:33243c1cbfcb9736a06c6db22dd08876b5f297e6344aa272a2862c0f8e669f64"}, + {file = "typeguard-2.12.0-py3-none-any.whl", hash = "sha256:7d1cf82b35e9ff3cd083133ebda54ad1d7a40296471397e6c6b229cf07fe5307"}, + {file = "typeguard-2.12.0.tar.gz", hash = "sha256:fca77fd4ccba63465b421cdbbab5a1a8e3994e6d6f18b45da2bb475c09f147ef"}, ] typing-extensions = [ {file = "typing_extensions-3.7.4.3-py2-none-any.whl", hash = "sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f"}, diff --git a/pyproject.toml b/pyproject.toml index 053a232c..fb1bfec3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,23 +26,23 @@ tomlkit = "^0.7.0" packaging = ">=20.9" [tool.poetry.dev-dependencies] -pytest = "^6.2.2" +pytest = "^6.2.3" coverage = {extras = ["toml"], version = "^5.5"} safety = "^1.10.3" mypy = "^0.812" -typeguard = "^2.11.1" +typeguard = "^2.12.0" xdoctest = {extras = ["colors"], version = "^0.15.4"} -sphinx = "^3.5.3" +sphinx = "^3.5.4" sphinx-autobuild = "^2021.3.14" -pre-commit = "^2.11.1" +pre-commit = "^2.12.0" flake8 = "^3.9.0" black = "^20.8b1" flake8-bandit = "^2.1.2" -flake8-bugbear = "^21.3.2" +flake8-bugbear = "^21.4.3" flake8-docstrings = "^1.6.0" flake8-rst-docstrings = "^0.0.14" pep8-naming = "^0.11.1" -darglint = "^1.7.0" +darglint = "^1.8.0" reorder-python-imports = "^2.4.0" pre-commit-hooks = "^3.4.0" furo = "^2021.3.20b30"