From c22d73a24ae8f0542b2566dd4e58480d1a6ce2dc Mon Sep 17 00:00:00 2001 From: Mateusz Krainski Date: Thu, 15 Aug 2024 18:30:25 -0400 Subject: [PATCH 1/5] Fix local dependencies --- .pre-commit-config.yaml | 2 +- poetry.lock | 336 ++++++++++++++++++++-------------------- 2 files changed, 166 insertions(+), 172 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 22231bc..2d1703c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -15,7 +15,7 @@ repos: - "--remove-all-unused-imports" - "--remove-unused-variable" - repo: https://github.com/PyCQA/isort - rev: 5.10.0 + rev: 5.12.0 hooks: - id: isort - repo: https://github.com/ambv/black diff --git a/poetry.lock b/poetry.lock index dff1558..a763f56 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,56 +1,76 @@ +# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. + [[package]] name = "atomicwrites" version = "1.4.0" description = "Atomic file writes." -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"}, + {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, +] [[package]] name = "attrs" version = "21.4.0" description = "Classes Without Boilerplate" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, + {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, +] [package.extras] -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"] -docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] -tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "cloudpickle"] +dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "six", "sphinx", "sphinx-notfound-page", "zope.interface"] +docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"] +tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "six", "zope.interface"] +tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "six"] [[package]] name = "cfgv" version = "3.3.1" description = "Validate configuration and produce human readable error messages." -category = "dev" optional = false python-versions = ">=3.6.1" +files = [ + {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"}, + {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"}, +] [[package]] name = "colorama" version = "0.4.4" description = "Cross-platform colored terminal text." -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, + {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, +] [[package]] name = "distlib" version = "0.3.4" description = "Distribution utilities" -category = "dev" optional = false python-versions = "*" +files = [ + {file = "distlib-0.3.4-py2.py3-none-any.whl", hash = "sha256:6564fe0a8f51e734df6333d08b8b94d4ea8ee6b99b5ed50613f731fd4089f34b"}, + {file = "distlib-0.3.4.zip", hash = "sha256:e4b58818180336dc9c529bfb9a0b58728ffc09ad92027a3f30b7cd91e3458579"}, +] [[package]] name = "filelock" version = "3.6.0" description = "A platform independent file lock." -category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "filelock-3.6.0-py3-none-any.whl", hash = "sha256:f8314284bfffbdcfa0ff3d7992b023d4c628ced6feb957351d4c48d059f56bc0"}, + {file = "filelock-3.6.0.tar.gz", hash = "sha256:9cd540a9352e432c7246a48fe4e8712b10acb1df2ad1f30e8c070b82ae1fed85"}, +] [package.extras] docs = ["furo (>=2021.8.17b43)", "sphinx (>=4.1)", "sphinx-autodoc-typehints (>=1.12)"] @@ -60,9 +80,12 @@ testing = ["covdefaults (>=1.2.0)", "coverage (>=4)", "pytest (>=4)", "pytest-co name = "flake8" version = "4.0.1" description = "the modular source code checker: pep8 pyflakes and co" -category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "flake8-4.0.1-py2.py3-none-any.whl", hash = "sha256:479b1304f72536a55948cb40a32dce8bb0ffe3501e26eaf292c7e60eb5e0428d"}, + {file = "flake8-4.0.1.tar.gz", hash = "sha256:806e034dda44114815e23c16ef92f95c91e4c71100ff52813adf7132a6ad870d"}, +] [package.dependencies] mccabe = ">=0.6.0,<0.7.0" @@ -73,9 +96,12 @@ pyflakes = ">=2.4.0,<2.5.0" name = "identify" version = "2.4.12" description = "File identification library for Python" -category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "identify-2.4.12-py2.py3-none-any.whl", hash = "sha256:5f06b14366bd1facb88b00540a1de05b69b310cbc2654db3c7e07fa3a4339323"}, + {file = "identify-2.4.12.tar.gz", hash = "sha256:3f3244a559290e7d3deb9e9adc7b33594c1bc85a9dd82e0f1be519bf12a1ec17"}, +] [package.extras] license = ["ukkonen"] @@ -84,33 +110,45 @@ license = ["ukkonen"] name = "iniconfig" version = "1.1.1" description = "iniconfig: brain-dead simple config-ini parsing" -category = "dev" optional = false python-versions = "*" +files = [ + {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, + {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, +] [[package]] name = "mccabe" version = "0.6.1" description = "McCabe checker, plugin for flake8" -category = "main" optional = false python-versions = "*" +files = [ + {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, + {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, +] [[package]] name = "nodeenv" version = "1.6.0" description = "Node.js virtual environment builder" -category = "dev" optional = false python-versions = "*" +files = [ + {file = "nodeenv-1.6.0-py2.py3-none-any.whl", hash = "sha256:621e6b7076565ddcacd2db0294c0381e01fd28945ab36bcf00f41c5daf63bef7"}, + {file = "nodeenv-1.6.0.tar.gz", hash = "sha256:3ef13ff90291ba2a4a7a4ff9a979b63ffdd00a464dbe04acf0ea6471517a4c2b"}, +] [[package]] name = "packaging" version = "21.3" description = "Core utilities for Python packages" -category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, + {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, +] [package.dependencies] pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" @@ -119,9 +157,12 @@ pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" name = "platformdirs" version = "2.5.1" description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "platformdirs-2.5.1-py3-none-any.whl", hash = "sha256:bcae7cab893c2d310a711b70b24efb93334febe65f8de776ee320b517471e227"}, + {file = "platformdirs-2.5.1.tar.gz", hash = "sha256:7535e70dfa32e84d4b34996ea99c5e432fa29a708d0f4e394bbcb2a8faa4f16d"}, +] [package.extras] docs = ["Sphinx (>=4)", "furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)"] @@ -131,9 +172,12 @@ test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock name = "pluggy" version = "1.0.0" description = "plugin and hook calling mechanisms for python" -category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, + {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, +] [package.extras] dev = ["pre-commit", "tox"] @@ -143,9 +187,12 @@ testing = ["pytest", "pytest-benchmark"] name = "pre-commit" version = "2.17.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." -category = "dev" optional = false python-versions = ">=3.6.1" +files = [ + {file = "pre_commit-2.17.0-py2.py3-none-any.whl", hash = "sha256:725fa7459782d7bec5ead072810e47351de01709be838c2ce1726b9591dad616"}, + {file = "pre_commit-2.17.0.tar.gz", hash = "sha256:c1a8040ff15ad3d648c70cc3e55b93e4d2d5b687320955505587fd79bbaed06a"}, +] [package.dependencies] cfgv = ">=2.0.0" @@ -159,33 +206,45 @@ virtualenv = ">=20.0.8" name = "py" version = "1.11.0" description = "library with cross-python path, ini-parsing, io, code, log facilities" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, +] [[package]] name = "pycodestyle" version = "2.8.0" description = "Python style guide checker" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "pycodestyle-2.8.0-py2.py3-none-any.whl", hash = "sha256:720f8b39dde8b293825e7ff02c475f3077124006db4f440dcbc9a20b76548a20"}, + {file = "pycodestyle-2.8.0.tar.gz", hash = "sha256:eddd5847ef438ea1c7870ca7eb78a9d47ce0cdb4851a5523949f2601d0cbbe7f"}, +] [[package]] name = "pyflakes" version = "2.4.0" description = "passive checker of Python programs" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pyflakes-2.4.0-py2.py3-none-any.whl", hash = "sha256:3bb3a3f256f4b7968c9c788781e4ff07dce46bdf12339dcda61053375426ee2e"}, + {file = "pyflakes-2.4.0.tar.gz", hash = "sha256:05a85c2872edf37a4ed30b0cce2f6093e1d0581f8c19d7393122da7e25b2b24c"}, +] [[package]] name = "pyparsing" version = "3.0.7" description = "Python parsing module" -category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "pyparsing-3.0.7-py3-none-any.whl", hash = "sha256:a6c06a88f252e6c322f65faf8f418b16213b51bdfaece0524c1c1bc30c63c484"}, + {file = "pyparsing-3.0.7.tar.gz", hash = "sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea"}, +] [package.extras] diagrams = ["jinja2", "railroad-diagrams"] @@ -194,9 +253,12 @@ diagrams = ["jinja2", "railroad-diagrams"] name = "pytest" version = "7.1.1" description = "pytest: simple powerful testing with Python" -category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pytest-7.1.1-py3-none-any.whl", hash = "sha256:92f723789a8fdd7180b6b06483874feca4c48a5c76968e03bb3e7f806a1869ea"}, + {file = "pytest-7.1.1.tar.gz", hash = "sha256:841132caef6b1ad17a9afde46dc4f6cfa59a05f9555aae5151f73bdf2820ca63"}, +] [package.dependencies] atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} @@ -215,9 +277,12 @@ testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2. name = "pytest-flake8-path" version = "1.2.0" description = "A pytest fixture for testing flake8 plugins." -category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pytest-flake8-path-1.2.0.tar.gz", hash = "sha256:74055e7f71d65f137e308f9d0b516f1de06997d988fab938edaf3a71f4d24d88"}, + {file = "pytest_flake8_path-1.2.0-py3-none-any.whl", hash = "sha256:cc9252310fb42e8530447aeacd4adf087e24f90b2cca6daeebf04e33d2b492ab"}, +] [package.dependencies] flake8 = "*" @@ -225,43 +290,109 @@ pytest = "*" [[package]] name = "pyyaml" -version = "6.0" +version = "6.0.2" description = "YAML parser and emitter for Python" -category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, +] [[package]] name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] [[package]] name = "toml" version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" -category = "dev" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] [[package]] name = "tomli" version = "2.0.1" description = "A lil' TOML parser" -category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] [[package]] name = "virtualenv" version = "20.14.0" description = "Virtual Python Environment builder" -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +files = [ + {file = "virtualenv-20.14.0-py2.py3-none-any.whl", hash = "sha256:1e8588f35e8b42c6ec6841a13c5e88239de1e6e4e4cedfd3916b306dc826ec66"}, + {file = "virtualenv-20.14.0.tar.gz", hash = "sha256:8e5b402037287126e81ccde9432b95a8be5b19d36584f64957060a3488c11ca8"}, +] [package.dependencies] distlib = ">=0.3.1,<1" @@ -271,146 +402,9 @@ six = ">=1.9.0,<2" [package.extras] docs = ["proselint (>=0.10.2)", "sphinx (>=3)", "sphinx-argparse (>=0.2.5)", "sphinx-rtd-theme (>=0.4.3)", "towncrier (>=21.3)"] -testing = ["coverage (>=4)", "coverage-enable-subprocess (>=1)", "flaky (>=3)", "pytest (>=4)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.1)", "pytest-mock (>=2)", "pytest-randomly (>=1)", "pytest-timeout (>=1)", "packaging (>=20.0)"] +testing = ["coverage (>=4)", "coverage-enable-subprocess (>=1)", "flaky (>=3)", "packaging (>=20.0)", "pytest (>=4)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.1)", "pytest-mock (>=2)", "pytest-randomly (>=1)", "pytest-timeout (>=1)"] [metadata] -lock-version = "1.1" +lock-version = "2.0" python-versions = ">=3.8" content-hash = "4472f5a51c20e5c93b32ffea16505101c345786e8bc26a6115d75c318d2e19c5" - -[metadata.files] -atomicwrites = [ - {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"}, - {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, -] -attrs = [ - {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, - {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, -] -cfgv = [ - {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"}, - {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"}, -] -colorama = [ - {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, - {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, -] -distlib = [ - {file = "distlib-0.3.4-py2.py3-none-any.whl", hash = "sha256:6564fe0a8f51e734df6333d08b8b94d4ea8ee6b99b5ed50613f731fd4089f34b"}, - {file = "distlib-0.3.4.zip", hash = "sha256:e4b58818180336dc9c529bfb9a0b58728ffc09ad92027a3f30b7cd91e3458579"}, -] -filelock = [ - {file = "filelock-3.6.0-py3-none-any.whl", hash = "sha256:f8314284bfffbdcfa0ff3d7992b023d4c628ced6feb957351d4c48d059f56bc0"}, - {file = "filelock-3.6.0.tar.gz", hash = "sha256:9cd540a9352e432c7246a48fe4e8712b10acb1df2ad1f30e8c070b82ae1fed85"}, -] -flake8 = [ - {file = "flake8-4.0.1-py2.py3-none-any.whl", hash = "sha256:479b1304f72536a55948cb40a32dce8bb0ffe3501e26eaf292c7e60eb5e0428d"}, - {file = "flake8-4.0.1.tar.gz", hash = "sha256:806e034dda44114815e23c16ef92f95c91e4c71100ff52813adf7132a6ad870d"}, -] -identify = [ - {file = "identify-2.4.12-py2.py3-none-any.whl", hash = "sha256:5f06b14366bd1facb88b00540a1de05b69b310cbc2654db3c7e07fa3a4339323"}, - {file = "identify-2.4.12.tar.gz", hash = "sha256:3f3244a559290e7d3deb9e9adc7b33594c1bc85a9dd82e0f1be519bf12a1ec17"}, -] -iniconfig = [ - {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, - {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, -] -mccabe = [ - {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, - {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, -] -nodeenv = [ - {file = "nodeenv-1.6.0-py2.py3-none-any.whl", hash = "sha256:621e6b7076565ddcacd2db0294c0381e01fd28945ab36bcf00f41c5daf63bef7"}, - {file = "nodeenv-1.6.0.tar.gz", hash = "sha256:3ef13ff90291ba2a4a7a4ff9a979b63ffdd00a464dbe04acf0ea6471517a4c2b"}, -] -packaging = [ - {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, - {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, -] -platformdirs = [ - {file = "platformdirs-2.5.1-py3-none-any.whl", hash = "sha256:bcae7cab893c2d310a711b70b24efb93334febe65f8de776ee320b517471e227"}, - {file = "platformdirs-2.5.1.tar.gz", hash = "sha256:7535e70dfa32e84d4b34996ea99c5e432fa29a708d0f4e394bbcb2a8faa4f16d"}, -] -pluggy = [ - {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, - {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, -] -pre-commit = [ - {file = "pre_commit-2.17.0-py2.py3-none-any.whl", hash = "sha256:725fa7459782d7bec5ead072810e47351de01709be838c2ce1726b9591dad616"}, - {file = "pre_commit-2.17.0.tar.gz", hash = "sha256:c1a8040ff15ad3d648c70cc3e55b93e4d2d5b687320955505587fd79bbaed06a"}, -] -py = [ - {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, - {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, -] -pycodestyle = [ - {file = "pycodestyle-2.8.0-py2.py3-none-any.whl", hash = "sha256:720f8b39dde8b293825e7ff02c475f3077124006db4f440dcbc9a20b76548a20"}, - {file = "pycodestyle-2.8.0.tar.gz", hash = "sha256:eddd5847ef438ea1c7870ca7eb78a9d47ce0cdb4851a5523949f2601d0cbbe7f"}, -] -pyflakes = [ - {file = "pyflakes-2.4.0-py2.py3-none-any.whl", hash = "sha256:3bb3a3f256f4b7968c9c788781e4ff07dce46bdf12339dcda61053375426ee2e"}, - {file = "pyflakes-2.4.0.tar.gz", hash = "sha256:05a85c2872edf37a4ed30b0cce2f6093e1d0581f8c19d7393122da7e25b2b24c"}, -] -pyparsing = [ - {file = "pyparsing-3.0.7-py3-none-any.whl", hash = "sha256:a6c06a88f252e6c322f65faf8f418b16213b51bdfaece0524c1c1bc30c63c484"}, - {file = "pyparsing-3.0.7.tar.gz", hash = "sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea"}, -] -pytest = [ - {file = "pytest-7.1.1-py3-none-any.whl", hash = "sha256:92f723789a8fdd7180b6b06483874feca4c48a5c76968e03bb3e7f806a1869ea"}, - {file = "pytest-7.1.1.tar.gz", hash = "sha256:841132caef6b1ad17a9afde46dc4f6cfa59a05f9555aae5151f73bdf2820ca63"}, -] -pytest-flake8-path = [ - {file = "pytest-flake8-path-1.2.0.tar.gz", hash = "sha256:74055e7f71d65f137e308f9d0b516f1de06997d988fab938edaf3a71f4d24d88"}, - {file = "pytest_flake8_path-1.2.0-py3-none-any.whl", hash = "sha256:cc9252310fb42e8530447aeacd4adf087e24f90b2cca6daeebf04e33d2b492ab"}, -] -pyyaml = [ - {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, - {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, - {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, - {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, - {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, - {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, - {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, - {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, - {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, - {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, - {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, - {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, - {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, - {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, - {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, - {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, -] -six = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] -toml = [ - {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, - {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, -] -tomli = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, -] -virtualenv = [ - {file = "virtualenv-20.14.0-py2.py3-none-any.whl", hash = "sha256:1e8588f35e8b42c6ec6841a13c5e88239de1e6e4e4cedfd3916b306dc826ec66"}, - {file = "virtualenv-20.14.0.tar.gz", hash = "sha256:8e5b402037287126e81ccde9432b95a8be5b19d36584f64957060a3488c11ca8"}, -] From 8ec09551a4a54ee20b093588a2c1211f53f43033 Mon Sep 17 00:00:00 2001 From: Mateusz Krainski Date: Fri, 16 Aug 2024 16:01:31 -0400 Subject: [PATCH 2/5] Rename whitelist to allowlist --- README.rst | 3 ++- flake8_spellcheck/__init__.py | 29 ++++++++++++++++++++--------- tests/test_flake8_spellcheck.py | 30 +++++++++++++++--------------- 3 files changed, 37 insertions(+), 25 deletions(-) diff --git a/README.rst b/README.rst index 7917b66..442fbe5 100644 --- a/README.rst +++ b/README.rst @@ -6,7 +6,7 @@ Flake8 Spellcheck Flake8 Plugin that spellchecks variables, functions, classes and other bits of your python code. -You can whitelist words that are specific to your project simply by adding them to ``whitelist.txt`` +You can create an allow-list for words that are specific to your project simply by adding them a ``.spellcheck-allowlist`` file in the root of your project directory. Each word you add should be separated by a newline. Spelling is assumed to be in en_US. @@ -89,6 +89,7 @@ Development ----------- * Install `poetry `__ +* Install `golang `__ (required by some of our pre-commit hooks) * Run ``poetry install`` * Run ``poetry run pre-commit install --install-hooks`` diff --git a/flake8_spellcheck/__init__.py b/flake8_spellcheck/__init__.py index da509bf..bbb2d4f 100644 --- a/flake8_spellcheck/__init__.py +++ b/flake8_spellcheck/__init__.py @@ -131,11 +131,15 @@ def load_dictionaries(cls, options: Namespace) -> Tuple[FrozenSet[str], FrozenSe data = dictionary_path.read_text() words |= {w.lower() for w in data.split("\n")} - if os.path.exists(options.whitelist): - with open(options.whitelist) as fp: - whitelist = fp.read() - whitelist_data = {w.lower() for w in whitelist.split("\n")} - words |= whitelist_data + if os.path.exists(options.spellcheck_allowlist_file): + with open(options.spellcheck_allowlist_file) as fp: + allowlist = fp.read() + allowlist_data_from_file = {w.lower() for w in allowlist.split("\n")} + words |= allowlist_data_from_file + + if options.spellcheck_allowlist is not None: + allowlist_data = {w.lower() for w in options.spellcheck_allowlist} + words |= allowlist_data # Hacky way of getting dictionary with symbols stripped no_symbols = set() @@ -149,16 +153,23 @@ def load_dictionaries(cls, options: Namespace) -> Tuple[FrozenSet[str], FrozenSe @classmethod def add_options(cls, parser: OptionManager) -> None: parser.add_option( - "--whitelist", - help="Path to text file containing whitelisted words", - default="whitelist.txt", + "--spellcheck-allowlist-file", + help="Path to text file containing allowed words", + default=".spellcheck-allowlist", + parse_from_config=True, + ) + parser.add_option( + "--spellcheck-allowlist", + help="Comma separated list of words to allow", + default=None, + comma_separated_list=True, parse_from_config=True, ) parser.add_option( "--dictionaries", # Unfortunately optparse does not support nargs="+" so we # need to use a command separated list to work round it - help="Command separated list of dictionaries to enable", + help="Comma separated list of dictionaries to enable", default="en_US,python,technical", comma_separated_list=True, parse_from_config=True, diff --git a/tests/test_flake8_spellcheck.py b/tests/test_flake8_spellcheck.py index e0e2aa0..6929b38 100644 --- a/tests/test_flake8_spellcheck.py +++ b/tests/test_flake8_spellcheck.py @@ -96,7 +96,7 @@ def test_fail(self, flake8_path, comment_value, expected_out_lines): assert result.out_lines == expected_out_lines @pytest.mark.parametrize( - ["comment_value", "whitelist_value"], + ["comment_value", "allowlist_value"], [ # For ASCII character test ("""don't "make" 'bad' comments""", ""), @@ -104,7 +104,7 @@ def test_fail(self, flake8_path, comment_value, expected_out_lines): ("""árvíztűrő tükörfúrógép""", "árvíztűrő\ntükörfúrógép"), ], ) - def test_pass(self, flake8_path, comment_value, whitelist_value): + def test_pass(self, flake8_path, comment_value, allowlist_value): (flake8_path / "example.py").write_text( dedent( f""" @@ -113,7 +113,7 @@ def test_pass(self, flake8_path, comment_value, whitelist_value): """ ) ) - (flake8_path / "whitelist.txt").write_text(whitelist_value) + (flake8_path / ".spellcheck-allowlist").write_text(allowlist_value) result = flake8_path.run_flake8() assert result.out_lines == [] @@ -256,7 +256,7 @@ def {function_name}(a, b, c): assert result.out_lines == expected_out_lines @pytest.mark.parametrize( - ["function_name", "whitelist_value"], + ["function_name", "allowlist_value"], [ # For ASCII character test ("misspelled_function", ""), @@ -264,7 +264,7 @@ def {function_name}(a, b, c): ("árvíztűrő_tükörfúrógép_function", "árvíztűrő\ntükörfúrógép"), ], ) - def test_pass(self, flake8_path, function_name, whitelist_value): + def test_pass(self, flake8_path, function_name, allowlist_value): (flake8_path / "example.py").write_text( dedent( f""" @@ -273,7 +273,7 @@ def {function_name}(a, b, c): """ ) ) - (flake8_path / "whitelist.txt").write_text(whitelist_value) + (flake8_path / ".spellcheck-allowlist").write_text(allowlist_value) result = flake8_path.run_flake8() assert result.exit_code == 0 assert result.out_lines == [] @@ -343,7 +343,7 @@ def test_fail(self, flake8_path, source_code, expected_out_lines): assert result.out_lines == expected_out_lines @pytest.mark.parametrize( - ["source_code", "whitelist_value"], + ["source_code", "allowlist_value"], [ # For ASCII character test ( @@ -365,9 +365,9 @@ def test_fail(self, flake8_path, source_code, expected_out_lines): ), ], ) - def test_pass(self, flake8_path, source_code, whitelist_value): + def test_pass(self, flake8_path, source_code, allowlist_value): (flake8_path / "example.py").write_text(dedent(source_code)) - (flake8_path / "whitelist.txt").write_text(whitelist_value) + (flake8_path / ".spellcheck-allowlist").write_text(allowlist_value) result = flake8_path.run_flake8() assert result.exit_code == 0 assert result.out_lines == [] @@ -436,7 +436,7 @@ class {class_name}: assert result.out_lines == expected_out_lines @pytest.mark.parametrize( - ["class_name", "whitelist_value"], + ["class_name", "allowlist_value"], [ # For ASCII character test ("FakeClassName", ""), @@ -444,7 +444,7 @@ class {class_name}: ("ÁrvíztűrőTükörfúrógépClassName", "árvíztűrő\ntükörfúrógép"), ], ) - def test_pass(self, flake8_path, class_name, whitelist_value): + def test_pass(self, flake8_path, class_name, allowlist_value): (flake8_path / "example.py").write_text( dedent( f""" @@ -453,7 +453,7 @@ class {class_name}: """ ) ) - (flake8_path / "whitelist.txt").write_text(whitelist_value) + (flake8_path / ".spellcheck-allowlist").write_text(allowlist_value) result = flake8_path.run_flake8() assert result.out_lines == [] @@ -513,7 +513,7 @@ def {function_name}(s): assert result.out_lines == expected_out_lines @pytest.mark.parametrize( - ["function_name", "whitelist_value"], + ["function_name", "allowlist_value"], [ # For ASCII character test ("_doSomething", ""), @@ -521,7 +521,7 @@ def {function_name}(s): ("_ÁrvíztűrőTükörfúrógépFunction", "árvíztűrő\ntükörfúrógép"), ], ) - def test_pass(self, flake8_path, function_name, whitelist_value): + def test_pass(self, flake8_path, function_name, allowlist_value): (flake8_path / "example.py").write_text( dedent( f""" @@ -530,7 +530,7 @@ def {function_name}(s): """ ) ) - (flake8_path / "whitelist.txt").write_text(whitelist_value) + (flake8_path / ".spellcheck-allowlist").write_text(allowlist_value) result = flake8_path.run_flake8() assert result.exit_code == 0 assert result.out_lines == [] From a6cb01a572a3956ae276b31b09d930f1896cbdf2 Mon Sep 17 00:00:00 2001 From: Mateusz Krainski Date: Fri, 16 Aug 2024 16:10:16 -0400 Subject: [PATCH 3/5] Update tests to use new naming --- tests/test_flake8_spellcheck.py | 125 ++++++++++++++++++++++++++++++-- 1 file changed, 120 insertions(+), 5 deletions(-) diff --git a/tests/test_flake8_spellcheck.py b/tests/test_flake8_spellcheck.py index 6929b38..b6f3546 100644 --- a/tests/test_flake8_spellcheck.py +++ b/tests/test_flake8_spellcheck.py @@ -104,7 +104,7 @@ def test_fail(self, flake8_path, comment_value, expected_out_lines): ("""árvíztűrő tükörfúrógép""", "árvíztűrő\ntükörfúrógép"), ], ) - def test_pass(self, flake8_path, comment_value, allowlist_value): + def test_pass_allowlist_file(self, flake8_path, comment_value, allowlist_value): (flake8_path / "example.py").write_text( dedent( f""" @@ -117,6 +117,27 @@ def test_pass(self, flake8_path, comment_value, allowlist_value): result = flake8_path.run_flake8() assert result.out_lines == [] + @pytest.mark.parametrize( + ["comment_value", "allowlist_value"], + [ + # For ASCII character test + ("""don't "make" 'bad' comments""", ""), + # For unicode character test + ("""árvíztűrő tükörfúrógép""", "árvíztűrő,tükörfúrógép"), + ], + ) + def test_pass_allowlist_param(self, flake8_path, comment_value, allowlist_value): + (flake8_path / "example.py").write_text( + dedent( + f""" + # {comment_value} + foo = "bar" + """ + ) + ) + result = flake8_path.run_flake8([f"--spellcheck-allowlist={allowlist_value}"]) + assert result.out_lines == [] + @pytest.mark.parametrize( ["comment_value"], [ @@ -264,7 +285,7 @@ def {function_name}(a, b, c): ("árvíztűrő_tükörfúrógép_function", "árvíztűrő\ntükörfúrógép"), ], ) - def test_pass(self, flake8_path, function_name, allowlist_value): + def test_pass_allowlist_file(self, flake8_path, function_name, allowlist_value): (flake8_path / "example.py").write_text( dedent( f""" @@ -278,6 +299,28 @@ def {function_name}(a, b, c): assert result.exit_code == 0 assert result.out_lines == [] + @pytest.mark.parametrize( + ["function_name", "allowlist_value"], + [ + # For ASCII character test + ("misspelled_function", ""), + # For unicode character test + ("árvíztűrő_tükörfúrógép_function", "árvíztűrő,tükörfúrógép"), + ], + ) + def test_pass_allowlist_param(self, flake8_path, function_name, allowlist_value): + (flake8_path / "example.py").write_text( + dedent( + f""" + def {function_name}(a, b, c): + pass + """ + ) + ) + result = flake8_path.run_flake8([f"--spellcheck-allowlist={allowlist_value}"]) + assert result.exit_code == 0 + assert result.out_lines == [] + @pytest.mark.parametrize( ["function_name"], [ @@ -365,13 +408,42 @@ def test_fail(self, flake8_path, source_code, expected_out_lines): ), ], ) - def test_pass(self, flake8_path, source_code, allowlist_value): + def test_pass_allowlist_file(self, flake8_path, source_code, allowlist_value): (flake8_path / "example.py").write_text(dedent(source_code)) (flake8_path / ".spellcheck-allowlist").write_text(allowlist_value) result = flake8_path.run_flake8() assert result.exit_code == 0 assert result.out_lines == [] + @pytest.mark.parametrize( + ["source_code", "allowlist_value"], + [ + # For ASCII character test + ( + """ + my_variable_name = "something" + SOMETHING = "SOMETHING" + SOMETHING_ELSE = "SOMETHING" + """, + "", + ), + # For unicode character test + ( + """ + árvíztűrő_tükörfúrógép = "flood-resistant mirror drill" + ÁRVÍZTŰRŐ = "FLOOD-RESISTANT" + ÁRVÍZTŰRŐ_TÜKÖRFÚRÓGÉP = "FLOOD-RESISTANT MIRROR DRILL" + """, + "árvíztűrő,tükörfúrógép", + ), + ], + ) + def test_pass_allowlist_param(self, flake8_path, source_code, allowlist_value): + (flake8_path / "example.py").write_text(dedent(source_code)) + result = flake8_path.run_flake8([f"--spellcheck-allowlist={allowlist_value}"]) + assert result.exit_code == 0 + assert result.out_lines == [] + @pytest.mark.parametrize( ["source_code"], [ @@ -444,7 +516,7 @@ class {class_name}: ("ÁrvíztűrőTükörfúrógépClassName", "árvíztűrő\ntükörfúrógép"), ], ) - def test_pass(self, flake8_path, class_name, allowlist_value): + def test_pass_allowlist_file(self, flake8_path, class_name, allowlist_value): (flake8_path / "example.py").write_text( dedent( f""" @@ -457,6 +529,27 @@ class {class_name}: result = flake8_path.run_flake8() assert result.out_lines == [] + @pytest.mark.parametrize( + ["class_name", "allowlist_value"], + [ + # For ASCII character test + ("FakeClassName", ""), + # For unicode character test + ("ÁrvíztűrőTükörfúrógépClassName", "árvíztűrő,tükörfúrógép"), + ], + ) + def test_pass_allowlist_param(self, flake8_path, class_name, allowlist_value): + (flake8_path / "example.py").write_text( + dedent( + f""" + class {class_name}: + pass + """ + ) + ) + result = flake8_path.run_flake8([f"--spellcheck-allowlist={allowlist_value}"]) + assert result.out_lines == [] + @pytest.mark.parametrize( ["class_name"], [ @@ -521,7 +614,7 @@ def {function_name}(s): ("_ÁrvíztűrőTükörfúrógépFunction", "árvíztűrő\ntükörfúrógép"), ], ) - def test_pass(self, flake8_path, function_name, allowlist_value): + def test_pass_allowlist_file(self, flake8_path, function_name, allowlist_value): (flake8_path / "example.py").write_text( dedent( f""" @@ -535,6 +628,28 @@ def {function_name}(s): assert result.exit_code == 0 assert result.out_lines == [] + @pytest.mark.parametrize( + ["function_name", "allowlist_value"], + [ + # For ASCII character test + ("_doSomething", ""), + # For unicode character test + ("_ÁrvíztűrőTükörfúrógépFunction", "árvíztűrő,tükörfúrógép"), + ], + ) + def test_pass_allowlist_param(self, flake8_path, function_name, allowlist_value): + (flake8_path / "example.py").write_text( + dedent( + f""" + def {function_name}(s): + pass + """ + ) + ) + result = flake8_path.run_flake8([f"--spellcheck-allowlist={allowlist_value}"]) + assert result.exit_code == 0 + assert result.out_lines == [] + class TestOptionalDictionaries: def test_fail(self, flake8_path): From 2cada2612e30642a51fe0e73a74920f55bb97748 Mon Sep 17 00:00:00 2001 From: Mateusz Krainski Date: Fri, 16 Aug 2024 16:22:07 -0400 Subject: [PATCH 4/5] Update readme Signed-off-by: Mateusz Krainski --- whitelist.txt => .spellcheck-allowlist | 0 README.rst | 32 ++++++++++++++++++++++++-- flake8_spellcheck/technical.txt | 1 + tests/test_flake8_spellcheck.py | 10 ++++---- 4 files changed, 36 insertions(+), 7 deletions(-) rename whitelist.txt => .spellcheck-allowlist (100%) diff --git a/whitelist.txt b/.spellcheck-allowlist similarity index 100% rename from whitelist.txt rename to .spellcheck-allowlist diff --git a/README.rst b/README.rst index 442fbe5..4c4d29a 100644 --- a/README.rst +++ b/README.rst @@ -6,8 +6,8 @@ Flake8 Spellcheck Flake8 Plugin that spellchecks variables, functions, classes and other bits of your python code. -You can create an allow-list for words that are specific to your project simply by adding them a ``.spellcheck-allowlist`` file -in the root of your project directory. Each word you add should be separated by a newline. +You can create an allowlist for words that are specific to your project simply by adding them a ``.spellcheck-allowlist`` file +in the root of your project directory. Each word you add should be separated by a newline. Spelling is assumed to be in en_US. @@ -61,6 +61,34 @@ The above configuration would only spellcheck comments The above configuration would only spellcheck names +Specify Allowlist +--------------- + +You can specify a list of allowed words - spellcheck will then not raise errors when those +words are encountered. You can define the list of allowed words either as a file or as a +configuration parameter. + +By default, spellcheck will try to load a `.spellcheck-allowlist` file in the root of your +project. You can override the file name using the `--spellcheck-allowlist-file` CLI +parameter, or in your flake8 configuration (e.g. in your ``.flake8`` file): + +.. code-block:: ini + + [flake8] + spellcheck-allowlist-file = your-allowlist-file + +You can also define the allowlist directly using the `--spellcheck-allowlist` CLI parameter +(this takes a comma-separated list of words to allow) or using the flake8 configuration +(e.g. in your ``.flake8`` file): + +.. code-block:: ini + + [flake8] + spellcheck-allowlist = ["your", "allowed", "words"] + + + + Ignore Rules ------------ diff --git a/flake8_spellcheck/technical.txt b/flake8_spellcheck/technical.txt index 4e470f7..2d1fa67 100644 --- a/flake8_spellcheck/technical.txt +++ b/flake8_spellcheck/technical.txt @@ -1,4 +1,5 @@ adb +allowlist auth autocomplete autofill diff --git a/tests/test_flake8_spellcheck.py b/tests/test_flake8_spellcheck.py index b6f3546..8845706 100644 --- a/tests/test_flake8_spellcheck.py +++ b/tests/test_flake8_spellcheck.py @@ -126,7 +126,7 @@ def test_pass_allowlist_file(self, flake8_path, comment_value, allowlist_value): ("""árvíztűrő tükörfúrógép""", "árvíztűrő,tükörfúrógép"), ], ) - def test_pass_allowlist_param(self, flake8_path, comment_value, allowlist_value): + def test_pass_allowlist_parameter(self, flake8_path, comment_value, allowlist_value): (flake8_path / "example.py").write_text( dedent( f""" @@ -308,7 +308,7 @@ def {function_name}(a, b, c): ("árvíztűrő_tükörfúrógép_function", "árvíztűrő,tükörfúrógép"), ], ) - def test_pass_allowlist_param(self, flake8_path, function_name, allowlist_value): + def test_pass_allowlist_parameter(self, flake8_path, function_name, allowlist_value): (flake8_path / "example.py").write_text( dedent( f""" @@ -438,7 +438,7 @@ def test_pass_allowlist_file(self, flake8_path, source_code, allowlist_value): ), ], ) - def test_pass_allowlist_param(self, flake8_path, source_code, allowlist_value): + def test_pass_allowlist_parameter(self, flake8_path, source_code, allowlist_value): (flake8_path / "example.py").write_text(dedent(source_code)) result = flake8_path.run_flake8([f"--spellcheck-allowlist={allowlist_value}"]) assert result.exit_code == 0 @@ -538,7 +538,7 @@ class {class_name}: ("ÁrvíztűrőTükörfúrógépClassName", "árvíztűrő,tükörfúrógép"), ], ) - def test_pass_allowlist_param(self, flake8_path, class_name, allowlist_value): + def test_pass_allowlist_parameter(self, flake8_path, class_name, allowlist_value): (flake8_path / "example.py").write_text( dedent( f""" @@ -637,7 +637,7 @@ def {function_name}(s): ("_ÁrvíztűrőTükörfúrógépFunction", "árvíztűrő,tükörfúrógép"), ], ) - def test_pass_allowlist_param(self, flake8_path, function_name, allowlist_value): + def test_pass_allowlist_parameter(self, flake8_path, function_name, allowlist_value): (flake8_path / "example.py").write_text( dedent( f""" From 722c8f28acd4d97685ccf3f4f984cc517054422b Mon Sep 17 00:00:00 2001 From: Mateusz Krainski Date: Fri, 16 Aug 2024 16:23:17 -0400 Subject: [PATCH 5/5] Fix flake8 configuration mistake --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 4c4d29a..aee5763 100644 --- a/README.rst +++ b/README.rst @@ -84,7 +84,7 @@ You can also define the allowlist directly using the `--spellcheck-allowlist` CL .. code-block:: ini [flake8] - spellcheck-allowlist = ["your", "allowed", "words"] + spellcheck-allowlist = your, allowed, words