From e6ce041a8c4e8cebeb3f8094c7bdd7d2ba118548 Mon Sep 17 00:00:00 2001 From: Chris Kilding <590569+chriskilding@users.noreply.github.com> Date: Mon, 20 Jun 2022 13:27:37 +0100 Subject: [PATCH] Run linter and tests in CI build (#48) * Run linter and tests in CI build * Fix linter invocation and upgrade its dependency * Parallelize MyPy and Black checks * Try Python 3.10 to see if generics error disappears * Bump actions/setup-python to v4 * Remove poetry cache * Move poetry install to after setup-python * Tweak * Try a poetry env use fix * Try poetry env use one-liner * Tweak * Apply Black formatter * Try without cache: poetry * Set up poetry after python * Try poetry 1.2.0b2 * Reordering * try python 3.9 * alternate poetry install method * Use install-poetry action * Tweak * Just install libgeos-dev * Add libproj-dev * Replicate * Try generics again * Reformat * Add types-requests and types-pillow stubs to satisfy mypy --- .github/workflows/test.yml | 75 ++++++++++-- poetry.lock | 237 ++++++++++++++----------------------- pyproject.toml | 9 +- src/airport_data.py | 14 +-- src/config.py | 3 +- src/dem.py | 6 +- src/dsf.py | 4 +- src/filenames.py | 4 +- src/geo.py | 2 +- src/gui.py | 24 ++-- src/imagery.py | 22 ++-- src/mask.py | 8 +- src/osm.py | 10 +- src/vector.py | 8 +- src/vector_map.py | 4 +- 15 files changed, 213 insertions(+), 217 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c873059c..5c8a45e2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,4 +1,4 @@ -name: Test +name: Build on: [push, pull_request, workflow_dispatch] @@ -6,17 +6,66 @@ permissions: contents: read jobs: - build: - runs-on: ubuntu-latest + test: + name: Test + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 - - name: Setup Poetry - run: pipx install poetry - - name: Set up Python - uses: actions/setup-python@v3 - with: - cache: poetry - python-version: "3.9" - - name: Install dependencies - run: poetry install -# TODO run tests + - uses: actions/setup-python@v4 + with: + python-version: "3.10" + - uses: snok/install-poetry@v1 + - name: Install GEOS + uses: lyricwulf/abc@v1 + with: + macos: geos + linux: libgeos-dev + - name: Install PROJ + uses: lyricwulf/abc@v1 + with: + macos: proj + linux: proj-bin libproj-dev + - run: poetry install + - run: poetry run pytest + black: + name: Black + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: "3.10" + - uses: snok/install-poetry@v1 + - name: Install GEOS + uses: lyricwulf/abc@v1 + with: + macos: geos + linux: libgeos-dev + - name: Install PROJ + uses: lyricwulf/abc@v1 + with: + macos: proj + linux: proj-bin libproj-dev + - run: poetry install + - run: poetry run black --check src + mypy: + name: MyPy + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: "3.10" + - uses: snok/install-poetry@v1 + - name: Install GEOS + uses: lyricwulf/abc@v1 + with: + macos: geos + linux: libgeos-dev + - name: Install PROJ + uses: lyricwulf/abc@v1 + with: + macos: proj + linux: proj-bin libproj-dev + - run: poetry install + - run: poetry run mypy diff --git a/poetry.lock b/poetry.lock index 641cf2df..63bceb18 100644 --- a/poetry.lock +++ b/poetry.lock @@ -8,7 +8,6 @@ python-versions = ">=3.6.2" [package.dependencies] lazy-object-proxy = ">=1.4.0" -typing-extensions = {version = ">=3.10", markers = "python_version < \"3.10\""} wrapt = ">=1.11,<2" [[package]] @@ -35,31 +34,28 @@ tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (> [[package]] name = "black" -version = "21.9b0" +version = "22.3.0" description = "The uncompromising code formatter." category = "dev" optional = false python-versions = ">=3.6.2" [package.dependencies] -click = ">=7.1.2" +click = ">=8.0.0" mypy-extensions = ">=0.4.3" -pathspec = ">=0.9.0,<1" +pathspec = ">=0.9.0" platformdirs = ">=2" -regex = ">=2020.1.8" -tomli = ">=0.2.6,<2.0.0" -typing-extensions = ">=3.10.0.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} [package.extras] colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.6.0)", "aiohttp-cors (>=0.4.0)"] +d = ["aiohttp (>=3.7.4)"] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] -python2 = ["typed-ast (>=1.4.2)"] uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "certifi" -version = "2022.5.18.1" +version = "2022.6.15" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false @@ -89,7 +85,7 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} [[package]] name = "colorama" -version = "0.4.4" +version = "0.4.5" description = "Cross-platform colored terminal text." category = "dev" optional = false @@ -375,22 +371,21 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "pylint" -version = "2.14.1" +version = "2.14.3" description = "python code static checker" category = "dev" optional = false python-versions = ">=3.7.2" [package.dependencies] -astroid = ">=2.11.5,<=2.12.0-dev0" -colorama = {version = "*", markers = "sys_platform == \"win32\""} +astroid = ">=2.11.6,<=2.12.0-dev0" +colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} dill = ">=0.2" isort = ">=4.2.5,<6" mccabe = ">=0.6,<0.8" platformdirs = ">=2.2.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} tomlkit = ">=0.10.1" -typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} [package.extras] spelling = ["pyenchant (>=3.2,<4.0)"] @@ -513,14 +508,6 @@ category = "dev" optional = false python-versions = ">=3.6" -[[package]] -name = "regex" -version = "2022.6.2" -description = "Alternative regular expression module, to replace re." -category = "dev" -optional = false -python-versions = ">=3.6" - [[package]] name = "requests" version = "2.26.0" @@ -552,11 +539,11 @@ astroid = ">=1.4" [[package]] name = "rtree" -version = "0.9.7" +version = "1.0.0" description = "R-Tree spatial index for Python GIS" category = "main" optional = false -python-versions = "*" +python-versions = ">=3.7" [[package]] name = "setoptconf-tmp" @@ -600,11 +587,11 @@ python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" [[package]] name = "tomli" -version = "1.2.3" +version = "2.0.1" description = "A lil' TOML parser" category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [[package]] name = "tomlkit" @@ -614,9 +601,17 @@ category = "dev" optional = false python-versions = ">=3.6,<4.0" +[[package]] +name = "types-pillow" +version = "8.3.2" +description = "Typing stubs for Pillow" +category = "dev" +optional = false +python-versions = "*" + [[package]] name = "types-requests" -version = "2.25.11" +version = "2.26.0" description = "Typing stubs for requests" category = "dev" optional = false @@ -664,8 +659,8 @@ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" [metadata] lock-version = "1.1" -python-versions = "~3.9" -content-hash = "d2df838793438e496acb7ee78f4c28e28a7a7239600586bf3f17d40dd58d9658" +python-versions = "~3.10" +content-hash = "27e684a9646c51aab04e1ec0e255107715369b0a7adcc46f33cbc89679b90752" [metadata.files] astroid = [ @@ -681,12 +676,33 @@ attrs = [ {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, ] black = [ - {file = "black-21.9b0-py3-none-any.whl", hash = "sha256:380f1b5da05e5a1429225676655dddb96f5ae8c75bdf91e53d798871b902a115"}, - {file = "black-21.9b0.tar.gz", hash = "sha256:7de4cfc7eb6b710de325712d40125689101d21d25283eed7e9998722cf10eb91"}, + {file = "black-22.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2497f9c2386572e28921fa8bec7be3e51de6801f7459dffd6e62492531c47e09"}, + {file = "black-22.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5795a0375eb87bfe902e80e0c8cfaedf8af4d49694d69161e5bd3206c18618bb"}, + {file = "black-22.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e3556168e2e5c49629f7b0f377070240bd5511e45e25a4497bb0073d9dda776a"}, + {file = "black-22.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67c8301ec94e3bcc8906740fe071391bce40a862b7be0b86fb5382beefecd968"}, + {file = "black-22.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:fd57160949179ec517d32ac2ac898b5f20d68ed1a9c977346efbac9c2f1e779d"}, + {file = "black-22.3.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cc1e1de68c8e5444e8f94c3670bb48a2beef0e91dddfd4fcc29595ebd90bb9ce"}, + {file = "black-22.3.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2fc92002d44746d3e7db7cf9313cf4452f43e9ea77a2c939defce3b10b5c82"}, + {file = "black-22.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:a6342964b43a99dbc72f72812bf88cad8f0217ae9acb47c0d4f141a6416d2d7b"}, + {file = "black-22.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:328efc0cc70ccb23429d6be184a15ce613f676bdfc85e5fe8ea2a9354b4e9015"}, + {file = "black-22.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06f9d8846f2340dfac80ceb20200ea5d1b3f181dd0556b47af4e8e0b24fa0a6b"}, + {file = "black-22.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:ad4efa5fad66b903b4a5f96d91461d90b9507a812b3c5de657d544215bb7877a"}, + {file = "black-22.3.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8477ec6bbfe0312c128e74644ac8a02ca06bcdb8982d4ee06f209be28cdf163"}, + {file = "black-22.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:637a4014c63fbf42a692d22b55d8ad6968a946b4a6ebc385c5505d9625b6a464"}, + {file = "black-22.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:863714200ada56cbc366dc9ae5291ceb936573155f8bf8e9de92aef51f3ad0f0"}, + {file = "black-22.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10dbe6e6d2988049b4655b2b739f98785a884d4d6b85bc35133a8fb9a2233176"}, + {file = "black-22.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:cee3e11161dde1b2a33a904b850b0899e0424cc331b7295f2a9698e79f9a69a0"}, + {file = "black-22.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5891ef8abc06576985de8fa88e95ab70641de6c1fca97e2a15820a9b69e51b20"}, + {file = "black-22.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:30d78ba6bf080eeaf0b7b875d924b15cd46fec5fd044ddfbad38c8ea9171043a"}, + {file = "black-22.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ee8f1f7228cce7dffc2b464f07ce769f478968bfb3dd1254a4c2eeed84928aad"}, + {file = "black-22.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ee227b696ca60dd1c507be80a6bc849a5a6ab57ac7352aad1ffec9e8b805f21"}, + {file = "black-22.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:9b542ced1ec0ceeff5b37d69838106a6348e60db7b8fdd245294dc1d26136265"}, + {file = "black-22.3.0-py3-none-any.whl", hash = "sha256:bc58025940a896d7e5356952228b68f793cf5fcb342be703c3a2669a1488cb72"}, + {file = "black-22.3.0.tar.gz", hash = "sha256:35020b8886c022ced9282b51b5a875b6d1ab0c387b31a065b84db7c33085ca79"}, ] certifi = [ - {file = "certifi-2022.5.18.1-py3-none-any.whl", hash = "sha256:f1d53542ee8cbedbe2118b5686372fb33c297fcd6379b050cca0ef13a597382a"}, - {file = "certifi-2022.5.18.1.tar.gz", hash = "sha256:9c5705e395cd70084351dd8ad5c41e65655e08ce46f2ec9cf6c2c08390f71eb7"}, + {file = "certifi-2022.6.15-py3-none-any.whl", hash = "sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412"}, + {file = "certifi-2022.6.15.tar.gz", hash = "sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d"}, ] charset-normalizer = [ {file = "charset-normalizer-2.0.12.tar.gz", hash = "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597"}, @@ -697,8 +713,8 @@ click = [ {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, ] colorama = [ - {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, - {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, + {file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"}, + {file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"}, ] coverage = [ {file = "coverage-6.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f1d5aa2703e1dab4ae6cf416eb0095304f49d004c39e9db1d86f57924f43006b"}, @@ -975,8 +991,8 @@ pyflakes = [ {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"}, ] pylint = [ - {file = "pylint-2.14.1-py3-none-any.whl", hash = "sha256:bb71e6d169506de585edea997e48d9ff20c0dc0e2fbc1d166bad6b640120326b"}, - {file = "pylint-2.14.1.tar.gz", hash = "sha256:549261e0762c3466cc001024c4419c08252cb8c8d40f5c2c6966fea690e7fe2a"}, + {file = "pylint-2.14.3-py3-none-any.whl", hash = "sha256:6757a027e15816be23625b079ebc45464e4c9d9dde0c826d18beee53fe22a2e7"}, + {file = "pylint-2.14.3.tar.gz", hash = "sha256:4e1378f815c63e7e44590d0d339ed6435f5281d0a0cc357d29a86ea0365ef868"}, ] pylint-celery = [ {file = "pylint-celery-0.3.tar.gz", hash = "sha256:41e32094e7408d15c044178ea828dd524beedbdbe6f83f712c5e35bde1de4beb"}, @@ -1067,82 +1083,6 @@ pyyaml = [ {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, ] -regex = [ - {file = "regex-2022.6.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:042d122f9fee3ceb6d7e3067d56557df697d1aad4ff5f64ecce4dc13a90a7c01"}, - {file = "regex-2022.6.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ffef4b30785dc2d1604dfb7cf9fca5dc27cd86d65f7c2a9ec34d6d3ae4565ec2"}, - {file = "regex-2022.6.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0afa6a601acf3c0dc6de4e8d7d8bbce4e82f8542df746226cd35d4a6c15e9456"}, - {file = "regex-2022.6.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a11cbe8eb5fb332ae474895b5ead99392a4ea568bd2a258ab8df883e9c2bf92"}, - {file = "regex-2022.6.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c1f62ee2ba880e221bc950651a1a4b0176083d70a066c83a50ef0cb9b178e12"}, - {file = "regex-2022.6.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5aba3d13c77173e9bfed2c2cea7fc319f11c89a36fcec08755e8fb169cf3b0df"}, - {file = "regex-2022.6.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:249437f7f5b233792234aeeecb14b0aab1566280de42dfc97c26e6f718297d68"}, - {file = "regex-2022.6.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:179410c79fa86ef318d58ace233f95b87b05a1db6dc493fa29404a43f4b215e2"}, - {file = "regex-2022.6.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:5e201b1232d81ca1a7a22ab2f08e1eccad4e111579fd7f3bbf60b21ef4a16cea"}, - {file = "regex-2022.6.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fdecb225d0f1d50d4b26ac423e0032e76d46a788b83b4e299a520717a47d968c"}, - {file = "regex-2022.6.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:be57f9c7b0b423c66c266a26ad143b2c5514997c05dd32ce7ca95c8b209c2288"}, - {file = "regex-2022.6.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ed657a07d8a47ef447224ea00478f1c7095065dfe70a89e7280e5f50a5725131"}, - {file = "regex-2022.6.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:24908aefed23dd065b4a668c0b4ca04d56b7f09d8c8e89636cf6c24e64e67a1e"}, - {file = "regex-2022.6.2-cp310-cp310-win32.whl", hash = "sha256:775694cd0bb2c4accf2f1cdd007381b33ec8b59842736fe61bdbad45f2ac7427"}, - {file = "regex-2022.6.2-cp310-cp310-win_amd64.whl", hash = "sha256:809bbbbbcf8258049b031d80932ba71627d2274029386f0452e9950bcfa2c6e8"}, - {file = "regex-2022.6.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:ecd2b5d983eb0adf2049d41f95205bdc3de4e6cc2350e9c80d4409d3a75229de"}, - {file = "regex-2022.6.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f4c101746a8dac0401abefa716b357c546e61ea2e3d4a564a9db9eac57ccbce"}, - {file = "regex-2022.6.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:166ae7674d0a0e0f8044e7335ba86d0716c9d49465cff1b153f908e0470b8300"}, - {file = "regex-2022.6.2-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c5eac5d8a8ac9ccf00805d02a968a36f5c967db6c7d2b747ab9ed782b3b3a28b"}, - {file = "regex-2022.6.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f57823f35b18d82b201c1b27ce4e55f88e79e81d9ca07b50ce625d33823e1439"}, - {file = "regex-2022.6.2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4d42e3b7b23473729adbf76103e7df75f9167a5a80b1257ca30688352b4bb2dc"}, - {file = "regex-2022.6.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b2932e728bee0a634fe55ee54d598054a5a9ffe4cd2be21ba2b4b8e5f8064c2c"}, - {file = "regex-2022.6.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:17764683ea01c2b8f103d99ae9de2473a74340df13ce306c49a721f0b1f0eb9e"}, - {file = "regex-2022.6.2-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:2ac29b834100d2c171085ceba0d4a1e7046c434ddffc1434dbc7f9d59af1e945"}, - {file = "regex-2022.6.2-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:f43522fb5d676c99282ca4e2d41e8e2388427c0cf703db6b4a66e49b10b699a8"}, - {file = "regex-2022.6.2-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:9faa01818dad9111dbf2af26c6e3c45140ccbd1192c3a0981f196255bf7ec5e6"}, - {file = "regex-2022.6.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:17443f99b8f255273731f915fdbfea4d78d809bb9c3aaf67b889039825d06515"}, - {file = "regex-2022.6.2-cp36-cp36m-win32.whl", hash = "sha256:4a5449adef907919d4ce7a1eab2e27d0211d1b255bf0b8f5dd330ad8707e0fc3"}, - {file = "regex-2022.6.2-cp36-cp36m-win_amd64.whl", hash = "sha256:4d206703a96a39763b5b45cf42645776f5553768ea7f3c2c1a39a4f59cafd4ba"}, - {file = "regex-2022.6.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fcd7c432202bcb8b642c3f43d5bcafc5930d82fe5b2bf2c008162df258445c1d"}, - {file = "regex-2022.6.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:186c5a4a4c40621f64d771038ede20fca6c61a9faa8178f9e305aaa0c2442a97"}, - {file = "regex-2022.6.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:047b2d1323a51190c01b6604f49fe09682a5c85d3c1b2c8b67c1cd68419ce3c4"}, - {file = "regex-2022.6.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:30637e7fa4acfed444525b1ab9683f714be617862820578c9fd4e944d4d9ad1f"}, - {file = "regex-2022.6.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3adafe6f2c6d86dbf3313866b61180530ca4dcd0c264932dc8fa1ffb10871d58"}, - {file = "regex-2022.6.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:67ae3601edf86e15ebe40885e5bfdd6002d34879070be15cf18fc0d80ea24fed"}, - {file = "regex-2022.6.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:48dddddce0ea7e7c3e92c1e0c5a28c13ca4dc9cf7e996c706d00479652bff76c"}, - {file = "regex-2022.6.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:68e5c641645351eb9eb12c465876e76b53717f99e9b92aea7a2dd645a87aa7aa"}, - {file = "regex-2022.6.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:8fd5f8ae42f789538bb634bdfd69b9aa357e76fdfd7ad720f32f8994c0d84f1e"}, - {file = "regex-2022.6.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:71988a76fcb68cc091e901fddbcac0f9ad9a475da222c47d3cf8db0876cb5344"}, - {file = "regex-2022.6.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:4b8838f70be3ce9e706df9d72f88a0aa7d4c1fea61488e06fdf292ccb70ad2be"}, - {file = "regex-2022.6.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:663dca677bd3d2e2b5b7d0329e9f24247e6f38f3b740dd9a778a8ef41a76af41"}, - {file = "regex-2022.6.2-cp37-cp37m-win32.whl", hash = "sha256:24963f0b13cc63db336d8da2a533986419890d128c551baacd934c249d51a779"}, - {file = "regex-2022.6.2-cp37-cp37m-win_amd64.whl", hash = "sha256:ceff75127f828dfe7ceb17b94113ec2df4df274c4cd5533bb299cb099a18a8ca"}, - {file = "regex-2022.6.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a6f2698cfa8340dfe4c0597782776b393ba2274fe4c079900c7c74f68752705"}, - {file = "regex-2022.6.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a8a08ace913c4101f0dc0be605c108a3761842efd5f41a3005565ee5d169fb2b"}, - {file = "regex-2022.6.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26dbe90b724efef7820c3cf4a0e5be7f130149f3d2762782e4e8ac2aea284a0b"}, - {file = "regex-2022.6.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b5f759a1726b995dc896e86f17f9c0582b54eb4ead00ed5ef0b5b22260eaf2d0"}, - {file = "regex-2022.6.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1fc26bb3415e7aa7495c000a2c13bf08ce037775db98c1a3fac9ff04478b6930"}, - {file = "regex-2022.6.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:52684da32d9003367dc1a1c07e059b9bbaf135ad0764cd47d8ac3dba2df109bc"}, - {file = "regex-2022.6.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c1264eb40a71cf2bff43d6694ab7254438ca19ef330175060262b3c8dd3931a"}, - {file = "regex-2022.6.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:bc635ab319c9b515236bdf327530acda99be995f9d3b9f148ab1f60b2431e970"}, - {file = "regex-2022.6.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:27624b490b5d8880f25dac67e1e2ea93dfef5300b98c6755f585799230d6c746"}, - {file = "regex-2022.6.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:555f7596fd1f123f8c3a67974c01d6ef80b9769e04d660d6c1a7cc3e6cff7069"}, - {file = "regex-2022.6.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:933e72fbe1829cbd59da2bc51ccd73d73162f087f88521a87a8ec9cb0cf10fa8"}, - {file = "regex-2022.6.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:cff5c87e941292c97d11dc81bd20679f56a2830f0f0e32f75b8ed6e0eb40f704"}, - {file = "regex-2022.6.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c757f3a27b6345de13ef3ca956aa805d7734ce68023e84d0fc74e1f09ce66f7a"}, - {file = "regex-2022.6.2-cp38-cp38-win32.whl", hash = "sha256:a58d21dd1a2d6b50ed091554ff85e448fce3fe33a4db8b55d0eba2ca957ed626"}, - {file = "regex-2022.6.2-cp38-cp38-win_amd64.whl", hash = "sha256:495a4165172848503303ed05c9d0409428f789acc27050fe2cf0a4549188a7d5"}, - {file = "regex-2022.6.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1ab5cf7d09515548044e69d3a0ec77c63d7b9dfff4afc19653f638b992573126"}, - {file = "regex-2022.6.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c1ea28f0ee6cbe4c0367c939b015d915aa9875f6e061ba1cf0796ca9a3010570"}, - {file = "regex-2022.6.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3de1ecf26ce85521bf73897828b6d0687cc6cf271fb6ff32ac63d26b21f5e764"}, - {file = "regex-2022.6.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa7c7044aabdad2329974be2246babcc21d3ede852b3971a90fd8c2056c20360"}, - {file = "regex-2022.6.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:53d69d77e9cfe468b000314dd656be85bb9e96de088a64f75fe128dfe1bf30dd"}, - {file = "regex-2022.6.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c8d61883a38b1289fba9944a19a361875b5c0170b83cdcc95ea180247c1b7d3"}, - {file = "regex-2022.6.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5429202bef174a3760690d912e3a80060b323199a61cef6c6c29b30ce09fd17"}, - {file = "regex-2022.6.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e85b10280cf1e334a7c95629f6cbbfe30b815a4ea5f1e28d31f79eb92c2c3d93"}, - {file = "regex-2022.6.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c400dfed4137f32127ea4063447006d7153c974c680bf0fb1b724cce9f8567fc"}, - {file = "regex-2022.6.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7f648037c503985aed39f85088acab6f1eb6a0482d7c6c665a5712c9ad9eaefc"}, - {file = "regex-2022.6.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:e7b2ff451f6c305b516281ec45425dd423223c8063218c5310d6f72a0a7a517c"}, - {file = "regex-2022.6.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:be456b4313a86be41706319c397c09d9fdd2e5cdfde208292a277b867e99e3d1"}, - {file = "regex-2022.6.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c3db393b21b53d7e1d3f881b64c29d886cbfdd3df007e31de68b329edbab7d02"}, - {file = "regex-2022.6.2-cp39-cp39-win32.whl", hash = "sha256:d70596f20a03cb5f935d6e4aad9170a490d88fc4633679bf00c652e9def4619e"}, - {file = "regex-2022.6.2-cp39-cp39-win_amd64.whl", hash = "sha256:3b9b6289e03dbe6a6096880d8ac166cb23c38b4896ad235edee789d4e8697152"}, - {file = "regex-2022.6.2.tar.gz", hash = "sha256:f7b43acb2c46fb2cd506965b2d9cf4c5e64c9c612bac26c1187933c7296bf08c"}, -] requests = [ {file = "requests-2.26.0-py2.py3-none-any.whl", hash = "sha256:6c1246513ecd5ecd4528a0906f910e8f0f9c6b8ec72030dc9fd154dc1a6efd24"}, {file = "requests-2.26.0.tar.gz", hash = "sha256:b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7"}, @@ -1151,33 +1091,36 @@ requirements-detector = [ {file = "requirements-detector-0.7.tar.gz", hash = "sha256:0d1e13e61ed243f9c3c86e6cbb19980bcb3a0e0619cde2ec1f3af70fdbee6f7b"}, ] rtree = [ - {file = "Rtree-0.9.7-cp27-cp27m-macosx_10_15_x86_64.whl", hash = "sha256:40a1b08fc4d39521d6dd801a4bc14ac5e3f45f4ed1e265d06d43ceb911764e3c"}, - {file = "Rtree-0.9.7-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:bcc6109c5ed6ddcb2c45c0c4aa07e97a78b75496d254af58520fcfc995b4edd9"}, - {file = "Rtree-0.9.7-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:0a2a57c25c936d66ef11df9a48d4a7172adec9daf3828b989f1d8084bbcdfebd"}, - {file = "Rtree-0.9.7-cp27-cp27m-win_amd64.whl", hash = "sha256:c50e178620c052596013d9ea5f1c716f70d3ab3eb98fba67b1e3843b72523323"}, - {file = "Rtree-0.9.7-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:e5a1e352cb4473372d201b41fb92e71791a3e808a6533af002917e8904863ab5"}, - {file = "Rtree-0.9.7-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:fe06b208488c11a311570c9a37ec52116a41107ad265cf53b1ffdeaa09f2d37b"}, - {file = "Rtree-0.9.7-cp35-cp35m-macosx_10_15_x86_64.whl", hash = "sha256:4d0c1c2f6ec0e34afbf487d960025fc4026e70a967bc0b41a9e9d159380539a2"}, - {file = "Rtree-0.9.7-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:e017b7faa0b93a36ef70319616cea8ba800ad80f327a4ffb1bb4d7f47e8bb945"}, - {file = "Rtree-0.9.7-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:ebe884fdf20d83b2eabd293ea28fbcbf84353eb0c6f6f3521fa66f1245b3d8e8"}, - {file = "Rtree-0.9.7-cp35-cp35m-win_amd64.whl", hash = "sha256:de62f5b66dd90fba9559f019b9d8a3bbedf405ce51ae74ec9f4d47c248c71362"}, - {file = "Rtree-0.9.7-cp36-cp36m-macosx_10_15_x86_64.whl", hash = "sha256:b651e12617634fc3ad3d68e5425fc566a704fa0ccaf0e0c4328ca6776d1949a1"}, - {file = "Rtree-0.9.7-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:a3a7129f18f721db7e28fac796b3e0cc5708581473632afb430b6ca499b070f9"}, - {file = "Rtree-0.9.7-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:22840737c2892d75de30115e4f392557bbc6382d6831f8588b9cb98ea82e5539"}, - {file = "Rtree-0.9.7-cp36-cp36m-win_amd64.whl", hash = "sha256:275f5a4fbe9c74508ad2c0b334060ceec0b7fae061f7bc404d0d94617134f6a3"}, - {file = "Rtree-0.9.7-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:7a4ea00398cdda8dd0e96142ba10c44d48989e204945d0cded4d68e00859adcf"}, - {file = "Rtree-0.9.7-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:bf465facf7e76e732ffef7a6db666478de05e1286407212ce2935410f32cdb64"}, - {file = "Rtree-0.9.7-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:c34618947cfe2d8b4e52c0669e6c47e46ffa2413f7dae5c82dc63f9aee95b7a5"}, - {file = "Rtree-0.9.7-cp37-cp37m-win_amd64.whl", hash = "sha256:b8c45987c9966b7341afbc70a7d0bd1a1b6361eff50379a7447512d169c1bd1e"}, - {file = "Rtree-0.9.7-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:7f4c44b0e6840ce3202ab8c48c12edfd8b3104084d312a5718c16e65eddffdd7"}, - {file = "Rtree-0.9.7-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:64c89ec82b86d3e8ed91ee0cec83ad48aa1f2a633fbd83fe39ce1d14eb15454e"}, - {file = "Rtree-0.9.7-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:908775b905462f945b583f34cdbe77baad483243b22c2f671598f35327af2888"}, - {file = "Rtree-0.9.7-cp38-cp38-win_amd64.whl", hash = "sha256:3fd5477a25fa0084305eea795999e51a94ca9b429089f852f231fe24bee4218d"}, - {file = "Rtree-0.9.7-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:000dfc003cbebf5db2b8bc97cf3a1945da62388a46d00804804a375e6fcc3680"}, - {file = "Rtree-0.9.7-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:9e3a4ba7d58c598fae9c7fbbfe3a641a0a6fdb04720e7951048be43bbd97ebc5"}, - {file = "Rtree-0.9.7-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:a935e7a2d25d146b5129d127fc4eedded76e3a4feff989fcedc8e72cbcf2c555"}, - {file = "Rtree-0.9.7-cp39-cp39-win_amd64.whl", hash = "sha256:824a7e4639665a32ffdfd28aa8b090a1dee60fa254f81317634362740be0b2d1"}, - {file = "Rtree-0.9.7.tar.gz", hash = "sha256:be8772ca34699a9ad3fb4cfe2cfb6629854e453c10b3328039301bbfc128ca3e"}, + {file = "Rtree-1.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:757bbf9ca38c241e34812a646f16ffda2cabd535bcd815041b83fe091df7a85c"}, + {file = "Rtree-1.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fe3954a51d691d3938cbac42ac97f4acacbea8ea622a375df901318a5c4ab0e9"}, + {file = "Rtree-1.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24185f39b277aaca0566284858de02edc80dc7b120233be38fcf3b4c7d2e72dc"}, + {file = "Rtree-1.0.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2110fb8675bf809bba431a1876ba76ca5dde829a4de40aa7851941452a01278"}, + {file = "Rtree-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0256ed9c27037892bcb7167e7f5c469ee7c5de38c5a895145e33c320584babe"}, + {file = "Rtree-1.0.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7f2c0bd3e7d4b68cc27ab605b18487440427d5febba5f4b747b694f9de601c6f"}, + {file = "Rtree-1.0.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c2b14f7603576b73a5e0fd2e35394db08c5ca3cfa41e4c8530128d91e5e43dd3"}, + {file = "Rtree-1.0.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:973ce22ee8bafa44b3df24c6bf78012e534e1f36103e0bbfbb193ec48e9be22a"}, + {file = "Rtree-1.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:55b771e62b1e391a44776ef9f906944796213cc3cb48ffd6b22493684c68a859"}, + {file = "Rtree-1.0.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0475b2e7fe813c427ceb21e57c22f8b4b7fee6e5966db8a200688163d4853f14"}, + {file = "Rtree-1.0.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e436d8da7527655fd0512dd6a5218f604a3806849f3981ec0ca64930dc19b7f2"}, + {file = "Rtree-1.0.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d18efe4e69f6b7daee9aaced21e0218786209d55235c909c78dbc5c12368790"}, + {file = "Rtree-1.0.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:728cf9b774ed6f120f2ed072082431c14af8243d477656b5b7dc1ff855fe7786"}, + {file = "Rtree-1.0.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:3e28303d84f8b5509e26db7c2aa533692a6112a430cc955a7a7e6d899c9d5996"}, + {file = "Rtree-1.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:062439d3a33d95281445960af76b6189b987cda0803fdc1818e31b68bce989d1"}, + {file = "Rtree-1.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0ab0dccff665389329f8d2e623131a1af3ab82b6de570f8c494a429c129f3e65"}, + {file = "Rtree-1.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44df5adc12841b94adcbc4e5aaada248e98a4dc2017c8c7060f9a782ef63e050"}, + {file = "Rtree-1.0.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:29a1a4452e334eaf3299c8b95f137a2ccafbccfd856041f612ec933eeafb2cf5"}, + {file = "Rtree-1.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efdaf7137303af7a85ddd224bacdb27f9f7ece99e0dec627c900e12f22cdefd0"}, + {file = "Rtree-1.0.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:264e3b255a1fc6aaa2ddbcedfc15ac40578433f6b35a0c7aaba026215d91d8c3"}, + {file = "Rtree-1.0.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:26b2275ebc738cb6a0473c15d80fdfe820ef319015009f8f0789e586552cf411"}, + {file = "Rtree-1.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:825c1f74a84e9857657c04503c4c50b9f170114183fa2db9211a5d8650cf1ffa"}, + {file = "Rtree-1.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a91d7b514210ae93029c2a7ed83b2595ca73de5e08a9d87fcdf3a784a7b3ef54"}, + {file = "Rtree-1.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0ffaa03d1f7e8291de7cd8a11f92e10579f145dc3a08cd46a9eea65cc7b42173"}, + {file = "Rtree-1.0.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f2f93c997de551a1a0fa4065e713270ad9a509aeeb143c5b46f332c0759f314"}, + {file = "Rtree-1.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a48f46dbb6ab0cb135a43d90529e1fa09a6dd80149a34844f2adf8414b4ab71a"}, + {file = "Rtree-1.0.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:171aa361b3542bf1e47bdee54c611644bb33d35502e2ceea57ac89cf35330554"}, + {file = "Rtree-1.0.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bc18d4df3edb3b889b177ba39238770afdb5787fb803677c3aadea42a6931485"}, + {file = "Rtree-1.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:bc6e7384684a260eb2f04fcac64ca5ffe28876132a11d1a883db2a5db8becb64"}, + {file = "Rtree-1.0.0.tar.gz", hash = "sha256:d0483482121346b093b9a42518d40f921adf445915b7aea307eb26768c839682"}, ] setoptconf-tmp = [ {file = "setoptconf-tmp-0.3.1.tar.gz", hash = "sha256:e0480addd11347ba52f762f3c4d8afa3e10ad0affbc53e3ffddc0ca5f27d5778"}, @@ -1217,16 +1160,20 @@ toml = [ {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, ] tomli = [ - {file = "tomli-1.2.3-py3-none-any.whl", hash = "sha256:e3069e4be3ead9668e21cb9b074cd948f7b3113fd9c8bba083f48247aab8b11c"}, - {file = "tomli-1.2.3.tar.gz", hash = "sha256:05b6166bff487dc068d322585c7ea4ef78deed501cc124060e0f238e89a9231f"}, + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, ] tomlkit = [ {file = "tomlkit-0.11.0-py3-none-any.whl", hash = "sha256:0f4050db66fd445b885778900ce4dd9aea8c90c4721141fde0d6ade893820ef1"}, {file = "tomlkit-0.11.0.tar.gz", hash = "sha256:71ceb10c0eefd8b8f11fe34e8a51ad07812cb1dc3de23247425fbc9ddc47b9dd"}, ] +types-pillow = [ + {file = "types-Pillow-8.3.2.tar.gz", hash = "sha256:35fa2085164e550ef89d10c75963c5c9d673e8fd529343560b945eb6ac26891d"}, + {file = "types_Pillow-8.3.2-py3-none-any.whl", hash = "sha256:7926e2d0a774184af16115207a4938b3d1089b3cfac658e837af6a6d2ed8cc2d"}, +] types-requests = [ - {file = "types-requests-2.25.11.tar.gz", hash = "sha256:b279284e51f668e38ee12d9665e4d789089f532dc2a0be4a1508ca0efd98ba9e"}, - {file = "types_requests-2.25.11-py3-none-any.whl", hash = "sha256:ba1d108d512e294b6080c37f6ae7cb2a2abf527560e2b671d1786c1fc46b541a"}, + {file = "types-requests-2.26.0.tar.gz", hash = "sha256:df5ec8c34b413a42ebb38e4f96bdeb68090b875bdfcc5138dc82989c95445883"}, + {file = "types_requests-2.26.0-py3-none-any.whl", hash = "sha256:809b5dcd3c408ac39d11d593835b6aff32420b3e7ddb79c7f3e823330f040466"}, ] typing-extensions = [ {file = "typing_extensions-4.2.0-py3-none-any.whl", hash = "sha256:6657594ee297170d19f67d55c05852a874e7eb634f4f753dbd667855e07c1708"}, diff --git a/pyproject.toml b/pyproject.toml index 8d6ced1e..c80efb2f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,23 +9,24 @@ packages = [ ] [tool.poetry.dependencies] -python = "~3.9" +python = "~3.10" numpy = "1.21.2" requests = "2.26.0" Shapely = "1.7.1" -Rtree = "0.9.7" +Rtree = "1.0.0" Pillow = "8.3.2" pyproj = "3.2.0" [tool.poetry.dev-dependencies] pytest-cov = "^3.0.0" -black = "21.9b0" +black = "22.3.0" isort = "5.9.3" mypy = "0.910" pytest = "6.2.5" prospector = {extras = ["with_vulture"], version = "1.5.1"} -types-requests = "2.25.11" +types-requests = "2.26.0" +types-Pillow = "8.3.2" [build-system] requires = ["poetry-core>=1.0.0"] diff --git a/src/airport_data.py b/src/airport_data.py index 891684bd..315e5888 100644 --- a/src/airport_data.py +++ b/src/airport_data.py @@ -367,7 +367,7 @@ def __hash__(self): def __repr__(self): return "".format(self.x, self.y, self.zl) - @functools.lru_cache(maxsize=2 ** 14) + @functools.lru_cache(maxsize=2**14) def lower_zl_tile(self, target_zl=None): if target_zl and target_zl >= self.zl: return self @@ -383,7 +383,7 @@ def lower_zl_tile(self, target_zl=None): else: return lower - @functools.lru_cache(maxsize=2 ** 13) + @functools.lru_cache(maxsize=2**13) def higher_zl_subtiles(self, target_zl=None): if target_zl and target_zl <= self.zl: return [self] @@ -393,14 +393,14 @@ def higher_zl_subtiles(self, target_zl=None): return [ GTile(x, y, zl) for x in range( - self.x * 2 ** zl_diff, (self.x + 16) * 2 ** zl_diff, 16 + self.x * 2**zl_diff, (self.x + 16) * 2**zl_diff, 16 ) for y in range( - self.y * 2 ** zl_diff, (self.y + 16) * 2 ** zl_diff, 16 + self.y * 2**zl_diff, (self.y + 16) * 2**zl_diff, 16 ) ] - @functools.lru_cache(maxsize=2 ** 13) + @functools.lru_cache(maxsize=2**13) def zl_siblings(self): return self.lower_zl_tile().higher_zl_subtiles() @@ -414,7 +414,7 @@ def surrounding_tiles(self, include_self=False): ] @staticmethod - @functools.lru_cache(maxsize=2 ** 15) + @functools.lru_cache(maxsize=2**15) def _cached_polygon(x, y, zl): lat_max, lon_min = geo.gtile_to_wgs84(x, y, zl) lat_min, lon_max = geo.gtile_to_wgs84(x + 16, y + 16, zl) @@ -855,7 +855,7 @@ def _compacted_tile_set(tiles: set): # Airport Interface # - @functools.lru_cache(maxsize=2 ** 3) + @functools.lru_cache(maxsize=2**3) def gtiles( self, zl, diff --git a/src/config.py b/src/config.py index a5facfae..3b47e026 100644 --- a/src/config.py +++ b/src/config.py @@ -1479,8 +1479,7 @@ def apply_changes(self): if errors: error_text = ( "The following variables had wrong type\nand were reset to" - " their default value!\n\n* " - + "\n* ".join(errors) + " their default value!\n\n* " + "\n* ".join(errors) ) self.popup("ERROR", error_text) diff --git a/src/dem.py b/src/dem.py index 7174e44b..fa6b0f30 100755 --- a/src/dem.py +++ b/src/dem.py @@ -200,7 +200,7 @@ def create_normal_map(self, pixx, pixy): dy[0, :] = (self.alt_dem[0, :] - self.alt_dem[1, :]) / (pixy) dy[-1, :] = (self.alt_dem[-2, :] - self.alt_dem[-1, :]) / (pixy) del self.alt_dem - norm = numpy.sqrt(1 + dx ** 2 + dy ** 2) + norm = numpy.sqrt(1 + dx**2 + dy**2) dx = dx / norm dy = dy / norm del norm @@ -947,10 +947,10 @@ def http_request(url, source, verbose=False): " ", source, "server may be down or busy, new tentative in", - 2 ** tentative, + 2**tentative, "sec...", ) - time.sleep(2 ** tentative) + time.sleep(2**tentative) ############################################################################## diff --git a/src/dsf.py b/src/dsf.py index c84ec7ff..c6081542 100644 --- a/src/dsf.py +++ b/src/dsf.py @@ -48,8 +48,8 @@ def __init__(self, level, bucket_size): if level == 0: self[("", "")] = self.Bucket() else: - for i in range(2 ** level): - for j in range(2 ** level): + for i in range(2**level): + for j in range(2**level): key = ( numpy.binary_repr(i).zfill(level), numpy.binary_repr(j).zfill(level), diff --git a/src/filenames.py b/src/filenames.py index 2a415cf9..ce98235f 100644 --- a/src/filenames.py +++ b/src/filenames.py @@ -358,7 +358,7 @@ def jpeg_file_name_from_attributes( + "_" + str(til_x_left) + "_" - + str(2 ** zoomlevel - 16 - til_y_top) + + str(2**zoomlevel - 16 - til_y_top) + g2xpl_16_suffix + ".jpg" ) @@ -421,7 +421,7 @@ def dds_file_name_from_attributes( + "_" + str(til_x_left) + "_" - + str(2 ** zoomlevel - 16 - til_y_top) + + str(2**zoomlevel - 16 - til_y_top) + g2xpl_16_suffix + "." + file_ext diff --git a/src/geo.py b/src/geo.py index b768ad9c..a08f1344 100644 --- a/src/geo.py +++ b/src/geo.py @@ -135,7 +135,7 @@ def transform(s_epsg, t_epsg, s_x, s_y): ############################################################################## ############################################################################## -@functools.lru_cache(maxsize=2 ** 16) +@functools.lru_cache(maxsize=2**16) def gtile_to_wgs84(til_x, til_y, zoomlevel): """ Returns the latitude and longitude of the top left corner of the tile diff --git a/src/gui.py b/src/gui.py index 1bcf63be..f6235fd5 100755 --- a/src/gui.py +++ b/src/gui.py @@ -1499,7 +1499,7 @@ def compute_size(self): greediness=config.cover_greediness, greediness_threshold=config.cover_greediness_threshold, ) - / 2 ** 30 + / 2**30 ) self.gb.set("{:0.1f}".format(total_size) + " GiB") @@ -1620,7 +1620,7 @@ def save_zone_list(self): class Ortho4XP_Earth_Preview(tk.Toplevel): earthzl = 6 - resolution = 2 ** earthzl * 256 + resolution = 2**earthzl * 256 list_del_ckbtn = [ "OSM data", @@ -1774,8 +1774,8 @@ def __init__(self, parent, lat, lon): scrollregion=( 1, 1, - 2 ** self.earthzl * 256 - 1, - 2 ** self.earthzl * 256 - 1, + 2**self.earthzl * 256 - 1, + 2**self.earthzl * 256 - 1, ) ) # self.canvas.bbox(ALL)) (x0, y0) = geo.wgs84_to_pix(lat + 0.5, lon + 0.5, self.earthzl) @@ -2324,8 +2324,8 @@ def draw_canvas(self, nx0, ny0): self.imageNW = Image.open(filepreviewNW) self.photoNW = ImageTk.PhotoImage(self.imageNW) self.canv_imgNW = self.canvas.create_image( - nx0 * 2 ** self.earthzl * 256 / 8, - ny0 * 2 ** self.earthzl * 256 / 8, + nx0 * 2**self.earthzl * 256 / 8, + ny0 * 2**self.earthzl * 256 / 8, anchor=NW, image=self.photoNW, ) @@ -2343,8 +2343,8 @@ def draw_canvas(self, nx0, ny0): self.imageNE = Image.open(filepreviewNE) self.photoNE = ImageTk.PhotoImage(self.imageNE) self.canv_imgNE = self.canvas.create_image( - (nx0 + 1) * 2 ** self.earthzl * 256 / 8, - ny0 * 2 ** self.earthzl * 256 / 8, + (nx0 + 1) * 2**self.earthzl * 256 / 8, + ny0 * 2**self.earthzl * 256 / 8, anchor=NW, image=self.photoNE, ) @@ -2354,8 +2354,8 @@ def draw_canvas(self, nx0, ny0): self.imageSW = Image.open(filepreviewSW) self.photoSW = ImageTk.PhotoImage(self.imageSW) self.canv_imgSW = self.canvas.create_image( - nx0 * 2 ** self.earthzl * 256 / 8, - (ny0 + 1) * 2 ** self.earthzl * 256 / 8, + nx0 * 2**self.earthzl * 256 / 8, + (ny0 + 1) * 2**self.earthzl * 256 / 8, anchor=NW, image=self.photoSW, ) @@ -2370,8 +2370,8 @@ def draw_canvas(self, nx0, ny0): self.imageSE = Image.open(filepreviewSE) self.photoSE = ImageTk.PhotoImage(self.imageSE) self.canv_imgSE = self.canvas.create_image( - (nx0 + 1) * 2 ** self.earthzl * 256 / 8, - (ny0 + 1) * 2 ** self.earthzl * 256 / 8, + (nx0 + 1) * 2**self.earthzl * 256 / 8, + (ny0 + 1) * 2**self.earthzl * 256 / 8, anchor=NW, image=self.photoSE, ) diff --git a/src/imagery.py b/src/imagery.py index 7756a26e..375d6d59 100644 --- a/src/imagery.py +++ b/src/imagery.py @@ -579,7 +579,7 @@ def initialize_providers_dict() -> None: ] provider["resolutions"] = numpy.array( [ - 20037508.34 / (128 * 2 ** i) + 20037508.34 / (128 * 2**i) for i in range(21) ] ) @@ -861,7 +861,7 @@ def initialize_local_combined_providers_dict(tile): ) kernel = numpy.array(range(1, 2 * mask_width)) kernel[mask_width:] = range(mask_width - 1, 0, -1) - kernel = kernel / mask_width ** 2 + kernel = kernel / mask_width**2 for i in range(0, len(img_array)): img_array[i] = numpy.convolve( img_array[i], kernel, "same" @@ -1257,7 +1257,7 @@ def get_wmts_image(tilematrix, til_x, til_y, provider, http_session): url = url.replace("{x}", str(til_x)) url = url.replace("{y}", str(til_y)) url = url.replace("{|y|}", str(abs(til_y) - 1)) - url = url.replace("{-y}", str(2 ** tilematrix - 1 - til_y)) + url = url.replace("{-y}", str(2**tilematrix - 1 - til_y)) url = url.replace( "{quadkey}", geo.gtile_to_quadkey(til_x, til_y, tilematrix) ) @@ -1348,17 +1348,17 @@ def get_wmts_image(tilematrix, til_x, til_y, provider, http_session): return (success, data) elif success and down_sample: x0 = ( - (til_x_orig - 2 ** down_sample * til_x) + (til_x_orig - 2**down_sample * til_x) * width - // (2 ** down_sample) + // (2**down_sample) ) y0 = ( - (til_y_orig - 2 ** down_sample * til_y) + (til_y_orig - 2**down_sample * til_y) * height - // (2 ** down_sample) + // (2**down_sample) ) - x1 = x0 + width // (2 ** down_sample) - y1 = y0 + height // (2 ** down_sample) + x1 = x0 + width // (2**down_sample) + y1 = y0 + height // (2**down_sample) return ( success, data.crop((x0, y0, x1, y1)).resize( @@ -1541,8 +1541,8 @@ def build_texture_from_bbox_and_size(t_bbox, t_epsg, t_size, provider): - 1 ) if downscale >= 1: - width /= 2 ** downscale - height /= 2 ** downscale + width /= 2**downscale + height /= 2**downscale subt_size = (width, height) else: subt_size = None diff --git a/src/mask.py b/src/mask.py index 2d55775b..5cfac772 100755 --- a/src/mask.py +++ b/src/mask.py @@ -58,11 +58,11 @@ def build_masks(tile, for_imagery=False): ########################################## def transition_profile(ratio, ttype): if ttype == "spline": - return 3 * ratio ** 2 - 2 * ratio ** 3 + return 3 * ratio**2 - 2 * ratio**3 elif ttype == "linear": return ratio elif ttype == "parabolic": - return 2 * ratio - ratio ** 2 + return 2 * ratio - ratio**2 ########################################## ui.red_flag = False @@ -512,7 +512,7 @@ def build_mask(til_x, til_y): b_img_array = numpy.array(img_array) kernel = numpy.array(range(1, 2 * blur_width)) kernel[blur_width:] = range(blur_width - 1, 0, -1) - kernel = kernel / blur_width ** 2 + kernel = kernel / blur_width**2 for i in range(0, len(b_img_array)): b_img_array[i] = numpy.convolve(b_img_array[i], kernel, "same") b_img_array = b_img_array.transpose() @@ -906,7 +906,7 @@ def triangulation_to_image(name, pixel_size, grid_size_or_bbox): kernel = numpy.ones(int(mask_width)) / int(mask_width) kernel = numpy.array(range(1, 2 * mask_width)) kernel[mask_width:] = range(mask_width - 1, 0, -1) - kernel = kernel / mask_width ** 2 + kernel = kernel / mask_width**2 for i in range(0, len(img_array)): img_array[i] = numpy.convolve(img_array[i], kernel, "same") img_array = img_array.transpose() diff --git a/src/osm.py b/src/osm.py index 3b49d195..99394aa6 100755 --- a/src/osm.py +++ b/src/osm.py @@ -554,7 +554,7 @@ def get_overpass_data(query, bbox, server_code=None): true_server_code, "sent a corrupted answer (no closing tag in" " answer), new tentative in", - 2 ** tentative, + 2**tentative, "sec...", ) elif len(r.content) <= 1000 and b"error" in r.content: @@ -564,7 +564,7 @@ def get_overpass_data(query, bbox, server_code=None): true_server_code, "sent us an error code for the data (data too big ?)," " new tentative in", - 2 ** tentative, + 2**tentative, "sec...", ) else: @@ -575,7 +575,7 @@ def get_overpass_data(query, bbox, server_code=None): " OSM server", true_server_code, "rejected our query, new tentative in", - 2 ** tentative, + 2**tentative, "sec...", ) except: @@ -584,14 +584,14 @@ def get_overpass_data(query, bbox, server_code=None): " OSM server", true_server_code, "was too busy, new tentative in", - 2 ** tentative, + 2**tentative, "sec...", ) if tentative >= max_osm_tentatives: return 0 if ui.red_flag: return 0 - time.sleep(2 ** tentative) + time.sleep(2**tentative) tentative += 1 return r.content diff --git a/src/vector.py b/src/vector.py index 13257f08..5c9b8bf9 100755 --- a/src/vector.py +++ b/src/vector.py @@ -1088,7 +1088,7 @@ def refine_way(way, max_length): # max_length assumed in meter ins = int( sqrt( numpy.sum( - (way[i] - way[i + 1]) ** 2 * numpy.array([[scalx ** 2, 1]]) + (way[i] - way[i + 1]) ** 2 * numpy.array([[scalx**2, 1]]) ) ) * geo.METERS_PER_DEGREE_LATITUDE @@ -1114,8 +1114,8 @@ def refine_way(way, max_length): # max_length assumed in meter ############################################################################## def projcoords(way, A, B): return numpy.sum( - (way - A) * (B - A) * numpy.array([scalx ** 2, 1]), axis=1 - ) / numpy.sum((B - A) * (B - A) * numpy.array([scalx ** 2, 1])) + (way - A) * (B - A) * numpy.array([scalx**2, 1]), axis=1 + ) / numpy.sum((B - A) * (B - A) * numpy.array([scalx**2, 1])) ############################################################################## @@ -1144,7 +1144,7 @@ def point_to_segment_distance(way, A, B): ) ) ** 2 - * numpy.array([scalx ** 2, 1]), + * numpy.array([scalx**2, 1]), axis=1, ) ) diff --git a/src/vector_map.py b/src/vector_map.py index f88600e1..db03e7f9 100644 --- a/src/vector_map.py +++ b/src/vector_map.py @@ -115,7 +115,7 @@ def build_poly_file(tile): ygrid.add(1) xgrid = list(sorted(xgrid)) ygrid = list(sorted(ygrid)) - eps = 2 ** -5 + eps = 2**-5 ortho_network = geometry.MultiLineString( [geometry.LineString([(x, 0.0 - eps), (x, 1.0 + eps)]) for x in xgrid] + [ @@ -643,7 +643,7 @@ def tanh_profile(alpha, x): ) / 2 def spline_profile(x): - return 3 * x ** 2 - 2 * x ** 3 + return 3 * x**2 - 2 * x**3 def plane_profile(x): return x