From a01b89e47d5f229068700d25869e00f180b9534c Mon Sep 17 00:00:00 2001 From: Cian Hughes Date: Mon, 6 Nov 2023 11:00:20 +0000 Subject: [PATCH 1/8] Added mkdocs dependency --- poetry.lock | 317 +++++++++++++++++++++++++++++++++++++++++++++---- pyproject.toml | 3 + 2 files changed, 294 insertions(+), 26 deletions(-) diff --git a/poetry.lock b/poetry.lock index b221365..1b6106e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -392,6 +392,23 @@ smb = ["smbprotocol"] ssh = ["paramiko"] tqdm = ["tqdm"] +[[package]] +name = "ghp-import" +version = "2.1.0" +description = "Copy your docs directly to the gh-pages branch." +optional = false +python-versions = "*" +files = [ + {file = "ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343"}, + {file = "ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619"}, +] + +[package.dependencies] +python-dateutil = ">=2.8.1" + +[package.extras] +dev = ["flake8", "markdown", "twine", "wheel"] + [[package]] name = "gitdb" version = "4.0.11" @@ -456,6 +473,23 @@ files = [ {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, ] +[[package]] +name = "jinja2" +version = "3.1.2" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +files = [ + {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, + {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + [[package]] name = "lxml" version = "4.9.3" @@ -563,6 +597,21 @@ html5 = ["html5lib"] htmlsoup = ["BeautifulSoup4"] source = ["Cython (>=0.29.35)"] +[[package]] +name = "markdown" +version = "3.5.1" +description = "Python implementation of John Gruber's Markdown." +optional = false +python-versions = ">=3.8" +files = [ + {file = "Markdown-3.5.1-py3-none-any.whl", hash = "sha256:5874b47d4ee3f0b14d764324d2c94c03ea66bee56f2d929da9f2508d65e722dc"}, + {file = "Markdown-3.5.1.tar.gz", hash = "sha256:b65d7beb248dc22f2e8a31fb706d93798093c308dc1aba295aedeb9d41a813bd"}, +] + +[package.extras] +docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.5)", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-nature (>=0.6)", "mkdocs-section-index", "mkdocstrings[python]"] +testing = ["coverage", "pyyaml"] + [[package]] name = "markdown-it-py" version = "3.0.0" @@ -587,6 +636,65 @@ profiling = ["gprof2dot"] rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] +[[package]] +name = "markupsafe" +version = "2.1.3" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.7" +files = [ + {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-win32.whl", hash = "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, + {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, +] + [[package]] name = "mdurl" version = "0.1.2" @@ -614,6 +722,47 @@ beautifulsoup4 = ">=4.7" lxml = "*" requests = ">=2.22.0" +[[package]] +name = "mergedeep" +version = "1.3.4" +description = "A deep merge function for 🐍." +optional = false +python-versions = ">=3.6" +files = [ + {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, + {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, +] + +[[package]] +name = "mkdocs" +version = "1.5.3" +description = "Project documentation with Markdown." +optional = false +python-versions = ">=3.7" +files = [ + {file = "mkdocs-1.5.3-py3-none-any.whl", hash = "sha256:3b3a78e736b31158d64dbb2f8ba29bd46a379d0c6e324c2246c3bc3d2189cfc1"}, + {file = "mkdocs-1.5.3.tar.gz", hash = "sha256:eb7c99214dcb945313ba30426c2451b735992c73c2e10838f76d09e39ff4d0e2"}, +] + +[package.dependencies] +click = ">=7.0" +colorama = {version = ">=0.4", markers = "platform_system == \"Windows\""} +ghp-import = ">=1.0" +jinja2 = ">=2.11.1" +markdown = ">=3.2.1" +markupsafe = ">=2.0.1" +mergedeep = ">=1.3.4" +packaging = ">=20.5" +pathspec = ">=0.11.1" +platformdirs = ">=2.2.0" +pyyaml = ">=5.1" +pyyaml-env-tag = ">=0.1" +watchdog = ">=2.0" + +[package.extras] +i18n = ["babel (>=2.9.0)"] +min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-import (==1.0)", "importlib-metadata (==4.3)", "jinja2 (==2.11.1)", "markdown (==3.2.1)", "markupsafe (==2.0.1)", "mergedeep (==1.3.4)", "packaging (==20.5)", "pathspec (==0.11.1)", "platformdirs (==2.2.0)", "pyyaml (==5.1)", "pyyaml-env-tag (==0.1)", "typing-extensions (==3.10)", "watchdog (==2.0)"] + [[package]] name = "mypy" version = "1.6.1" @@ -793,6 +942,20 @@ pluggy = ">=0.12,<2.0" [package.extras] testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +[[package]] +name = "python-dateutil" +version = "2.8.2" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, + {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, +] + +[package.dependencies] +six = ">=1.5" + [[package]] name = "pywin32" version = "306" @@ -816,6 +979,69 @@ files = [ {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, ] +[[package]] +name = "pyyaml" +version = "6.0.1" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.6" +files = [ + {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, + {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, + {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, + {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, + {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, + {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, + {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, +] + +[[package]] +name = "pyyaml-env-tag" +version = "0.1" +description = "A custom YAML tag for referencing environment variables in YAML files. " +optional = false +python-versions = ">=3.6" +files = [ + {file = "pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"}, + {file = "pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb"}, +] + +[package.dependencies] +pyyaml = "*" + [[package]] name = "requests" version = "2.31.0" @@ -857,39 +1083,39 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] name = "ruff" -version = "0.1.3" -description = "An extremely fast Python linter, written in Rust." +version = "0.1.4" +description = "An extremely fast Python linter and code formatter, written in Rust." optional = false python-versions = ">=3.7" files = [ - {file = "ruff-0.1.3-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:b46d43d51f7061652eeadb426a9e3caa1e0002470229ab2fc19de8a7b0766901"}, - {file = "ruff-0.1.3-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:b8afeb9abd26b4029c72adc9921b8363374f4e7edb78385ffaa80278313a15f9"}, - {file = "ruff-0.1.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca3cf365bf32e9ba7e6db3f48a4d3e2c446cd19ebee04f05338bc3910114528b"}, - {file = "ruff-0.1.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4874c165f96c14a00590dcc727a04dca0cfd110334c24b039458c06cf78a672e"}, - {file = "ruff-0.1.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eec2dd31eed114e48ea42dbffc443e9b7221976554a504767ceaee3dd38edeb8"}, - {file = "ruff-0.1.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:dc3ec4edb3b73f21b4aa51337e16674c752f1d76a4a543af56d7d04e97769613"}, - {file = "ruff-0.1.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e3de9ed2e39160800281848ff4670e1698037ca039bda7b9274f849258d26ce"}, - {file = "ruff-0.1.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c595193881922cc0556a90f3af99b1c5681f0c552e7a2a189956141d8666fe8"}, - {file = "ruff-0.1.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f75e670d529aa2288cd00fc0e9b9287603d95e1536d7a7e0cafe00f75e0dd9d"}, - {file = "ruff-0.1.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:76dd49f6cd945d82d9d4a9a6622c54a994689d8d7b22fa1322983389b4892e20"}, - {file = "ruff-0.1.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:918b454bc4f8874a616f0d725590277c42949431ceb303950e87fef7a7d94cb3"}, - {file = "ruff-0.1.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:d8859605e729cd5e53aa38275568dbbdb4fe882d2ea2714c5453b678dca83784"}, - {file = "ruff-0.1.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:0b6c55f5ef8d9dd05b230bb6ab80bc4381ecb60ae56db0330f660ea240cb0d4a"}, - {file = "ruff-0.1.3-py3-none-win32.whl", hash = "sha256:3e7afcbdcfbe3399c34e0f6370c30f6e529193c731b885316c5a09c9e4317eef"}, - {file = "ruff-0.1.3-py3-none-win_amd64.whl", hash = "sha256:7a18df6638cec4a5bd75350639b2bb2a2366e01222825562c7346674bdceb7ea"}, - {file = "ruff-0.1.3-py3-none-win_arm64.whl", hash = "sha256:12fd53696c83a194a2db7f9a46337ce06445fb9aa7d25ea6f293cf75b21aca9f"}, - {file = "ruff-0.1.3.tar.gz", hash = "sha256:3ba6145369a151401d5db79f0a47d50e470384d0d89d0d6f7fab0b589ad07c34"}, + {file = "ruff-0.1.4-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:864958706b669cce31d629902175138ad8a069d99ca53514611521f532d91495"}, + {file = "ruff-0.1.4-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:9fdd61883bb34317c788af87f4cd75dfee3a73f5ded714b77ba928e418d6e39e"}, + {file = "ruff-0.1.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4eaca8c9cc39aa7f0f0d7b8fe24ecb51232d1bb620fc4441a61161be4a17539"}, + {file = "ruff-0.1.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a9a1301dc43cbf633fb603242bccd0aaa34834750a14a4c1817e2e5c8d60de17"}, + {file = "ruff-0.1.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78e8db8ab6f100f02e28b3d713270c857d370b8d61871d5c7d1702ae411df683"}, + {file = "ruff-0.1.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:80fea754eaae06335784b8ea053d6eb8e9aac75359ebddd6fee0858e87c8d510"}, + {file = "ruff-0.1.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6bc02a480d4bfffd163a723698da15d1a9aec2fced4c06f2a753f87f4ce6969c"}, + {file = "ruff-0.1.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9862811b403063765b03e716dac0fda8fdbe78b675cd947ed5873506448acea4"}, + {file = "ruff-0.1.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58826efb8b3efbb59bb306f4b19640b7e366967a31c049d49311d9eb3a4c60cb"}, + {file = "ruff-0.1.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:fdfd453fc91d9d86d6aaa33b1bafa69d114cf7421057868f0b79104079d3e66e"}, + {file = "ruff-0.1.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:e8791482d508bd0b36c76481ad3117987301b86072158bdb69d796503e1c84a8"}, + {file = "ruff-0.1.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:01206e361021426e3c1b7fba06ddcb20dbc5037d64f6841e5f2b21084dc51800"}, + {file = "ruff-0.1.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:645591a613a42cb7e5c2b667cbefd3877b21e0252b59272ba7212c3d35a5819f"}, + {file = "ruff-0.1.4-py3-none-win32.whl", hash = "sha256:99908ca2b3b85bffe7e1414275d004917d1e0dfc99d497ccd2ecd19ad115fd0d"}, + {file = "ruff-0.1.4-py3-none-win_amd64.whl", hash = "sha256:1dfd6bf8f6ad0a4ac99333f437e0ec168989adc5d837ecd38ddb2cc4a2e3db8a"}, + {file = "ruff-0.1.4-py3-none-win_arm64.whl", hash = "sha256:d98ae9ebf56444e18a3e3652b3383204748f73e247dea6caaf8b52d37e6b32da"}, + {file = "ruff-0.1.4.tar.gz", hash = "sha256:21520ecca4cc555162068d87c747b8f95e1e95f8ecfcbbe59e8dd00710586315"}, ] [[package]] name = "selenium" -version = "4.15.1" +version = "4.15.2" description = "" optional = false python-versions = ">=3.8" files = [ - {file = "selenium-4.15.1-py3-none-any.whl", hash = "sha256:e3a4ebdcc3eed27eec69f8000d798923dbf4897c97cc6441eb88a1386809170d"}, - {file = "selenium-4.15.1.tar.gz", hash = "sha256:8f0436b5949f1d4aa742f3dff0d748b955c371be92db8b6b008bf9c9ca227de7"}, + {file = "selenium-4.15.2-py3-none-any.whl", hash = "sha256:9e82cd1ac647fb73cf0d4a6e280284102aaa3c9d94f0fa6e6cc4b5db6a30afbf"}, + {file = "selenium-4.15.2.tar.gz", hash = "sha256:22eab5a1724c73d51b240a69ca702997b717eee4ba1f6065bf5d6b44dba01d48"}, ] [package.dependencies] @@ -987,13 +1213,13 @@ files = [ [[package]] name = "trio" -version = "0.23.0" +version = "0.23.1" description = "A friendly Python library for async concurrency and I/O" optional = false python-versions = ">=3.8" files = [ - {file = "trio-0.23.0-py3-none-any.whl", hash = "sha256:213cd69a05962b1ba24d48caf08f7e7acf02bf1ebfac17c06d1248497f05795e"}, - {file = "trio-0.23.0.tar.gz", hash = "sha256:662cfe10018018607a8e7ee191c274bcffbf9056be60b3ccb4f1790df98fc0a3"}, + {file = "trio-0.23.1-py3-none-any.whl", hash = "sha256:bb4abb3f4af23f96679e7c8cdabb8b234520f2498550d2cf63ebfd95f2ce27fe"}, + {file = "trio-0.23.1.tar.gz", hash = "sha256:16f89f7dcc8f7b9dcdec1fcd863e0c039af6d0f9a22f8dfd56f75d75ec73fd48"}, ] [package.dependencies] @@ -1074,6 +1300,45 @@ secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17. socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] +[[package]] +name = "watchdog" +version = "3.0.0" +description = "Filesystem events monitoring" +optional = false +python-versions = ">=3.7" +files = [ + {file = "watchdog-3.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:336adfc6f5cc4e037d52db31194f7581ff744b67382eb6021c868322e32eef41"}, + {file = "watchdog-3.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a70a8dcde91be523c35b2bf96196edc5730edb347e374c7de7cd20c43ed95397"}, + {file = "watchdog-3.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:adfdeab2da79ea2f76f87eb42a3ab1966a5313e5a69a0213a3cc06ef692b0e96"}, + {file = "watchdog-3.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2b57a1e730af3156d13b7fdddfc23dea6487fceca29fc75c5a868beed29177ae"}, + {file = "watchdog-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7ade88d0d778b1b222adebcc0927428f883db07017618a5e684fd03b83342bd9"}, + {file = "watchdog-3.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7e447d172af52ad204d19982739aa2346245cc5ba6f579d16dac4bfec226d2e7"}, + {file = "watchdog-3.0.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:9fac43a7466eb73e64a9940ac9ed6369baa39b3bf221ae23493a9ec4d0022674"}, + {file = "watchdog-3.0.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8ae9cda41fa114e28faf86cb137d751a17ffd0316d1c34ccf2235e8a84365c7f"}, + {file = "watchdog-3.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:25f70b4aa53bd743729c7475d7ec41093a580528b100e9a8c5b5efe8899592fc"}, + {file = "watchdog-3.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4f94069eb16657d2c6faada4624c39464f65c05606af50bb7902e036e3219be3"}, + {file = "watchdog-3.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7c5f84b5194c24dd573fa6472685b2a27cc5a17fe5f7b6fd40345378ca6812e3"}, + {file = "watchdog-3.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3aa7f6a12e831ddfe78cdd4f8996af9cf334fd6346531b16cec61c3b3c0d8da0"}, + {file = "watchdog-3.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:233b5817932685d39a7896b1090353fc8efc1ef99c9c054e46c8002561252fb8"}, + {file = "watchdog-3.0.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:13bbbb462ee42ec3c5723e1205be8ced776f05b100e4737518c67c8325cf6100"}, + {file = "watchdog-3.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8f3ceecd20d71067c7fd4c9e832d4e22584318983cabc013dbf3f70ea95de346"}, + {file = "watchdog-3.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c9d8c8ec7efb887333cf71e328e39cffbf771d8f8f95d308ea4125bf5f90ba64"}, + {file = "watchdog-3.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:0e06ab8858a76e1219e68c7573dfeba9dd1c0219476c5a44d5333b01d7e1743a"}, + {file = "watchdog-3.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:d00e6be486affb5781468457b21a6cbe848c33ef43f9ea4a73b4882e5f188a44"}, + {file = "watchdog-3.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:c07253088265c363d1ddf4b3cdb808d59a0468ecd017770ed716991620b8f77a"}, + {file = "watchdog-3.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:5113334cf8cf0ac8cd45e1f8309a603291b614191c9add34d33075727a967709"}, + {file = "watchdog-3.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:51f90f73b4697bac9c9a78394c3acbbd331ccd3655c11be1a15ae6fe289a8c83"}, + {file = "watchdog-3.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:ba07e92756c97e3aca0912b5cbc4e5ad802f4557212788e72a72a47ff376950d"}, + {file = "watchdog-3.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:d429c2430c93b7903914e4db9a966c7f2b068dd2ebdd2fa9b9ce094c7d459f33"}, + {file = "watchdog-3.0.0-py3-none-win32.whl", hash = "sha256:3ed7c71a9dccfe838c2f0b6314ed0d9b22e77d268c67e015450a29036a81f60f"}, + {file = "watchdog-3.0.0-py3-none-win_amd64.whl", hash = "sha256:4c9956d27be0bb08fc5f30d9d0179a855436e655f046d288e2bcc11adfae893c"}, + {file = "watchdog-3.0.0-py3-none-win_ia64.whl", hash = "sha256:5d9f3a10e02d7371cd929b5d8f11e87d4bad890212ed3901f9b4d68767bee759"}, + {file = "watchdog-3.0.0.tar.gz", hash = "sha256:4d98a320595da7a7c5a18fc48cb633c2e73cda78f93cac2ef42d42bf609a33f9"}, +] + +[package.extras] +watchmedo = ["PyYAML (>=3.10)"] + [[package]] name = "websocket-client" version = "1.6.4" @@ -1107,4 +1372,4 @@ h11 = ">=0.9.0,<1" [metadata] lock-version = "2.0" python-versions = "^3.12" -content-hash = "0da96ff6654ff4c33b776829e34f78ba2725a0de30980ec5eaab86a8b7abbead" +content-hash = "96a0d1f0c03c7170d98e6ccb0a676213589ce4870e3904927cc3dc4c36323d76" diff --git a/pyproject.toml b/pyproject.toml index d5749cd..edebc77 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,6 +27,9 @@ pytest = "^7.4.3" mypy = "^1.6.1" docker-stubs = {git = "https://github.com/rdozier-work/docker-stubs"} +[tool.poetry.group.docs.dependencies] +mkdocs = "^1.5.3" + [tool.poetry.scripts] node_deployer = "node_deployer.__main__:main" debug_node_deployer = "node_deployer.__main__:debug" From 5140388976ac490eafdcab343fa28236d1081792 Mon Sep 17 00:00:00 2001 From: Cian Hughes Date: Mon, 6 Nov 2023 13:54:16 +0000 Subject: [PATCH 2/8] Moved typer params to config --- config.toml | 3 +++ src/node_deployer/node_deployer.py | 4 +--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/config.toml b/config.toml index 77a0dcc..ad1e328 100644 --- a/config.toml +++ b/config.toml @@ -31,6 +31,9 @@ CLEANUP_IMAGES = false TESTING = true CLEANUP_IMAGES = false +[default.typer] +no_args_is_help = true + [default.snoop.install] snoop = "ss" out = "snoop.log" diff --git a/src/node_deployer/node_deployer.py b/src/node_deployer/node_deployer.py index ef54495..e424d66 100644 --- a/src/node_deployer/node_deployer.py +++ b/src/node_deployer/node_deployer.py @@ -10,9 +10,7 @@ from .create_disk import create_ignition_disk from .create_img import create_img -cmd_params: Dict[Any, Any] = { - "no_args_is_help": True, -} +cmd_params: Dict[Any, Any] = config.typer app = typer.Typer( help="A tool for creating ignition images for automated deployment to a swarm", From 8908531c8dde09423d59dd803c66786c4cb2eab8 Mon Sep 17 00:00:00 2001 From: Cian Hughes Date: Mon, 6 Nov 2023 13:54:48 +0000 Subject: [PATCH 3/8] removed unnecessary line --- pyproject.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index d5749cd..248d254 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,7 +18,6 @@ requests = "^2.31.0" gitpython = "^3.1.40" fsspec = "^2023.10.0" - [tool.poetry.group.dev.dependencies] ruff = "^0.1.1" black = "^23.10.1" From a42bc728f690d85469843d17fa7287c458972f03 Mon Sep 17 00:00:00 2001 From: Cian Hughes Date: Mon, 6 Nov 2023 16:27:35 +0000 Subject: [PATCH 4/8] Quick, rough draft of docs --- docs/commands.md | 50 ++++++++++++++++++++++++++++++++++++ docs/configuration.md | 59 +++++++++++++++++++++++++++++++++++++++++++ docs/deployment.md | 1 + docs/index.md | 8 ++++++ docs/installation.md | 7 +++++ docs/usage.md | 5 ++++ mkdocs.yaml | 17 +++++++++++++ 7 files changed, 147 insertions(+) create mode 100644 docs/commands.md create mode 100644 docs/configuration.md create mode 100644 docs/deployment.md create mode 100644 docs/index.md create mode 100644 docs/installation.md create mode 100644 docs/usage.md create mode 100644 mkdocs.yaml diff --git a/docs/commands.md b/docs/commands.md new file mode 100644 index 0000000..0c71491 --- /dev/null +++ b/docs/commands.md @@ -0,0 +1,50 @@ +# node_deployer + +A tool for creating ignition images for automated deployment to a swarm + +## Options + +| **Option** | **Description** | +|----|----| +| --install-completion | Install completion for the current shell. | +| --show-completion | Show completion for the current shell, to copy it or customize the installation. | + +## Commands + +| **Command** | **Description** | +|----|----| +| create-ignition-disk | Creates an ignition image and writes it to the specified disk | +| create-img | Creates an ignition image for a node that will automatically join a swarm | +| json-to-img | Converts a fuel-ignition json file to an ignition disk image file | + +### create-ignition-disk +Creates an ignition image and writes it to the specified disk + +| Argument | Description | Default | +|----|----|----| +| --disk -d | Path to the disk to write to | None | +| --hostname -h | Hostname for the new node | node | +| --password -p | Password for the root user on the new node | None | +| --switch-ip -ip | IP address of the switch to connect to | None | +| --switch-port -sp | Port on the switch to connect | 4789 | +| --swarm-token -t | Swarm token for connecting to the swarm | None | + +### create-img +Creates an ignition image for a node that will automatically join a swarm + +| Argument | Description | Default | +|----|----|----| +| --hostname -h | Hostname for the new node | node | +| --password -p | Password for the root user on the new node | None | +| --switch-ip -ip | IP address of the switch to connect to | None | +| --switch-port -sp | Port on the switch to connect to | 4789 | +| --swarm-token -t | Swarm token for connecting to the swarm | None | +| --img-path -o | Path to which the ignition image should be written | ignition.img | + +### json-to-img +Converts a fuel-ignition json file to an ignition disk image file + +| Argument | Description | Default | +|----|----|----| +| --json-path -i | The fuel-ignition json for configuring the disk image | fuelignition.json | +| --img-path -o | The file to output the disk image to | ignition.img | \ No newline at end of file diff --git a/docs/configuration.md b/docs/configuration.md new file mode 100644 index 0000000..8d67b80 --- /dev/null +++ b/docs/configuration.md @@ -0,0 +1,59 @@ +# Configurations +The following is a list of preprogrammed configurations for the node deployer. +## default +This is the default configuration on which all other configurations are based. + +| Variable | Value | Type | +| --- | --- | --- | +| SRC_DIR | "src" | Path | +| BUILD_DIR | "build" | Path | +| DOCKERFILE_DIR | "docker" | Path | +| SELENIUM_INIT_MESSAGE | "INFO [Standalone.execute] - Started Selenium Standalone" | str | +| FUELIGNITION_INIT_MESSAGE | "ready in *ms." | str | +| FUELIGNITION_URL | "http://localhost:3000/fuel-ignition/edit" | str | +| FUELIGNITION_BUILD_DIR | "fuel-ignition" | Path | +| CWD_MOUNTDIR | "/host_cwd" | Path | +| CLIENT_STDOUT | True | bool | +| CLEANUP_IMAGES | True | bool | +| CLI | False | bool | +| DEBUG | False | bool | +| TESTING | False | bool | + +## local +This configuration keeps all computations local to the machine on which the tool is run. + +| Variable | Value | Type | +| --- | --- | --- | +| FUELIGNITION_URL | "http://localhost:3000/fuel-ignition/edit" | str | + +## remote +

This configuration allows the use of hosted websites for hte fuel-ignition configurator.

+

Currently, this configuration is broken/deprecated. It is being kept as it may be be reimplemented in the future as part of a dockerless configuration.

+ +| Variable | Value | Type | +| --- | --- | --- | +| FUELIGNITION_URL | "https://opensuse.github.io/fuel-ignition/edit" | str | + +## cli +This configuration enables a typer based command line interface. + +| Variable | Value | Type | +| --- | --- | --- | +| CLI | True | bool | + +## debug +This configuration enables debug mode. + +| Variable | Value | Type | +| --- | --- | --- | +| DEBUG | True | bool | +| CLI | False | bool | +| CLEANUP_IMAGES | False | bool | + +## test +This configuration enables testing mode. This mode is used for testing the tool itself. + +| Variable | Value | Type | +| --- | --- | --- | +| TESTING | True | bool | +| CLEANUP_IMAGES | False | bool | \ No newline at end of file diff --git a/docs/deployment.md b/docs/deployment.md new file mode 100644 index 0000000..a162941 --- /dev/null +++ b/docs/deployment.md @@ -0,0 +1 @@ +This tool creates an [ignition drive](https://coreos.github.io/ignition/) that can be used with a [OpenSUSE MicroOS self-install drive](https://get.opensuse.org/microos/) to automatically deploy new nodes to the swarm. \ No newline at end of file diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..6bd6fe0 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,8 @@ +# I-Form Server Node Deployer +--- +## Introduction +Welcome to the documentation for the I-Form Server Node Deployer tool. This tool is designed to simplify the process of deploying new nodes to the I-Form server swarm. It is intended to make the process of deploying new nodes as simple as possible, and to reduce the amount of time required to deploy new nodes. This should provide a reliable and consistent deployment process, creating an adaptable and scalable foundation for building research servers. +## Description +This program is designed to automatically create install media for deploying a swarm of minimal, immutable, and stateless nodes, to which containers can be deployed. If correctly configured, the resulting nodes will automatically connect to the specied swarm manager and immediately begin running deployed containers. The deployed nodes can be managed via the MicroOS dashboard, or via SSH. If the swarm is managed by a similarly deployed node, the entire swarm can also be managed via the MicroOS dashboard. Otherwise, access to the swarm manager is required to manage the swarm. +## Notice +The tool is currently in early alpha, and is subject to significant change. \ No newline at end of file diff --git a/docs/installation.md b/docs/installation.md new file mode 100644 index 0000000..8c7dd6a --- /dev/null +++ b/docs/installation.md @@ -0,0 +1,7 @@ +To install currently, download the `node_deployer` repo from the github repository, then install the package with poetry: +```bash +poetry install --no-dev +``` +The tool can then be invoked with `poetry run node_deployer`. To install the tool system-wide, run `poetry build` and then install the package with `pip install dist/node_deployer*.whl`. The tool can then be invoked with `python -m node_deployer`. + +This installation process will be subject to significant change in the future. Currently, the tool is in early alpha. \ No newline at end of file diff --git a/docs/usage.md b/docs/usage.md new file mode 100644 index 0000000..392a8fe --- /dev/null +++ b/docs/usage.md @@ -0,0 +1,5 @@ +To create an install disk invoke the `create-ignition-disk` command. The tool will then prompt the user to input the required parameters. Alternatively, the parameters can be passed as command line arguments. The following example creates an install disk on `/dev/sdb` managed by the computer at `192.168.1.1` +```bash + node_deployer create-ignition-disk -d /dev/sdb -ip 192.168.1.1 +``` +The user will then be prompted to input a password and swarm token. \ No newline at end of file diff --git a/mkdocs.yaml b/mkdocs.yaml new file mode 100644 index 0000000..21d4ed5 --- /dev/null +++ b/mkdocs.yaml @@ -0,0 +1,17 @@ +site_name: I-Form Server Node Deployer +theme: readthedocs +docs_dir: docs +site_dir: site + +nav: + - Home: index.md + - Getting Started: + - Installation: installation.md + - Usage: usage.md + - Reference: + - Commands: commands.md + - Configuration: configuration.md + - Deployment: deployment.md + # - Troubleshooting: troubleshooting.md + # - Changelog: changelog.md + # - License: license.md \ No newline at end of file From 51c15fda3a633c414d1cba0e89033a460987f534 Mon Sep 17 00:00:00 2001 From: Cian Hughes Date: Mon, 6 Nov 2023 17:52:59 +0000 Subject: [PATCH 5/8] Automatic documentation via mkdocstrings --- docs/src/autoignition.md | 3 ++ docs/src/create_disk.md | 0 docs/src/create_img.md | 0 mkdocs.yaml | 14 ++++++- poetry.lock | 89 +++++++++++++++++++++++++++++++++++++++- pyproject.toml | 5 ++- 6 files changed, 107 insertions(+), 4 deletions(-) create mode 100644 docs/src/autoignition.md create mode 100644 docs/src/create_disk.md create mode 100644 docs/src/create_img.md diff --git a/docs/src/autoignition.md b/docs/src/autoignition.md new file mode 100644 index 0000000..2ead1b3 --- /dev/null +++ b/docs/src/autoignition.md @@ -0,0 +1,3 @@ +# autoignition + +::: node_deployer.autoignition \ No newline at end of file diff --git a/docs/src/create_disk.md b/docs/src/create_disk.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/src/create_img.md b/docs/src/create_img.md new file mode 100644 index 0000000..e69de29 diff --git a/mkdocs.yaml b/mkdocs.yaml index 21d4ed5..99f7a29 100644 --- a/mkdocs.yaml +++ b/mkdocs.yaml @@ -8,10 +8,20 @@ nav: - Getting Started: - Installation: installation.md - Usage: usage.md - - Reference: + - CLI Usage: - Commands: commands.md - Configuration: configuration.md - Deployment: deployment.md + - Reference: + - Documentation: + - autoignition: src/autoignition.md + - create_img: src/create_img.md + - create_disk: src/create_disk.md + # - FAQ: faq.md # - Troubleshooting: troubleshooting.md # - Changelog: changelog.md - # - License: license.md \ No newline at end of file + # - License: license.md + +plugins: + - search + - mkdocstrings \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index 1b6106e..f6bbd65 100644 --- a/poetry.lock +++ b/poetry.lock @@ -440,6 +440,20 @@ gitdb = ">=4.0.1,<5" [package.extras] test = ["black", "coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", "pytest", "pytest-cov", "pytest-instafail", "pytest-subtests", "pytest-sugar"] +[[package]] +name = "griffe" +version = "0.36.9" +description = "Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API." +optional = false +python-versions = ">=3.8" +files = [ + {file = "griffe-0.36.9-py3-none-any.whl", hash = "sha256:7874febe7cd81e8e47eb7b8130ff9d38c8f3656233c01d2d217d2e898a0925f5"}, + {file = "griffe-0.36.9.tar.gz", hash = "sha256:b4e510bf0ed1fc91c58453c68018a2247c561adec8f5dadc40275afc01f51eac"}, +] + +[package.dependencies] +colorama = ">=0.4" + [[package]] name = "h11" version = "0.14.0" @@ -763,6 +777,61 @@ watchdog = ">=2.0" i18n = ["babel (>=2.9.0)"] min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-import (==1.0)", "importlib-metadata (==4.3)", "jinja2 (==2.11.1)", "markdown (==3.2.1)", "markupsafe (==2.0.1)", "mergedeep (==1.3.4)", "packaging (==20.5)", "pathspec (==0.11.1)", "platformdirs (==2.2.0)", "pyyaml (==5.1)", "pyyaml-env-tag (==0.1)", "typing-extensions (==3.10)", "watchdog (==2.0)"] +[[package]] +name = "mkdocs-autorefs" +version = "0.5.0" +description = "Automatically link across pages in MkDocs." +optional = false +python-versions = ">=3.8" +files = [ + {file = "mkdocs_autorefs-0.5.0-py3-none-any.whl", hash = "sha256:7930fcb8ac1249f10e683967aeaddc0af49d90702af111a5e390e8b20b3d97ff"}, + {file = "mkdocs_autorefs-0.5.0.tar.gz", hash = "sha256:9a5054a94c08d28855cfab967ada10ed5be76e2bfad642302a610b252c3274c0"}, +] + +[package.dependencies] +Markdown = ">=3.3" +mkdocs = ">=1.1" + +[[package]] +name = "mkdocstrings" +version = "0.23.0" +description = "Automatic documentation from sources, for MkDocs." +optional = false +python-versions = ">=3.8" +files = [ + {file = "mkdocstrings-0.23.0-py3-none-any.whl", hash = "sha256:051fa4014dfcd9ed90254ae91de2dbb4f24e166347dae7be9a997fe16316c65e"}, + {file = "mkdocstrings-0.23.0.tar.gz", hash = "sha256:d9c6a37ffbe7c14a7a54ef1258c70b8d394e6a33a1c80832bce40b9567138d1c"}, +] + +[package.dependencies] +Jinja2 = ">=2.11.1" +Markdown = ">=3.3" +MarkupSafe = ">=1.1" +mkdocs = ">=1.2" +mkdocs-autorefs = ">=0.3.1" +mkdocstrings-python = {version = ">=0.5.2", optional = true, markers = "extra == \"python\""} +pymdown-extensions = ">=6.3" + +[package.extras] +crystal = ["mkdocstrings-crystal (>=0.3.4)"] +python = ["mkdocstrings-python (>=0.5.2)"] +python-legacy = ["mkdocstrings-python-legacy (>=0.2.1)"] + +[[package]] +name = "mkdocstrings-python" +version = "1.7.3" +description = "A Python handler for mkdocstrings." +optional = false +python-versions = ">=3.8" +files = [ + {file = "mkdocstrings_python-1.7.3-py3-none-any.whl", hash = "sha256:2439d6ad3e34f0bb4c643b845fb3c06ae9233499a1736f9fa273424b75cc5894"}, + {file = "mkdocstrings_python-1.7.3.tar.gz", hash = "sha256:c20128fa96c24dbc6437b10dfedaf33b0415d4503e51ce9ce5e84b271278268e"}, +] + +[package.dependencies] +griffe = ">=0.35" +mkdocstrings = ">=0.20" + [[package]] name = "mypy" version = "1.6.1" @@ -910,6 +979,24 @@ files = [ [package.extras] plugins = ["importlib-metadata"] +[[package]] +name = "pymdown-extensions" +version = "10.3.1" +description = "Extension pack for Python Markdown." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pymdown_extensions-10.3.1-py3-none-any.whl", hash = "sha256:8cba67beb2a1318cdaf742d09dff7c0fc4cafcc290147ade0f8fb7b71522711a"}, + {file = "pymdown_extensions-10.3.1.tar.gz", hash = "sha256:f6c79941498a458852853872e379e7bab63888361ba20992fc8b4f8a9b61735e"}, +] + +[package.dependencies] +markdown = ">=3.2" +pyyaml = "*" + +[package.extras] +extra = ["pygments (>=2.12)"] + [[package]] name = "pysocks" version = "1.7.1" @@ -1372,4 +1459,4 @@ h11 = ">=0.9.0,<1" [metadata] lock-version = "2.0" python-versions = "^3.12" -content-hash = "96a0d1f0c03c7170d98e6ccb0a676213589ce4870e3904927cc3dc4c36323d76" +content-hash = "928828e0aced77a627487120700ec1db6f94648d35ff77c96e377b1c74e0e5de" diff --git a/pyproject.toml b/pyproject.toml index edebc77..578c626 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,9 +1,11 @@ [tool.poetry] name = "i-form-server-node-deployer" version = "0.1.0" -description = "" +description = "A tool for automatically deploying nodes in a cluster server for research environments." +urls={github = "https://github.com/Cian-H/I-Form_Server_Node_Deployer"} authors = ["Cian Hughes "] readme = "README.md" +license = "MIT" packages = [ {include = "node_deployer", from = "src"}, ] @@ -29,6 +31,7 @@ docker-stubs = {git = "https://github.com/rdozier-work/docker-stubs"} [tool.poetry.group.docs.dependencies] mkdocs = "^1.5.3" +mkdocstrings = {extras = ["python"], version = "^0.23.0"} [tool.poetry.scripts] node_deployer = "node_deployer.__main__:main" From 4c59e9a607460f35c888fdd687eccc2b0dd32017 Mon Sep 17 00:00:00 2001 From: Cian Hughes Date: Tue, 7 Nov 2023 10:27:46 +0000 Subject: [PATCH 6/8] Added commented out config to remind of plan --- mkdocs.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mkdocs.yaml b/mkdocs.yaml index 99f7a29..3409d8d 100644 --- a/mkdocs.yaml +++ b/mkdocs.yaml @@ -22,6 +22,9 @@ nav: # - Changelog: changelog.md # - License: license.md +# markdown_extensions: +# - mkdocs-typer + plugins: - search - mkdocstrings \ No newline at end of file From e0e23c7b9b7ad30fa9d6693891ab875f6f2911d8 Mon Sep 17 00:00:00 2001 From: Cian Hughes Date: Tue, 7 Nov 2023 13:43:26 +0000 Subject: [PATCH 7/8] Polished up documentation --- LICENSE | 7 ++ README.md | 34 +++++++ docs/assets/favicon.ico | Bin 0 -> 116246 bytes docs/assets/logo.png | Bin 0 -> 26110 bytes docs/license.md | 7 ++ docs/src/autoignition.md | 2 +- docs/src/cli.md | 3 + docs/src/config.md | 3 + docs/src/create_disk.md | 3 + docs/src/create_img.md | 3 + docs/src/debug.md | 3 + docs/src/utils.md | 3 + mkdocs.yaml | 51 ++++++++-- poetry.lock | 210 ++++++++++++++++++++++++++++++++++++++- pyproject.toml | 4 + scripts/docs.py | 32 ++++++ 16 files changed, 356 insertions(+), 9 deletions(-) create mode 100644 LICENSE create mode 100644 docs/assets/favicon.ico create mode 100644 docs/assets/logo.png create mode 100644 docs/license.md create mode 100644 docs/src/cli.md create mode 100644 docs/src/config.md create mode 100644 docs/src/debug.md create mode 100644 docs/src/utils.md create mode 100644 scripts/docs.py diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d0fd285 --- /dev/null +++ b/LICENSE @@ -0,0 +1,7 @@ +Copyright 2023 Cian Hughes + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md index e69de29..843404e 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,34 @@ + + +## + +# I-Form Server Node Deployer +--- +## Introduction +Welcome to the documentation for the I-Form Server Node Deployer tool. This tool is designed to simplify the process of deploying new nodes to the I-Form server swarm. It is intended to make the process of deploying new nodes as simple as possible, and to reduce the amount of time required to deploy new nodes. This should provide a reliable and consistent deployment process, creating an adaptable and scalable foundation for building research servers. +## Description +This program is designed to automatically create install media for deploying a swarm of minimal, immutable, and stateless nodes, to which containers can be deployed. If correctly configured, the resulting nodes will automatically connect to the specied swarm manager and immediately begin running deployed containers. The deployed nodes can be managed via the MicroOS dashboard, or via SSH. If the swarm is managed by a similarly deployed node, the entire swarm can also be managed via the MicroOS dashboard. Otherwise, access to the swarm manager is required to manage the swarm. +## Notice +The tool is currently in early alpha, and is subject to significant change. + +## Installation + +To install currently, download the `node_deployer` repo from the github repository, then install the package with poetry: +```bash +poetry install --no-dev +``` +The tool can then be invoked with `poetry run node_deployer`. To install the tool system-wide, run `poetry build` and then install the package with `pip install dist/node_deployer*.whl`. The tool can then be invoked with `python -m node_deployer`. + +This installation process will be subject to significant change in the future. Currently, the tool is in early alpha. + +## Usage + +To create an install disk invoke the `create-ignition-disk` command. The tool will then prompt the user to input the required parameters. Alternatively, the parameters can be passed as command line arguments. The following example creates an install disk on `/dev/sdb` managed by the computer at `192.168.1.1` +```bash + node_deployer create-ignition-disk -d /dev/sdb -ip 192.168.1.1 +``` +The user will then be prompted to input a password and swarm token. + +## Deployment + +This tool creates an [ignition drive](https://coreos.github.io/ignition/) that can be used with a [OpenSUSE MicroOS self-install drive](https://get.opensuse.org/microos/) to automatically deploy new nodes to the swarm. \ No newline at end of file diff --git a/docs/assets/favicon.ico b/docs/assets/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ca66531a614af52da5230130a3101e9e85d13841 GIT binary patch literal 116246 zcmeFZgLKqOFTal9P4yAMGj=TMx z^9P)J?|IIB?m6H6Jo}kp&t|W+-u13GKJRC30Du6Pz`p|m&;!Mi0AL1w4+!{gf3spk zfQM25APHXo_d6>T00a~u05|u4zn=*J^di7t=>PlQgaCk92>}Sf&wuw@U;se*4+s#Z zrXojxONk3Unm|GRHT>VN|4!_GP3t%n|7#Os@1&vu8On1{1KTrFcrB&jF}t_mUadRj z%W{U|ELu8SY^sn5pvO52ff5>^|!BfCJ*v*A%svIR~ox?W<=1WI%(^(kyvO##_kv-&Dva2wz|d~C&t~P; zgx!CYu#?WwdD?~8rb&-QV?LC3Oa{VL^; z#SVrsC95-(xX!aptqyNqJR4c_xVDoBZtkIM-p5fuRs$TSb1{H&k$g#c9Lw1 z835sicmQ6&JV`fhYqo(vayYyn9=?%#h!J26_~Fw-2(zwQ#mKq-`hClc|J!Sr8EC(NWAc+lOFfqO5w9H1?+j{xR1xPAG-sZMPB&J;nldVyI{!aYq$7tFEs93olE_$5PUgFdA+cX?2%QOIClBD#lwv zQ910akS;vDh><+QZ=M}Fy-2}x^9t-2wT=7L0+sje@>1REO9-J1*o>sl)qhclJ@}N8FQ1i`O2DF=AjXDBv%$zCl4YN6 zah_HcS)5>31eB}q+rPvOQANW4;^c-ur3j`XAG`9^=sKNaW-8g?41uIeIUO7G;PXRJ89WdK%W-H5?XLK(i zViyM%g2pDk4c(0)&QAK`_Bxt9>1#TJ2i23pgO-yQOIU3D1*1fiQK=2z;1x_2*tyXP z!7D2(cUl0~VvBo}lE`2ZXVc52A}rchO|5N1TY~sr{MZdO^TxV1LEcf3Yh zx{CET3qI2Pt7^I?F@B&kPs=59Lh#d)N}l{v?ALzl?TazGn$HT1rigFpYW7fxggA1tZ*@d;0OP`BUdx)YdJU`WWhk+lWVi8`2BSoE~? z)K1Gndl!HBnWLLlFYy(druBW_WOn{TN$^of)7g-9h(mLQEdI4`{zz=axK;1PAdPfV z^@_Ee7MjpT>5@m($?5F;u}4b0m-o9A*U*i_57g=Qn_HDtnr(0kdWFQV-M}2t6`9;G|XTnWfx}K$TQ`n>j!ZIY{r2-VY6zagJI!$S^dq^_O7?FobLG zSMEU-pjuWseO*2 z@SiwZj(CT>_WArdNy(07Pzia`E|yQ-*8GQ^-0>1K4aOF{dl$1(ljy*=wXVgFKcvnZ z;l0fx#~vSf(xMJ3(1L)V$7b5&6G7>h&5orSLjB~z59k$v&1DRS%^o3uaLRDXQn~i@ zY-WlK*UW!%P2YDDP9yV7pBoEsGR}-hm5WhkmZBfrpIewA4t;ebd>)837+W6SYm=@8 z+q$=P7;b8b736f&-B(W&yMFhajh~csrQtGoGpwQE;5uyBpXNg0K|rfFDy_OhQKsk& z2*F`+C&#?~iAW)-)h1oh>d?O>f3~^L>mB~USQT7UhbPuGs#tzUitn`zr{g9*zuGU9 z@NqFxRIR%`1jRQtW{Y&EP9DO%eibpPjh8D!-rI%8#c}5kEp98DNXQ14m~yxBv;EJs z?IXr-e({AVW7}~g^{cKstt1~0Ri3V%*B{f=XB`oS6D$Cr z3%K#h`q`RH&#g>HnyB6mBKQgU3cgMyyjdasK}MY0h9kM)^TymxyXq@(d*Jnu-rUm0 zjhB5zOH@UC@`5xV`VPOI{lD&R1STI6)VE0tqilM~ zBKafZ2RYi(A>YRL&V3(GSskKBsV!z>yS~SMV$)Q@wKoi}*(PfLlTYl~SFqC{B{9EX zyO1zM^O=6kK1X=pn2?G6hM|ITdR&MnqcdNPzLV>lm}(8 z#>zKsW!kc-glotR_g?JmNVqBhsvD_rQOc8ub$i#Oe&vRY5mPffuUBdD+M&556IMR- z7CqO2A)<|@&i0zm4rt0YF}~d|TMRl*zpd>Q2aQfPE2)x6>E)~RMD6ZM{I4|^yYo6H zZ%a=8yh!(!8;dU0MQ&mM1}&DOs;kFcC<1~;u;-TOhO8PjX^~ONnEDt8HQ=2I)y7ul z&jlbi%Rj!?5j?EFuPU0GomfiYzr*L|UnsuzJ91bc(?@rZ2q-&j3w@FTwB9dMkhQN_ zPp$fuR!l9%4pF(C z;H{fq|90a-FwP~E1}c=)&|&*KeLcK7aamCXL>;FxrE98Jv=zYr0hSZ{&K?e}v{kw> z)^Y9`@NT7N5v*KZUR0*0cG1ndZVdmZUeO8z?{v_;3oDO5jX=aVFzmhO-4b!G&AMp4 ziAS+40SB*V56d)cvw>*p%pAaOYrl5i(Z(;(P>p5p3-8ursG%Q&W-C|gIQE+Rrw|Xf zZkj;9Sx2OXZ6?rq-6FV4PuPNvzRz+byka(2h^|GE4SEgSR<3Pl=ReL#RySmhWqPxf zz79Nl^_o?+Dgf|Xdq<=ZwqD^y3&vo^TGuF@39HDhR0kI~fg4{yb;0r4;H(6NZZ(JD zusnQWpr75+aeRR)qd07=;?>LC8+hreVcnZTMwWkHe|z?$Xe@eT;byZWRV+-6?jh6@ z@p;_8q(=O^Ju0o%SH^MN1v74oit*dX(s*-T*BP1H0AOc?ofAy~uxSRd4A9*(L#Jbkz9(b+_TQQsAO#>Mm|qRjWS>5g13s8(4kiY5Ycb ziv?87`^_1M?bR>tgFQ7$?KjK7Ps6;lVX)sl6U`suV|#|dnpBql^>lShmbHskSV*94 zr~FUt&V%Z=po##~0>c|Vjqj^D&qebW{`PSs%rvMC49ThX56IkioXuhRXSj)?K0)e3 zh>lV}Le8^EkC^?hxn0HWzu+ZpzJ#+=wUf^toFZ%~r^C97EE;T5$e+yi26ESFRpd$DxWWmi#0?7et0pwCJ=a2@{Om=49I5RfZX7khjW zrI06aJFaSWPZ-eVY20Az#$Xi@%%^%|5i)*jVq(bC*ul4HHz;4LXdgO4DNlqbDx!)* zvG~)5{Jmq1=dx+@{f2bg6+XP+1JCNUSs#1VnA6)9KGbfB^XHbJG4&>U5M7wV&tYiAW!OCFS?IjIEuxPoAFY9XtNo zvAYeORq1vM3vG5`p_CY`*R=D~Wv|ZQ^!_Uwq~+ZWzh#J&V(=%&y?z^yIzp?)k=O*_ z_3RXSwbY~KnT>TRHVRgfeq}_Sr?-1b@NT-lxjJk|`-P>F%7db!q7HvzjH6xwn;V13 zFOhMNyLyUXOvhwSwEEUss22JpXWTv`PlDT_q%JS$XZMrJvkTVYhhjkKdv5!^ZC+H* zM&zj_R)Uru+)7F5qNWpeli6Expz4mI7Eg6kLjB~ycWTNwO1oDX3e>acIYK%@nKu$N>vQ|<`ik^NQvCTC{@%fPvUlA zK?zfUad#0bpvOU8mlVGKB)YF^tCi;Od_Xqnyu1Dyo$Sf7`m2>PsiGEz;mRVlbs~os zB&PU2|#|%@`ZP zCury)y>`Jw@OO3HHo%zfx^{IgT!HS<=&ej@2_93ShfD7`$lKntYqdG#qWhsbc`07! zmG82B@W)=R<*VRN!Z7$yHdQ;#AKh1HhPus^f*}jdsU~3jmtKTDsP0NHJJdeEEx+L1 z^dTEsKqF^c(Y&$$&*KZ4tnN%RiEL~LN5tA>S+DNxMZ(xSG@&L}MSXU~kQ6ZpwXe-6 zH@;V@;qX9kGfzgBOof}aH6xTkp_*9|`_q>I#vuCKL_X|~H(2*#lGURjliW3v$)n$Z z_mM<)4-$-K_VOJlE2M1*2NS`0Nqv?ybxSyxh&X%IUu1pJj$6=UChOM)R#VqYN z`Y4yyrmbX9BJw6o53X8(R-BxdL;!-({)@|Z!{PLZP8+f%vtchwUIGTfAW7WZBov-5 z5;wOd3zJ)wtwcRM{Kpmsf)VrMCrn8I$)5tYm;Z&i)5zWGGkm)GF4__VyEcrwk< z@(`~nRxcf{ecf8Ds)AVrhR+h{4mPO$xLWpD$K4AO>d>@|F$P#~MRNE$=vo}u3KxAvC-E*Lql>gN-CKCRqj*rP09PriSf3{3VyZ* z?YBh@8I?BQ)w$Z5J=RW?>XGo$7<3QQ1}>i&qIS>#vjtEiE||s&raZGM=cgLkEeL*v z{XB8$Fi#YH^eLr7Eqbs>%5lzu&W~K4m2WU`$?5XW6*B-1A>lz%Y0y`JkN&z|Zjh zi_Q&BVxv&<4t`)c55Xj&U=e#+yW8|umuZLQk;i%&>R)8DeY)xgs21MNwNOo&(rxWm zNvN}uUyIsbQc3{avbjlj79|G#M*J*5w;_pSi3Xpb7Ae(D4k{^A7CV?*qlP=4IA}S^ zil5dvQoK({c*5fIOlN2DZ`Rc8^oVV5w-}v+k5R&A=!dBzl0W4ZdB;hAP>d+^+ zo`0CbyhvX!(I+|LoBw)P61*zbdO)nNm{1 z*D3o<8rGV7l9bq@SmRyUPHk$^n#Jn~ZxdfSd02gQ)U?jvR~D$dJ^PsauDit>CI6&- zX<&TL-(dG`pP8zlXoG-7Pej6d%<>MoL}=v*p_Nx5kANWEtvTCiM3ei&x{05(fX7v; zFjl((XZO7Vr~Uk&S3dN}lFcl062$mBwU8Hpral_b9{<`^9VWge)Eql-DIo!~WQ3Ny zQ+=zCc`(4LDFLRGdJ9d~s{_@>b1lvukK6x(YAcbM9fQv>P8>N#FnpE9sBYrMdBYr# zAmWZ+)VjQ;TlU~!r={hLMK_dqaIA@i4WdZoN@Kj5546@~Z0IFp5Sb`zVW4SFt6z3n6_r#zB$C z+>Yk+7jlmR&{&@bm)fQyvTWy4H6&|DS9Z1TztDYtmbUrM-DX=?Nu(UF(tE?vh0>!8g32Vjnt7}s}5WgB`YXg%eTeWIhcUbdHY2LRA^ijHMPE-t@|kD+p0TG7t6 z)mY$cu^!)=ydmk`X>1(K_cFp#hdql<`g+~_Xvgme%mb+-h)=f%=C0i{iaC2!cRuQH*X}CxM|h}utf;F8HED|<$V>u*DhPK`p(y#yWWP3?7K5C zM5=#}6|AV`n7Q8^QEkH-D&%&iqoPo1#BRetFZmb96sn zOR=%HbaoFxoE+@x)YoapY(RXFNgGy{XxM0%aoq9JGvoS_FeDl2)3(Rq5)s6g=s?kE zv}KL3pVRL{(N?AnigTBw{+MZj4{_;=&MFNXhaW%snSWc`uv+^OA#-eoc2a%ybT%_l zTPCh-()Ume%wYr~SC7*L&uZV|>?ZAA^je~|pXk(rb{KUg+B$T6A@h8%_nx#PhcEkO zcu?#9-D z?JuofaFEOy#Dl`RD~&heLofGxH!f;WHTwD@D;e#s4RWkoCD#fR?XUX=C-PRbfsl|; z9b(0o8LuYc1U`p9Q+e(y^5tn|&wSfv@S*ZE%d2(X-h29PG>cQe;d*^C*t+FY2~>IV ziv-Jx$XBY0MD6`b#z6Z9Vw@CFU|i}Kn)~aQ$wB{5=uJywwof;=#aU`a7}z5xC)%bT zd^6p0Aqzvo58dA>CRq-K*=pGow++oiCM5%+py+MJw4M2C@~(d8)^y!K`DQG7LT^Ka z#w~ibMC|P^zo>No11>U;FKUf`G>d?S%w~>5l}(G^ooXY|gR}1HI&;4xMg1us+X*b%PrATHh6o&TB^NBZz)!CSVf;a1tpgzEds%a}zTtej$G7DrA zLL>eJu|?;*)FlNpV^$6)l?vpFr58sTW2$6F>n&hp;8){kHi=tH=p}EhgSN~BoSJ3l zKM@Pyca>-`%ULoFa#;ins1-r@bG~HCN`eGRrv|Gt<>`O&`)9mutlT^KGi8QEi_1f%~<#Ztk4j6O32l4NXLCoD7M0yQ#atCj1c>VTJl%V*Nj0@n_l3E|iD~G-Tc7W9 zqE)e83|6HEhgoH6sJ+#5vCE60kZ>EgZIU0?hzk+3nf^6$(r-3vxb1;Kgg~t{}CcEa4B261Ow-+8fwTJ)z549zKmF zwxuOFIdxNxy5^@t!(I`DxKSY%92~C`fW0~(t+#vI>M?bT0eLoK$j@?MEQiL`4fQ3V0g3gax8B?w`bJx{9F zEcq1!*(|Prz_y{(rCE&Xoo2LkB{=Q1Y=)6}Z`cD^5mfN)!^_LfnQG%LlFLt(v0UU! z1&KlLXVaRW$(JZPGF~UVPfquoFT_X7@&R2Ds|7)mR<{lgD-&K;Uv{5oSBGWysIWY+ z%<}TP)O(Kiv$Y}y>R?$~1h&&0VrLaKPxxx=hqU;vbrIY^rYF=)9!Q2{7CJ-vah z#zbGu{K__EL`=f1kcoF}#wHA4dw7VP$j4*c@87u3Si#WLU~dp7Ig<`)uKjLBi7N50 zl{HEg1Ww&4_8P6poAxO+%dM%aUQAYbUD}3kGP_r#A61JBzDxkTPS0=e_4+ANnJ{RM zNvv2x6oz@T2EWZ}iv{wQ1a%47jy3HPAg zXfZ75Gg})lJdSed;A>Y$C7Vg7>G=MmKNRSBbZDo zDe^qow(UJ%x*lu(8xvyyMa=M-An+LgNZUA8vVcrC)=YUe$>$bG z5px-X=Oz^ZDq(clF|S!@gfqZ~+8}jJRE0oA7aT-I!jwW4#(}sc!PBI5?VY#xIA3W_ z&u1_Kwi=tCS)q4TLNi#OgyfZ6KjnJ~ahY!VvaV3(&&nc{Cc4KrJSK0~Cx9PIXsqyJbXspbN=y`Ci!MnK1zm z4C3LVlA$L6`LpU+!EkAGI{^Y$3YjC6?pmrZr+Tvf%_c=Rw9d zN5|Tpwf0eB%H$d}7WU4AYmyOWi54JVGKp6r!hFe&kY;jy5&pUc9K-s%fM|;gdo3?I zbVx7rn-@iOXXvApA(NTMbJhe1{vdc`$(y0{BXp-gE4yLb+|M{$k?#N~Fj!)nHZJ1k z#GW2mrQ{@x-jE@slcKK@P-quFGKkH7K!>kE7fWe0O&(;XV_ZmkCMmabcF@#JJ8v+PYM%QcdH>!Eo2#XL~_} z={&FA_oPpW-}X~y`I&L<#cGNnMN$f?~pTzpehN*(Yzlpust@Npj}&{j-B-Sx_Nk_{lw7!)DRZgIXg zcvF{SZ-r*T_bW2KF&xnV(C|Q?BL;)xnr)1p))Tb90n)C>5-+{GRg^~dIbW(`mlst# zlUA`Ia!HJ4R=EJl1mXYlz~Mdr}T zdUCu8sTy7!hMqP2*}0uEDr$$&7~1rHFNm@xd)j$dW#i0pwKMZQ$4KOepzf5A44dVZ z`+8wp#o%B_l+R+ZoBJHPvR>o-B>tde$>s#57|fDPvfD;y1}5Qife%q*KcB68&)oEh zXI9;q!^;vrkhpPZIrdjM^8t1>J*1!OHK;d^$WyNXm)E$%ATZ8E^-)bKc38z*&X#HF z4@UchZ_8Oyd7pQB3vFwrC6WO#>6rHwpmbjlo*wrKki-M=x05H`JSv3H+FW#)nKglY z$@ql{HyOs?K6OUAX6Nf+53sI7s>{>|98@R;>KQuBK7Js%^fXAeg_E1-50-^`W>g^y zFxb206m!aG%-97t&3T(%S%XQLD^E)LH&t8rh6;It4ls{KTh|CVSd>+0D%v&vY1~KF z4&WuabrrSMu_9!s`)22LF36E+zZUrjWC5C-k)Erws<1QfR2qrZ>`z&MLb z&$EUIc;CMf_4ES*Wn;+tc0pBTYNz+3w%Fxtvhvy(m{_MJ;;ze!+uJ$P)F!}xzH^j2 zqRITAN=5|jau!~BQf+aZnjBf2MRO_*6oELyhkP8ZB$~R^8E!kiRrhVFqlp2kzM%q| zAuHoK8)uLV!9R?`cN_iMR%d}^2#(HITgbIK0AHj))vd$ANUP!>m*ww;$d>r>Qr}{YBW+G!87Wp>koW33hRVXw|F)3F8n^O zW`wB0tN@iOsXUu>%R$ZV@fS;EjoJ}%EAMZ4_-L_)tNQ1|_V4$pNCWz=y)%bq1=nUGIqkzbv!4N!O-{{`VBnj`n^9MKdo^05^q@|?&u-aD( z3B;7|Ip<3J4%#VLHYluhQv3_R%ILOGbM~=H8tm+mI?SrDcaac&Uy!t6seo3$)ul&3 zFYf2GT~i*P6!^VL5LbaH7{;FkMys)OJzRFpxf>d@JV@pkYI2rjfBFww$Euj;_6v4K{lpT`{7@nxE$iffyG8 z%p?zXRW~5O@iD^_=sAxpiW~oG?$&pZ8HTe{@YW9{YaPX!e6?%AO(RoPyH~iF>~Csi z*|p#|7cff6609bXmHue16)I2t{C0MyreL2X+cpTqJ3M?RFVZ7{`rNvyJGyHxq(tL( z_+RD7$65S$&U`_dU({i~2+at6o#;2U&3#Y0;Yv#U%!TGZYcn}ZYh+updQwvlY%+?M z)G50GlO`X&-ne{XK73O>HeWga>|+$x^@8{Hb;b>B^D!q2g1)rIWYYCw3@}Ss$#_vw z{{h?eWFmTrc{zW=rWID$DMgQ5qpWS-@eeKt?vIlpw** z-Nw&-aHWns!|iu#9NBBO&y4C3#0htgfj>@}?poWW!MWH}AHSrgSt;qe+fD`8BHBvw zCly7?l~k^hST+4g`Bu+C^UxOWrc)XO$w?ucH`Lm72MdK=AN>UPzRXTGc=Ir}@3e>w zW*btRPrOeKnZ`D;AvcL6JZgik=s!nbjru%MgXKT|?P14Rrm^!^FxQdD!moGj(Kbk% zVMY`TkC{H~42w(}eS+X#+MY2)P2Hgz->y|H3{f=jD2$`@JUtx=0737+_dYO7kfN!a z@k-YhlztUyqE<2neb8tkZ#I#yksW6SS5g@W`jwCjYQQ=kz3w>gd=A3$<%Cy40hd&Q z$#YhQL-{evUcsVmKl!%G7xi|ct@t&=hKGouDjBa@E`H987zjiswYi_mTRr(qdq2WQ zfc6LeDeKO!ZtA=T3(s$Ls*iAULzSE_vmR-qKUKGKWXQs&{QJX;zSVK1@W{E(_3qg5Vgv`si5>`{ zNk4*CVoleUKLJCGQ1sc_A+?z}(t2j(Svbp^OFMg%KWkblBcCdd4AijaP z7p&8$n{&y3srpk^dW`JGdcL4tlc~Xsgc#QcwCNh>_voJ=Qd4`IxCzXXc3aII#5Qr5 zb}W6JlMts>n(#Ta?~tddw{*TdU28nUYlobqz$X1ghEcmGqJD=%cUU1(JffSB!0E>< zPI5JA77VVeL^W+1)wEH>{E!^n9JFQp01A$Ygr?!J_YVU&0bd{lGMyNISI)WP1lyvW zGfHuF)#`Vw8uFxjJxrM9eC4`ChBYd5Ulr4Zm%DxHbrfX${S>yffb=66wkny^FOfAq zmAuQ;#+92`P=%5u9%622J1aw4faX_)chr4)ahv?muZlJi$U0>e z-IU{f&OX}RsRv!y1C5t-^D{j6Obp|yK!)JFkamdPGa>{#$I4zr4@={N(*LN5UB~bkR9Bkq~VVM+obI z+Nfl&s}L&_d$!=SE_p6wnP#UHyVmvFck+ERkEYW37 z03`2l%eKF{|J-!MhKOUtov^x51}eCwer0FZ?D{9Uqdufl3yJ!@BHfldju?4T23D`iLUM0H=ssTy+H=%3*Z;g8UlZDW19B|%-}N?@zhz;- z;2tP5tcws*pAa0H%wGKNEHrV=iyX|rrgFk>cL(_)`sCCu*W|`3-yhP-fPRMWMqBJo z8R1ARIkz`)-t&WpSkiEBcAoChqsBV0LMbm&*nd>4VWjc(@HwbOO9&c8_L!g+kQD7?yVge|n4NB-|9yAwxWrVA#2IJ3REo%VO=rzLl&sJF1) z$CD1+w=Goge$_%Q%MxaMYK2J4P=giS!P5RZM3VyBt`eT~_?=9(ow&6F;dHB?Te&n^ zvYOvlMBGZTwhY0+h@zkTTfi7AMjpO;|i z3?Hyit>a&<_o>)9Qgulxi_%&_alHKgM`xH&RlY=}kOnW->XAWj<{Z|Bs;GDi9p$qy zwRh*Ivt-l>iInzPC4H=#_w3=Tcgj@1_ujXpplz~~^!v{&*zWau`uGZ{wtmOXmBhJw z#CCFS*XEk@Vm%LJmjIITr#cI&w8O(K3%ctqk(u{tjuM1l((y{w%kEO)SLz%CKGx5% z9z~@u=uWDM+uz(R=YVORk#DKz+)2L#a}Z3WP0w2y=9?Jn!hGADP%96BwEd_MkHzJa z08~WOWiyXtkGDOpRw>KD?JCHXU5Yk7Weu1C`)K>NcVlkJvxAn}rF_t{E6ZqP-Zrf) zMm=6R4MqPi9qp1rP~H>duPXPMyqMX(zO{&m+i2P+k3Vgsj(Y0pWXR+7D*P?S#87r) z79*}7y~-CU*|);F2V z3gdr`nEc!f8Cv}-iH4r%*kTsWuCxzLI5Q$ zNNvSIyOxrQJ=jW}G8zEFB9E30*-mWX#e2}=nvDAnH)0mtu`vP!iJ!i;Xt*gyjz{Z5 zT3SJXgi|~H8fnzqyilp7Kg(k}%F{-esay7o3*1xja_{}3!Uv{+ACPx|5OMd>57uPe zj4`y0>XXT~N7A|5t~?(qSRUb)+-tH$qFaBSp9 z(e~h=D`dxe_G|P~ZU=Gmdp=C+6#G-1yGyXF6GCY6NH+9a5=a=v!l zRRl((wjljVAv6)>tHusr`PaTU>)EI2usvS5H?J`TS>{_g3@0<+UG2@7Z&-6zCDdSN z=oU?Iy-+%kR~Z5ptCrYP_QXJA>-tZIxrwqQy$vtTx8;m-A6X+(Od~4JOKpkUTh7a( zqN!>8-@<%S)toYTuP`=Td{$2PPLcP+aX53eTK1}Sr!$Ls=5@y371@|HLH2KQHk`6X z8?ImWt3vZ@uR9LI7`;WG81-VjZ^|9;kS_HbjL8|f_YEnwFo^<9z;lXcGXeToqm&kW zuSMGk#U#XN#QAtAZX|%k=JTu?+w(2d-fS(_@cu&@3YHM5zS_>(hKKh$4c&{0Zc3>q ztcX)1CcU!j-dq^}-8R@=-)DPY2IW9dv@PPwYfpb?zgBz}WGBbEai^YGAYBne6F=2% zq%w+8ORgJgA704ZdsbmMe0=yq`DlxZ;;?miYG>Dprd9kO+f*I)oI!)TjnH3N{**hQ zHsjzJ+!5pe0kyDBk;%Eo^|I9|re(-+x-)~AYpr;lt=d<^)bQelxS5DMjX#OH|qTttWrHIlqFWuQj^KY!;AT-3agN{hVro2Ft{k@?Tth@^`jtnv1X?x@CEHq@z~3C=Q& zXtjUhy0h$z&&dG4Qx*MCy7HS7L zdr8k+YK1f>I$r6VEMAAno zUpoIeURjB<2RT>zjo@yD2C!2}(W=0seF+hlwI`kTUp1=56NjkYfyG5qrGo1w0z?E-Y`@neR(Go?q^@mXp-otc7V)>T z23;i+UV-Ji)0QT=*~Xl1tcf_B<+wm&Gym+DMq0bc@ZQFu${FoJOU{4FTRah8tOw## z+r1;KaQ!5BTOuR-JV@|)E9jRaO&kDklxJ&Ltex42cyP=Pts1q+gki6#4)Jw8Pg-q) zmvE(Jw8#Q2w$|pmYol>s8PHdqycZe#seuV}L<-hO#OU^xIazB8@a&fyzxw;J=k zJI(DL3}E@PUG-)}K8r{BXbIdHGQ*piKme5cX-{FJ@04Eb87C z#GjPG7VYR^#;>IUw~mebW%OKfC)#sxc6E2LP+=vFs-mXFg%aF+_P`Bss6XvL)Y03) z^xJfbpmw0#FtV)AGeicv-zJCKS6f=K#5A5&0>5)7O0AU;H$Nq3H#cZ+l$QYx07k&@;SQVt1F z9%hnT_x^H70w0GoNJJYuD zZBT&8Un(Ztd`apNgR!ZTQj(1682B{^5|BuRGgm9#E2fQ_NTJO z5ADr;H{;zCdRN5(;rr2Wi9Y4_1UU!7x>ntWQ{`SU{AixST z6{@O+LO0BPo(2$Jl`yKS@GC}U{3KYSP0IQMk+QS{K7KIh`RJKn$Ef>b;cW)-_}s- z=Rt9if8{w>@w%K1rLRuCco(tPzzpv&pI&}DN=+p=PJ0^Mjxq7}uPuufnniADIjbeG z0(70zk>>+?;O37kbs`yPuNwJp<>-NGLp3P24I(xHMux9KZff!tpV|T}8&nf&!(r?h z3EJea%J*TV$H#wm0%vbEky-uk*bh&BX&7&Z?09vJMK>gr-H6x(dx0(tPtv{8K+o~g zROY*;YPn9?uR4gAs(*F@7m1Qp#it5vD98kmb+T$ySBLr6m735%xIdJ#B#l+PEka!n z%aod>Ba>KnAO$R#+`)*Jwcfu*H?NUdKKdZf?a7g>p1f^$9Hk9kJk{U#OIobt9f%#Nw1g#Ud!tGS(cqo{&L1-wxe z-8V9)sdVm>?MsKrn+gJjJVHK|SonJ?=*PbFw z=3Q5xmv=}bVt-Y}!>uI9pY-lGY5LbJBs~Q;WgBfoGlU`5di?9o=YMnec>F#a$$CPM_#l>5S4`Rk&A8){HpjKOMB*|$W(yOEH@7!Vjz#x*5^DGi2M zQuY%<-ylzx#O{_vKhWVwC%uEG(<_cyCk7=jT1CZLAtxJ^u(h~_d^@=}8BH07wTT0` zk&n}uk!R;K-xqW>3#w(~Sr;s@wMsjAAG7BL1x1cnjDdN;-7W4!7FR-Qq3|VGBa@UI z1Pkf(hKvn~;nqlUhS!cN#$zV&&R++?Hw_HW*=-LrZkOszqQAdgq_p(t|486J68Mh<{v(0^NZ>yb_>TnsBZ2=&;6D=h-&O)Uy*-fa-#w7c zpY7Kt<4X%d%FJX+RpEu|82+pf5O1l+FK#3O^sNG3-b@JPmhVWd%O9!dVAg+ zEiPEx-P~B+TwJ(Z?CphJ?Cpl1ZEmC;EiJa6to$v%*xii+uSHyUhFYw+9vb*BI7__$?%V!Y^JW?CQA z72eIR4(h}CSq#vQfTijG9RI5&u-4LqiJBaz-=7$h0p~jUVt=pke0S#xob&(DDgJ+a zAE*y^pzT<=Iy_88O-{I%1AX$w&WpZ2A8x-MG2DxW7C&m^%Kmln&}CbhWYm(f@?u{~!B^&5ob{S9@my zA4hQ|{E=i3*d{iH5JL#U<}jEu96!Jb$Uq=02`q6)h+~p)B>9%jF3YmX=72;Z><1e* zB;T@t&EZXm!zS?u>a*hP!s}I=B1C2mcD+eT4OPB-TDjNPhTD#(@W3A;(i&^BHGe?#WT2W5#4_*}LaV zPi^g^@K#l0!$ZT#NarISOXK6?@Coe$t*vjn%ga_Y@60`6#&oE`hRPb>T2i#4ues?j z%=g~oqThoC3i5|B)`TNnM-KncwWr`zgQz*~KWi%~W-opC8E9ov@^wMo7;|!bWMp)p zt+mv1pz?Ocft(sKBYzEBHm9<0zG9%gJr~|?AZEl)rvg|Lpao4`AAay-WX|(Mjy2N; z0sX&-J>7=s)NN+N$}kx3t*?6rnZf1m^70uq1dyetA}_gcsH;0(NxScNL3186P z;;Kd$aU*h$8MhvIYO60tM!#da^p{m|!vEBD9Xj|>6P`$O<@hZ07uwF;F9Ppex_1`88e29qsS$b64)quFrXY{>&KxHXC%$)=^!x z48C~VjHd&G1AWke7r@Dk(jlPNO-0Xsg~Ah}v7at;)(SYG1O3=Ce4l+19vd_3=dP+; zj_f}Nyw3D7(AjzT;CGP^%$Z3ez-ix+${KhH`qYA%z7~uO^t)IK?r>LC%s5-4j>^g_ zpaWa2ps&-ZOza*iv3psO>@>icpEsvv-=6c^%S%k*U7PdlA|tvOo^U60V0!9-O&Dm% zh{k&x8uFWWzIkxq0WxNmOZ;ao=j^1_V*v_ZED!bIyI?FhCChBo`cobngwgkt83?A7xsg( zk&*6670sXox^g$`;g_8D?Mbm8a24!4!BcbK5$v$1=;`316QMLa}v*uMSV2oT7OFe;k#s5Rb zz)YnB@IVt?hYw}D3i1=GFP475hT{$9zAjHD`~~Z4~@Q^Yg9+&4thbQ)Jr62yLzV_Rgn|pF{@HO~3UIxZ4Xm zYO4R)y}$h0=7RhM*chdW%`vzN+04dmIVnxK+tc7z=diz8-2LH)HzRL*iSiDPjSMFx zQDFUTXFqsz$VQp`0-J4#m2vrSZ?8L=zE|_GevPp=EJ02z`T~>Ig5p#0y@yd1_j^S ziZ79+dqG!z-ctM&>b3gMjAuSNP>HVBw7sDjeXUo9yQ1Q3V$p1jL=IvGu7b;eCXb?T z{h1!DvAn}K2_1jcBgjaGg6lRjE#wqgab@Shn(N&a$;}T4KAqdQ2~V(`J!6r`Hq69D zq-C)u+d}N2Q)21oProtEBiQRfbqFbC5y*J|29MR$qv&0zdL4X0{F9=0y1Z_qFP? z{22rQ-ue&l*wZG)YUiQamBT&V39(7QM!4U#clVdf?0@uTm!M}dP39ZPm=S&oTc0)f zf|$|!5B$7*f>--Zpk@4 z);7d5f6JbN6ylm;o0gab6TitUGuw-t`%B0dC)rj+(udK0i>;36HaEH}reAENmV%uZ zvLEY@w(YUxW8b{KX~$Mm_5f`qg*JGKHH_uBw?*uG@h7|A%&{D=vY-KJz0Rh%%1hKS zgH6!Z`c3bhWky@^=}W=Z^zZ0@zi*FPkJVRbP8<7~8_j4(yvrbVM{4JxgFCIpkyiOV z_4WJeHoa%c9zcBY>4P8A|CY-Awc3Ght&W($ruhxTa}0>T8uM_SR=ccz2HiQ>oR@2g zyaZX&9ArwrrvKwE`(Yj1)3E8irSa@HGwT{19C*O$zSb%qe(ebRrOVA|i_-re9R6)0 z`X8U~-!qRsVn#a>QN}=9+v?Gwp}5O}IU~b?49XN+nndi{@)1Lmb|J#9` z<=OG*D=X?icKuE7bd2wR@OHGlqU@7qvp4-=v@ z#Sij8!%*_*Q8U^R?=tWYIgRm~5E}qu1#Yi<|6Nn$ z|AIGc|L#SOq3d5CjwVI(UhMynq2?rW%tNhl)m~C$bM4*p?L@4Zf@gf!U&k)p6#bvH zkFz-ML>AW(O&`XZhcmn#4V&Me7Ixt3Silc!9_L#9HX%MCn4S`MEt{BZDmXD;;Q_Bi z2N*iWQ>>k=lbGuEd;a6hMmIz&zGTNa5gN*AZi1(HB`asvN{1oC2 zT>}qL8&5jGerXgOz21;xzW)zr(VR(~4yO+3vHTVOjScvL-QKumQ_{x=AU0Shj@rzb8g>iy3Q0kjJfDDeoH6EU7w*2ESXElg!9{q_nlANyJTMmY}kOx zc~&<-2M)!)DEh2nwLcPZ6(2{&z(&p%IKzr|nq6jF(Y{pi zVTN`UTDlg zX9^v#YApaKW6X*Fr}mWd=9ATMGA_)3kk?>Fb@@_!FNXc*3h$ zLyN7T10y{>E!{_sn4(EoB*1ozn6zECu zyk*a>6!vDB@Prlc1LomSWMs|Gt=P(Z%<6`+o?SlJ-j>jPK;RgVdt~h{=GJ|O*1sB4 zyicofC*`9XNa@&L@kwlSO_QfX3r8gWUp(N4zdUQOy*(+`0RK2(DzO&q#^&W#{MF_P zoiZC2X2w=L`u4^YBK+!WJqrb=OHfxo~+2pCj=K3DAH}3X8{{9Ye1Ao;_ zT{fpe6s)dtio^@32KMgyL7m2A8+d3d)-_=~<%(KVk zTsZ83Y{=lw#;!f7)&O-#hzyKa1r5k6UnfTWz3ja*uwnlQXQmmJ88zl?nupKvV&Z)M z4QCuYhcEw8`0Fm>JG}`XXWH3Y)G-e@e>FBZ7&RSW{0tF~Hm)`@=$7YD=S%DbRkSDF zRd{U1fd^iT^Cqfa!H@W>@Q5q1CAhF@+m_Ru*ypM97F)f!b(`K@(wuMq6uy)9z@z<~ zIb|o7hAXg*$e>4g_bbk0HZ2|jXA+!_z0PZ_;ZflbeP0>tp6U7?6*r--oWpeuI*!9p z0Uhs5!fdl%u|5o9%UI7ItdzceAKQ|@4EOfD3oXm%`4OJ?jgO8Dvqv8bwNHl*3?pNI zi!%pI(MPxJF0erdPU)?$Uq{)I(E(^bwg%skeMP8#vg&!uo;`EH!}Fo=6z?vMXMJLm z;yGCRN|SwuDf=yD43w9h!5IVVp#z3>toRo;6PwABc%Meb4Zhh+*?+s@iTh-!i?v{c z@&68MfoXB6uyHw6_*ZN#!}{7Y2K&1{Jn}6g{bbcQjN4T9G0)@Y9NprTES(u895Mzv zYirlxqiW7tfXyCzmoqr$d40GsfK6^5^4Nr*0m+$3O9$Fo@}orIw9m%gTj;>=h>>O5 z-Vh!48A1m_tp)HdgPy9&JH*bws<~~nTx_$`pj-C=Q{3&tlV$Kg2ZSel17BrR=z!Sn zvd3P;-f%r-PvQwh|A}AGI^r>#X5VeJuS0#uK6x&%zKMNMLTnzBVH~gqjxz=}H0SR$ zO(!X90dX8&LQd%C36XPFGv_X0d?bACtK)%KW47j9dCQ4?ymuz<2h{P$nmvl`?^~_K zg{GXt!uoDQK5z`Mp%^b8jGS0sL25cB4D{L~EgWv09RSFmN`K4f*&YY$^X8`#krI z))x#645Q0=nD{!=HpXqV`lqbGQd_@;5O+m5!M ztjvcmfsOO3uSdUCJY!e_`kq)?gPk?i54m>b&Dg$I$5rmvSD%be(cj9M?;<+d~@+ZIq)!c8#7KH9L*pj zzRz6d$t~#4HshPohU_#FlqdXK?|knaz$R{M$AQWR8n@@n_Infq0sD!?*uZ@edhibC zXt+g&p3M72k!^BjNndYcqaB~KM}ht04O=$NiK6MVSpqPC@AW+7B-b#PevY5kKKN(x z(MtF{R{;>)PyAqxLa%=3E-U@QOw;!Vbd_bdjDZx_?t+uBdtJg>x(c28hCXNGA@u9r zVrvu6@gP2-*!lIdhi~AFPdhfB|9~IX)vbm5769k8iBoJ@XT_mlWCtf>Q*k=-^ELFr zv)CSQCH9>Me^?^anNJ%SV-jOx2;EH?>-tNa?es`HaRGqi6p0ZKhbGTfp@D&>yd9~~ zggNjEix>+Ru!mg19^!|@tJ~P^aO4j4^ptWAj|1E3R(w?Y@b?{HjUE!e9rX_$ePpD! zXOQ;;{CU``HOaa2eT|JfJ+;-FkW>DQF}8{r5EnJ$>qRI%O1NbAP;>(}b zQGMWqw&KDwh>db}Q|^viu}S+fGH6A&Gy{S@$Cxi z7M9}MmX5AIjeT1xGODDsxlcaq&q6edfmsa9Vqg{nvly7gz$^x4F))jPSq#i#U={bHd>(BEy%S znDD~rO)Gd-GH}OLNh>gU(@L`xm;%xY45aN;L~&l2K!~KXB%RGoVA?^NlI&bEkkP@#KLEVr#Rsrm8ClAEo-1E+Rpx?{ z<}SmRrk)wup9%#leV>2RGh#$UW>4Gy8?fR>o|MhHe!LU z=KSS*h);eiwhGsB9>sF>*Yk^_<9%2TqF@d4{7YaQn@ ztiZP*X~zY26(`YO4`ZiQ3EZX|b~ARwj%QnMecf$N&Z^PEeIlMY^LE&}KK$Tj?2t-0 zUch_y?kKXH7@VfrP|k!#BW&KiD0_e@G|}hI@PMj0017 zCSui|iY@#%-TTXQX>D_!-9{{|&n9#(z(+z8U&Z!Q7gnQl03WXu;+(xKyclEr-?2s3 zwHL+CRB-SaaL}bUR;_$T-D8|@_C=#@)ccOOW=rscQRq9oc^_xneGVT!y)3qxSJ$TC zH_TuTffQESqT}x%3wlT1;;5&N2!RN!_K=wcQJZC2o2k_&67p952 zuR9MPTp?pAu>Eo`ycg%L-PK-Nq?=#ttA{)tKLrPq_5+kT%6#%Lp4#P)`!1fD&O5WG zc3~U-5nUidyyV=ERL()$6x?<-O-%T%-g?L9LuB_q7CUpn0qq=O_LSn!l0}?=Tj3cN z54hV-XPBhw%uBeSOpBI3eZ?W%fRB;{472fbjg3$J`K(p-(bk3Rb_YI`rpG-)mi*CJ#sFt3 z{>e!DI}TJWLp~o}j1rb@_6U}o-G?8f4Y}W&(e?|t+l~KR*gX;Q+fTxOXv^rsR1Uu| zfK2W}BY2MHn{LO^?}Py%>zC?bb-NCiwSz4%GWlSJs15kSEtpsW9jPeD6p{MfsJX$_e$Hadv^s}TV(s2Y zT$Y=#ahun;b<31$8*?_LbyV(O%>MCP=uv+HA01YAgH6<>tckjEO4hwnXP!M`TFhE0 zI;=lL)!-1B*dL4lPc8Db4Yct`+0<>4&Zd`1BPaGi+`MR$(r zG$H0!zPYfL^S5R&E-MfB(5^%#fK)&3(j`)ZX=`*$36U{Sd>1l(Wj=Tgk-CreJnQ{8zH`t|ECTG&a z4YpOHvyVw1=Wk53H(nfU0G6=w4868Q`>v&M??QBv8-y-J+k}|&!6zZBdXxCUVfn;p z+o_k2vySFqU-LNpeQ(TdiLwBA#zWA2%jAuE?U#4h;oI1Y-G|JlC(0&7osIopb;tgS zCE;MS`aNe{*syC^j-A;1!gEF4AcGm<@w(U>JWUMp1<7>Q1hM^7k+FORJZv2s8IDSR z91;c0b$C!WYu_(fhtILPPh%;cy?Yw*WUu1fn_nP9IT|(JNSj4&#a^)x8Or0tI}NM5 zi3M&e@ z-?#vIye`jc1>9DYDfJ~9tW zvly7gfYlfXx#kib!5bN2)E8ER@C{021-ma~fvs> zl@fpH;7Z7bbR`_b#6+4Bhk}?E)I&|r*=#;c_<-Ogupwq_H5#d$Ir<6l}Z+U|PGvxw>=(9S$NL0%E{7jK zf%8b?1+Kpy&ML5h%hT8seHVRjHDa4delTGtCm$eV8K%8^k!L@E4Q$+GUdVXnU^Dv& zym^BWI1PL=4i2jNUCz7B)(86$?z=&ccow#pI}N}T`6qNDbLM|M2dWmi%gckSHYLqI zdOoozM**$cr_ z>^?X;4P$<}pud;J0&{Cg(V~v33Qb*C_mLxFH)d%+P<|D<;;^>GT5W7AEt-#>wix>M zOeo)4`a#B$rSpL~y+Q0=v|!YGhF`{mq8Ecs58>N)Unt)f>`IriHXYU(3NgK6J(P1P zuhoM!_#L`k!K+iPm@@jYm07LT2KWK-Yd()Q98tgbUy)Ub-9oHC{P**bryA-5bmF$b z_VynI*C}nlel4WULtk_Ah0u+|$gJy!y1QP+w|h0??`CXiZl>)I!2_*_e~8Z42pse^ zH5t;myDQ7*1B2$;3STqGxcYKOWkqn8DQR@Pr+W_8oTBwod?>LMJRMov)8Hav-2`^B zIryxG?E~QZBAp(Let()a3@{(Qf-RjEm|>r_7VfnPUyAKev%gRSH!=^f1Gqr10@tp5 z8|@71OCx15CPI!Sy*ku)wBggtnTYxUe(`ZNzt+`VUUo9;h9Uo0+8}i4E3uquhQ3pL z&q8;0P`@yT-qqvrut{15y)btO2U#BkFWEZH?V02!H%#MtKal zF*(ySB>ve?e_In+jfX-%S#Qq^#zCa%{?^tt8pUfqQpSI6O~~=zTVH=q1mqas-}Xl$ zg*Whf*(1Uu{eMkhH6DU9i4zl&W-vD{U|buf|E$7g(D10|u)AviDbRmI>!mbD)(Y3& z-68A4{wkes92!m6e#C&pChxIkVg*L?bM4w?gAchKUdT|aIqX8-apvWQq#49&v>_jP zLmOD_r}SwLGQyjqfnV~7|FW+QVSTH>RoL+g4{>*-_K5JLy~58OeS2d_+~~DW+5la- zg>pjngVcfl)7g6E$h)@UqJ^Rh*T#0}r}V=x`=0M3r#;P;KUGhR%rS-i@_Edcg<3F3 z8=wc@hQ?^F1&p0M*Us>~7JCHo$NNQSNcG>NaNgt;TQ)meLxm8;2)_MkyaTa~R!P3_J;Mwxg`D?~zpdez*If2ud(4D6 zxGcs}zPob2=6q-?ElGi&c??q|IX>%E6}+y_4xm8>&dn;Otj ziM#;b;;0@BvA#n>R@_=t7*$-faBYzHoT+{m_L&8-!l{`bUJ9D?3S-t%KLFO4)39;= zPh>Zy_`pe9*mt)ei+Ke3s->_8_7Sm@F2bhnb@pK%O?-xX2)@OqhIREvz^%EK1=eT9 zz3?p9x_=D*^C9TqAAzTdewniND@|eV$GZX6(!=m4>ycgD(_UUSpV$XhfEIC?;#UY? zb2599^YQz;6+PMg$cG-HZ4V;1Tn!Cd0lepc>l4tyMqK`EhFJ_)fdMa>P*1;6jG)rR zh{MD~GaVXJcy`|}InffjdES6OQJO&w>j*ZfD;#jWf&-Rxid z`VH>IF5Lwm_E)}nh`3XX0CRqv6|s>0&hsKq@%DB2|9tC4r}89rAt7Z_MxZ0M-Kp@$ z#^qK)ppmx*+02zj>I(G@x}2{gx6xj^gX+^t(l_1g)$R;cez@nN#|D?*hzSPdo9x{` z9j-2U&zN2gAMymY4gSw1PC76M9yDbzTI~*g#`tVP#;P07Noi|;|2t9-GM0w}_4>r< zMh4iQMY;ZQA6!ScG=2HJzfl@D11&8#QnymRu#w>5;lR&?Cj*A37~fs&N&d+A`YF2k ze?#8;F8$meu7185f?rw^Sf+X}J{0iVe+n#v?}5Sdkot{WiPMupZ2L)jAz;2kaexf&G-TXU_6`_|D18wKL#TUVUZp}S)@jwNK4Tm-65Dl3j0E)m=;yV6 zzP`9ORK0=E**}~l^Ip3oo>Cb07E|n(z{}Gi^YDT_oZ&eP4SqzgEM!z)4}@9nf%)}N zc^Gel&{D%RowZ_lsIufaxc+f){q$SN*ddHVC;Du|az5-CKMKqtm5-G7e}n614u!OD zpsa3WcZSyzXxMpr?Wcd9o>G5*zn*LueMn14{Z?>Ul>cy;`u|UG9`OI5ULN+4zhmwP zXVXkW=bq6k3*P0%;Ed4b3z!=r`%Kp8*0<5k23A-lYWBD{DvKk3DM|W9oNmUiAtd{}A|H;645JxcXhls}Q4sfz7N> z4-K}rU5k9=Q{;P;ayK*YE)Fb@{qa27v?H)A^ui(O2=aYm84pJty9652h~3_@$uKy? zmSnrYz_kE*{S@2vNm|v zuQ6xaBZYx|$`SJ35?p39Y3Riw=G%`Lzq)5lfGf@)94KRseGA@^-L<(t{DV{BlP+WZ z6uZl3`Fokam-u@M{$LGfAS}f%R(F1x3(@p1O&M368D8(NW8wu7HDq*U+ZH(Nwsgk> zwsiZyWT)FR9BKB9PW}d`{w?5HI)7;&q&sXM;V&JJy|iC;;s=KeM2<#A@M6oF$i^?u zfhfrL6GDYp!gelyemMm@d82X)WC1D2LKpJ402zSczDF*+jCr*lUdV5|D|{Bu)}sGg z0yrUm?2G5X6P2oMm~tH-?_(aU(JBBP!Nsz-E^irq*HZRI)*&ZVTBbISVF0# zkzATP;3x0>-1y$t@4oIopWWB8&(1T?nKNh3Idf_VQCF3_eud%+5fRaK1$k*rBBJxk zL_}xaUAh2TD!y$gfUoZ`eFZB81s0-9;0Ne=<~-3EaHV`6T>kC)9cVav<{Z&E&>jRn zq~Q9b&&h}4%wMP9Z@~5azg@?GYo@>TISa12&zvQ?4!%>shX-8W2H*MMV;lTutR`@M z^15{TmIqfSkpKQIr=X%v%frFV#lg!5p6BA>72)O<;S!`h`70p8F9dp@dH+w0P9V7| z#c}{BuWY5H)D@(pXq{c1tZW@%L`0q`ev#tx&FZ%U)wC)zV{f?MbZJ*lUCM-n8wNtO zFI7G%xWT}A_>$qeLTFglPebS5)};$SCkqQ+7SLWgdR9{>#9SvILZA=4%PmpU5V0{X zJnBJ1%g3TzUT1YirMkzB=YbWXzq$ZQ6w@cTn9 zNsNzvlh^d)j_l4Q?9w%k51Pw8vb6P&}$(#agg;R$y>Sui3oNl#}p3wxLwtvSrv)=?a?T91Oz+FFW3^!Qb{RGg(? zHn#HKt}rccRc#AzdkbMph@`|7F;5Wy01k6AqxFP4I3h$m#UZC~MZon*Gbe=hw2Pa) zI7A=tk(84wjFyjskAsU{#?#iF2O@EWR?OAXN<>py_HQ7-FL8*Co13!;C#Q#p2ZskQ zhm)%{C%3S$FeeueCl3!h=)sQga&$BEWOqb7JOS|shBORe;cDybX6xigdjiwU+zII> z4uOFCw13AB?yREn5AcqNzfl3ugVWQ@nUkA?ixUp#{MRQCZZhrw$lnn9k53@9y_{j3 znlOYD($xYc;|_Cld-(4lG-3ao)Bghyp!>f8u(bFG0?tTRhf{i3T5!S~U~n)N0-(+P zZ#bWb>_473p`o=c-1+n=uv-7t)6LfE{{*v>JE!#c*O`FF{{i zJV8%ES{wpeI4o@~Mfe^|@k#Ru$_Vg37UbrZk$NH|^H}&XAO8~`VSy+7QiA{TxPl|X z&CJmP_V>qa!Q+;KLIS)(R{ZSzW&%9yeB5Sy?80UO7VKQ+mi&SiLP9V;F5Z6uq2_7} zSlP_sKViZxY%XBVXDPrgENBH|=i?FJXBQIWHD|Xlx8&uwfbm-i3R#?jva}G9b#jH9 z0Uof0n_0s+ogJ-DZ=4WWz^&^4rXpv-~n-nvaKW1^Pe}gZQ(F2H?tE8 zatjCx^YZiaaD(Y^@pJS1vy(2&6#>}y1m>y2J-u_X6e3_UfS6_{%nbmXwgak)NV&qy z+?-ssotzxRA^%X-|G2FJWYE&g%}mo=TF4nZ=(eAk5rhmZx|ESbuI= z*qAw5!+^^98;kzE-S$7Q0w13hU z13JRV%FV;f753N~&=JrIh{Wl(M$2@%P|W|1i-!&DWEB9x*txmcxdi|B1mpbMggH+X z&EID%#`%Aw$=}E%4Rf^x6P9&#f}fHD;Rb|U#PVNcUK<`5%b?iB>QHD=R^BKpab$Fc2Fq zD;{&id9QkWyK3q63(IsBGXANZ>m%$4M%iH=X+ z?;CTYLCa-lc>@Fy(bZcgpEE>BDfd9*MK=W%nTzZ72 zn@3km_xwI-zDsn`IJ;o2Q53yF!E$4Fx2h=KHz42=UUy}YI?g8Wk zE_glTz63&zC$Cmou9I*c5z)PupFvO&yiBkCx6}U$5_lNhS1|Ns21X?y=}IVRwoP#EX!!G3yLd8&rDsZCg!CBT<-V(?{ zC-iscm4YwN7QP#H+aIiTR&{3-B`+8az0#PwK{J0;Vb<1TaIHKxpaXot70fOMzhcJt3ixveOOA0 zsG4*r9L0^s^LEAD)r(2^^^R(L|1DGm-)<%D!MB_vhDFGPec*kn#<7^Dqj-TG=h?d| z7(qt18!j9!NTD|E28rBIZvOq1q^r?OCOhYTJ6UkJ+x@&43l@5on_O>AziVc^XO4rt z#?Q+;L9H4!J9DMW45dR}Gm#X@IAlvF=7^BK)i;UDrb`~+Npf`)SnQnpxX4WZRLG&e zz|kr>!H#;k&x)DeN+D!|ONBlwYbC{D&?Hq9RZ>XUFB-0bx5SXH?Y?;=WO*@GbK!u3 z7GfxEuf`~s+UGFXWy8)Aj|k==U#-yOu}oUXe)QeHp{Cv6%k2j_)xCDlwA?XVHNTMd zF=}~iA}=Z{+%~zBjeYBWr+SoX{RTpKwbfy;v3J8Q7M7p$=zG3~BDrFShVfDaxnkn+ zK-k8idhw!gh^6BXBvRF$1iR&$_{L`tiHtXskANj{UU)gEB=c=M#InDmbxK$~$$d=y zyPIHf$=2M3=YX%6Zpu+Fa!-aBf2QH`{U#%UbJ;|ONIMoVdRM~9%Vj=%WU{(wjSi)# zf`_-s_1=t}DLH(Q>XKb8xZE;TTL>dpzzL)YT%Ss?&2Qvv5ZY<^Y&xQpJLbT)pj6UO z8+A)VnSB3-+n%d1r@HZU`GG{aCEs#!8Qh{=lc%ff4MUfv21ff#wsc@~m9V{TH(!i* z^8^+bzbz|U7On}&VJ?P|+oCa9RYg#BMOCA?k%0BsU#X3Lww%HX)0rebZg+4k{Diq) z0VDg%adCToik4sG#XRCQ%Z9nM5p)iLRy}V>H~X^GHjmoNriYu398^O-R5=!Rsg^IJi#y-T@ zh07NHPBGwSrKl{~e5lxV;I)E2evsz;p+s`|1Lo=1s<)3(1?g4rsUr*Y_G*vi=+0+T z5o-f0tHqr8fq36+rZ1JH)=;_jRbJI1LjxVHOH*FEJKq_7_WKFNP^0EA_p}r_@WtAS zRNOr;h8y{rvkm9iietxoM4x23Rb+}ycUg_CQ* z?@Qba3My|*d{Zw;S$2%UYsrm>%9i`15^Inq@KDvsBq!1Rk>)sC>98>0(!Q7tcWfVu zI(&$imGx}KLjJptm&Mp>i{r}iq&$2vRLa>Yxj^}(U#H){c%eKi4)&%HYP8&+5mJiq zs9zRxbV2Gc-Bz0(pYdAXUgtU9;)CI9u-~@knIjqNdaK&W{&hJ&Ny1I=COXe>o*^NW@xW)qqAI(ytMf&lWxrPm z)1m!L_Vc>Bx_3K%voTQrwm#Q|?oZclSg9Js?Vd|VAAI>~>ivDg?KtN;ve|8CL2TR8 z1FqomzMZQDGd$!%n|E-qh!f@6-oI8PgqjjE6kLaEeh_E-~@Cai8>*#Fm>B; z3oX)qgUvXju&^+{nam$1#fy!od>)~I?ZTm$LM0=gCnF=WqS8MkFFt8SA(7!XCYs=~ z9^+8x^75q*7)KZq$rPn1idwckoDJ>&oH9E*7jsFTBd4B`9#}&UYg0S|m@NJ5J%w-! zb^Y~T7VN(+KRe7S7~Wm8pm+wmi43fgctlvGbF_7bG#SeqTyLE8=(!4J2PL1O*+t$yV|Sfs0lG$ z!-aU|)>z+5%4}Wlv^yieWOQG2dir#iFm*_d^QahziQ6kkEhI!b5AD6Ze>XO1w?c(R zlABGcIq_vsMiaMKir1H_p7Q&H*x7a4Ys3nX=7XS&VK5`E??v(WQ_Yjiu_2wX;1!F_9TMD&ex z$k{$}>*`(1t`oUO5=q$J%o$&_9b4H*4Dgt9#vb*>>@UQrAd3nw$6L{*y=8AIt)Qdq zL}|4qC8_^jWAvernf_7ZC{>RuDJZziu8=)eGB^-u9~O3?Rdpe4&^(C+ku8aGu&qrk zSzJjhUo-F_cFQ-y4!%+9u10wHAcY*DP6i8FFxd0AJ#Tlto=XHgjeOmn^y}ABQgq2R z4<@O@nPNXG-1R=RlRi`shPou~S<`h-ML4We@i5FpPvYhcgM!%}c9sM`xI(F#qoFPd zX(VxV1%pIkj2K}W<44#g`Gq3^YI&o7GU9k1#cO-3o#iKhG3tPFNbpY8dHGPS8T2`NcN`;%@Kf`d+_qk#{AG^ZL`ZEHa=PjB=t(xsEx=%M3~& z@oVM~SDlEN<#8M}pE3f*=P;&aLglFhSE-?`TF!)|7wSLNNLH(TGn^j*Q`cVy|F z`2@7L4<=&5#i-dOToFrsvgiHfu%89D&u2L&h?AIV9*F&tQ&#r5qVS~|OCmon1Ej3B zoV8N;r(l}*TJ{%|2sX)cZ5w`Ftt_WOqNp-Yrr^NXy_Cnm>G^BQrjdzC3y*y`|3JnB zJM;EfqMC=LaQKP}Ln>MECf-j%Dy9=HXN)i))b+(^vFni}EDd8z%b4s?yt>o%c1YxK3sEuUkS0v2lYf^@Nqx16GXs1hhV|qBw$B*0zRJaASt6QD>iTA{K3(CR_1I>#<5n^pD=Ye&H;Jm5IC{ zAHt+_=gYTLldR+0VSDb&Lj&7tMgjxJqV+rW6*SqvaK0TLOanKX7`i#`V9>g%tMiwV zxkhqk!}Im^XEE^?tq5DW$K!ZjsQ2vdQNY}a0@YAeUfRzOTudajlXymI-?>qCe*O&N zJ7l~5yioiuu+_?&p6xEUIW(Ew(}{x_Z%aRnSaC$vSF{|bE#&_+>QX$!6g$S=Il~O7 zzB!isD9D_1e>h7YhGv9S&}Qp+nb{e^KxXxTIEn7kR#z-fi<*dc*5C&UWutiIUqg%ZoI=JEO;5m}TB0y9UXrT;hrYT`8$)!AuQ% zBbdy)OlYS3P+Tn{)bY}V9#p_&$9QXT+7D>MZaBFM3-8g1V65Qxn~`fo?j zqT(wQ+LkFCq%45`vnc+%8)KUXVdtv1Hb1P6Rb*^4#ddHi#_Sxl(nFt%*Bly~NWpi? z0V5IO<1cDAMM%bPXi7;X#?6l$cXpnrO%CsZuP=$yeXO-Crn6w#M>85L4m;r~lTZHi!+L&@#Ehq8Vxk4GG$lrzI^#-F!RJ<^Ow1 zPx83H2`(Y4(@J(q`B|R{$y@f0p$9G|Ds$M*u5)iO%ROhX)8;sJO_Mvv8nYM>>kpixc{~K!r4FSI-C`jwP~Bz?j+yNqY2+wJMa3&CZ`5&}V#;Pz2`U-WoBE;crunUj&NRy&*C zzt+*LW1offtmF}zrpXXNkDBUBg{L>#%FI+#+|PPNKjo$2#FQvl?b)|=Rq1FYmr#8m za)-QaL=(h**4vhG6vZVa#7;j4*X+G!*h#~7m&(>ZCuJr$as1Um6JEe6@+)u36V~@p z9LslgF@Km($7+6ZeTfhC+IQ@-f`HS`_(rs3qo?(c_1 zTiUSDix<;&XadRzNSdx8pfmN7DIOjV{kT_D$(HrLHzYbMJVl&LO_^|nrz{bOcKIrK z?BTOrd2I77YQ4VMEbRNn6@xglZoBZ}!u)Ha)z%Z=q@wp}91L_#ZjHJ$XGT@aWmQEy z9D21a%P%0CZ^bWnY>rDI+ zqW>GL00bi^ymul8?eck$wtZFti+A20?jK$hofs5)xW3#<9tp`JLM``NHuM!2|0u^a z9v5fft;(Oy+Xsx7mrOB&a7+{Z?Ma5l0vIl+JBi%Lz~s)s{LxDjry81rjzjB-N>7(z zKLq}E(Y5nznNjvGDVmB4i%S@D-*cRLWAnvPPf-D7n}^T! z*{9Nz3k~xdJd#QcTAZUP)_>}vC)6Ud?^z0$N=nWYtWP__0^?xZeIxYBYUT0v@2n!0 z=&kWa2bW>N1-q}=l+DFk5|2&-r=&$&$BnDc<0k6%ds~A)cE1h?&d+2g6_E3sT=;eww=u&>C^_d@<3*9` zL2O_^o%3S_`hf()Udf%q3nIy!eoH1+Q9jeiaNhRAJBKp3DG zmni*WSEdYEIf-LNn~MBpq@-#R?3CFfKe6|{-pYRdeA9@qv`WiYdrf)o3ejge(H(tk zGHcgMNw65Q+&Ky9V+K(+!tp!Nce+@b9?PtU!O2fdSr(GKB-v(a_e%e?m2*2@U`7hC zQKxI0+394Fx3s7Gor8gfi=O-WtGN1ycHkwYoXic6I68EilE44Avd|K(o73koJR-nx zs{eTYS?S$gR!1h5?TK=0=tV(QH_XQ6yR)46xfK(;dyKak8QyNu^0Pb>{|s`5i0iWZlB18734BhDH~BI^ zV0>JA+rfUaeAM8D@1#(g8{y6RHUp8<$0`vz72ZrJzsj8t6l8KI>V<#%=k{O^F9l@6 zX|^|tdEVIG{9_|xlUSFn=w~nKbgXjgmTG!PdIl*Ghvlz>$wf_Oya#naX!We|wUgZ& z`~4ga4Nv9g-R4ACldbji-gaC6(f+8bc6vX4RR2g&``m6TCQ3PXtS#^Sv#`A4EB-Rf zI@0tUZ%$a=e)`KYzBrkecN@Dg+hUj3`U9~Z8|mrevo5|ksD1p*j+Rqx={i5@+u;a} z%S2?n<-!X}E#)-Xq-4V-C;J)0`16-0eThANCFoQwzGORPamJ_Q3hr*VqkZ#U(lWrk6Ir>rox@w8rwhxw@JvZVk8GRxx|Kw=H8eMqq9lUAX<_I!nJ1A| z&$@etJ6qc)Dho0t7owk*tHU;XJYKYDr>YgX*5}HxR!MWbxuhT!GH<)A5s5V-#4ypH zA&I?7KT!+R6Ehjlvgr5SUqDwAkKCQmQs!q=y-`0Vp2vQFaDWm_!#aFQK}jj)9o1)8 zt(iv0#e)1N>F-HPB0itTgxcl@7C7bYg}&aYyhN5h<=w}k81`{|yh6maVo|BUv3O8> zW}&DdZ~ZW>Knr4SLt?kLx0v?&b)sUuFe9GoW+XH6i}S>xbwHzw?DW;_Y=6|`elqjS zPRN5XTyhiga3tv^phNFQ1urR@Di?5p91O;_j=9+DKUXZ8d=zJQz;pJNay2F-YSKL5 zjfiqeWTbI6K9m`9W1z-chCBTMM9j$hvZC~XVORhQJEmBi>MF(k=5(8n#PK)dl-W6H zXrh{qHtUel_u|ArNG1ISqiYw!mhiF~ZvV4a%=k{W_UNjhSK+nKus*{dO9nClOpx;o zB`$f&wqr39vG3*@qxaIh=y;PYbbxQp znM+Yp?gWgyR;tq5w4(0ShyDtstJQGaw7zH{rKAL%pWi&cy&je_=?z-)K)-sPa3AXE z_~ytT1k}l{CGnICZ{s3AHU_QywEMv8=(yXzemj=PxmH=rcfMkugk`NuDC8WGY0C1@ zSd*=l))H}N*GvC=ZX~57_w@F5Hn!M=*VZhA^QRzcX!Q0Wl%BrnI0=(eGlch`B&2(+ zIHs$`JJY)gtEr|^lV_3=6~BU!xAw5IV6{S^vL}))1ULYf#4Ea;+@sPbJIkI(QE^w; z#gz$*OCIMkK*Ui>j8I*>(2eF7l#zIo)Jbjqf?)SOs4S_UH`FdLJ%rvW1$I8l&IHWxz ze&7qx>93^DEJh?JWu|j*Y$ulxoMJS2taXE+k*1#yw1HQm z^-ZSf>JbivSS-tWtAj3Hju^RHM1?c?>j9ItXcuWJlNB9=@Sx-SGEXfWr8v<#nNQt_gSpcJ>YTMF@WyXy;yVarE&?ilv&K%2@ z0v){>Hk`A#kgzyE;@rM%boWeW4Ryqna37>GCvVTBO$jv;_1XjZ)_vA>{F$cY@#n(3 zB-!FcI$j2*v)ws13Ve3^#(MGgk)5WWD;#{h#~d=mO~jI1Cz#JO90!(*fLvaGM)TN- zv+UIE5We@Zb=uX0Js17Pt*U~--)C`lPma-oJe+d*#>I29xk*;9I7Qh=ND}*Q#-)w_ zXarVjLt^;dAcw(Q*e#F`6bc`NOulVY?Sq(8be1h|U=b4OUJ4WL_Ut@d?`$(VZ*j)D z(#5*__*HrB4V53VzkE4NRSNOh4?^-U$M4ruj}1!*CUzgrPTud-jg8r{s~o%<8g@v> zsAuCz$C}1yU4gF@-}ap7D$b?hU|w4__EFMVcMZTw;f%0eY5p6Ti%M~==1tz&mW~<@ z-jw6)UBCJHWp&GB4~rMjmr}8+3Dy)Y=SWmi_OGe;UE!#Du*MQo1;swfdti! z^JizRlPDghH$;7!=11ULRz^#+;Jb0`TfSZK*8R46q#Y@DBX3~%>aIy$Cyub3?06L& z)>c0MJi{S(P(*YaU%?0xdGR{BI|Z?3b5W3Vsw)O(umj(U@ppXEw2k6I?|kz`{gw|l zV`|&je9R*05~Uy~tJNDaI5-`)oSJp)g-y0PXd5`{ElOTg4Q;oUk#=8Nv2ivbq}?Zr zEh>duzzmq3KA^M@&m~r9x-QLI9JZAi5O7X)eyz9k_C;4~ip)^2m&i!G+^lhDK|GGL zv2@7_quo_(g-Rp#m5`c6vxb*i9SWWpbj4qr4pXybWSWjOpfox6qT4ZsKxxg3;i7gv zSFv9wR&C{>l;~f+dZ7qy0@sH?NW=C%6pkK8K*|zURQ+DQH0ZD#!<<3wx~f6Fe>*50 z=(Me+y_WV>D}ic_x$vX*KmRHYowg|+?(h<9&1|}VVqS0Tc1Jl3rdlN0#o1EmYDBIE zyO|wiV~Vd`w^jo|+N_7Az&brpl<{(=j#y|Y zeg5T*P_f5cNA7+A#GgdE>s;jVou%-=uUAGP!IWai4Pcp8yWc<_@!GT`0> z+zT6?S{E%b()XU~WAq*z18H+fsnec8={~-~m{E#kve)(|gn43P&{ow1|pdsBSpcfLocbnUbzSMhHehoQ$j?cw#W zeNFKz+qlKW<^X-IJBE@^_xJKzH{5i@(tMI%`-bp`pBQzl?mtcS6lhKTD(YC|x&3>; zJIl(-QtH|J=`!=1-s71oe~ai;@7)#NmafS4t4+~c_O2VjXxdU}LUr%PsDE!*LW_F2 z*5qdMuRVtwEv%-$S)&FN3VJdapOg%tp+VoWNk`vAp?B;_e)TA6&A(t@R`gI?NK_v5 zo7)Nb)$B1b?AfzwQ|BcUcsKH#6tAI;YIpfw$WwmyIJx|=P9*=Gz?>QSZ zZhxj9m;l7ob$X9) zSDYPhHNSgAXYMk(OMc4W>a;fOC3%+}lU9)T$U77~)a+Wye*AK7_pZw29GK{fT7_ z|9)g|Kk0`Pz^Zjx2nFBpC~zJ+P()}=TikM)Y;ZQ~*t!_u=44o&Z%1Y{I^8)dW(!x5 zzhgF+CiW!J)0%)n~Rv&Z0&QZHRx1#|RJc@H9Qwzg z^6Ga>XC_v(817i@`Ln|il|}mt3QDK?b zC6eBUpcv@q6-wa|ExUW`j59OOZH14tM`96p(q@0uZnHEGVY3zyau>%F4j!HQlirh_-c3K=52mqA&W#y;FFjyWB$$*_S6|D#rz9BwrY&z|v@TffSRCM4ws7-G zV!+_&?foI?R4${q2lO)ASZT}4Mq|^$NN>wWF?$%TTv_+ArlO;JcbLV}3T8rb_f{5{ zl_n5`)VKJYPFMJ_@o}5aHgf38v)y2N%;p*}QI|fKTJNKhTTkb4Dhavn4Qnu}M0blg9(|gGruZ*sX5FIhqMK z`(=-uk+Lx_IScgjW)qsFd4<@ZvxA1|C})NjJu{=9L8Rvk(mr1cWYkXMO|X%A)Wa0{ zX$g_krsb|#F=2n-IcAdGE)aF@gC{SlohXB{ykaA1f7dyAg4)#Dk{`(4M=R79_;_ng zj8sFNq zU|>r|V!t$-q_eYMKTxWjkjzrITlKCpr%P+}YFpVpG!hu}!gwA3nbW!$H^suk)ijPN zzuDR&OpvW_POjkAbezgoE`tTRZb|<7^nuY6YOng^LaPRaA3sWI$^RO8rwKq@fh7M^UMJ`15<8%h6lMmK~F2K38UnWJjX) zITm}kV?>xB7!fXR5L`Ac1K}z-PT=T$6~i>^W@&f}A~82&E5OQz&Zq4yHs0T<>}ymh z11sC^3MyTIm}b7Vx>k7om;R3?E2s!FJ?Rz0Y{){y5I{EMR&xX>M3|7(*Bla4>ngRr zsJgXfJ-!wvsJ8q`TH3OC&rmIK{bfevQowC*C(@77VM`dqU}+ zWduvH$mCU_@hLZx>7TzG>&wJ`#}5o-AfsLO<_O7UZVCoesR{awYB!GM#M1VqFxs|Y z*<8c%yXR(c8@7omUCtvTw}REu$@>CF?`KaZK5F0dY+@%|<-9HdvWwL0uit%EpCrC# zhDxt_cI9Mr2V9L~ACf*cP^|S~#Fj6k@Iv8JSBqU%n!VKB#QE`!m%;Vt`aW*qdsHF` z!BT@Cl&RmxyoPnY0ck%F01mu0)xz3*+}FpyhZ1o7=!cvNGK>hlU6mC<@OK$dxuZ6N z;VFTd6p8D(dm0`=Gqz!#bb`NIFn$50?m9XFP3%5G4u>>2fh&_r7jT-Ix}>jTK#Ka1 z9TbuP*2x5{vjj9<8+!p4ng)~~t@JVaNC=B8_?kBFjYx=axc-*+V7gnmnmRyvXi8^} zi>_tMv2E$h`DHJ|m^27!iy)?Qv{&2%Bty;k*KJMt|l*wF=sXO-1th` zS09``%S=0_ZExFFW1^#N2HIH0;6dx3{aqJUh`aNp#?%j(Zk)O1^fAwUq41~qSgQ1d0bl)w}4 zRAb}loC)t-uV>M|p=t`H|JG7%OB={Yh(4CNlD=q%-q`f1a>z&HTFgvo_kXm@Z`VFq zRO#)rz9!}8x!7tb2yJ_(C^|t}qrAs5^#=hJ3W*T}nD3JTpQ zGbk|4AcRNkl}6B)i1<}3dOzZ?mxF3zCC)iK3f9J}pqzquw62(;gt4;G0{6zcpFCHG z?2&!NU{sfvcik%QsRT)feAwuFLJ=_tNlndqDejjCg;v!ZXo&cZ|7xoX%hcGv%9{)! zypkG>F%(EgZwmIlX3J92LnAAbJG=s_yrjk=KDKVYQxvW%Wc%$?pf@mm$a@Ra(lml? z;zdoufFWI~3+~*RsfU4FX}Rh1lH?Ki^`oxfj9)2ho4kij^Gy>crM*8%K|BC^r{5Ep zLJ!6L5((@^nx&~LX&yVJX_GcBM_&sQ`+UBd`E;^Fxoi{>78UF5eQB4*>RgKpW?DLa zwHfv@G)eL2M6{(Z;G$K14gwa13l~bX=$_~5N@ewrYj?hSiWLRWDth4e zg<_)2vwt8leyGPMfdzV@ZHMFToYvPU_10+B`rgF2md3n_4Wcpe)$frfNbE&}Y9aBA z_xwnoco+N@@rMbSw&KyB>I~z3i3d29`*u*U9#SI9iW=R7`Q*6xwyS1hGTg@)V3O!R zctaoU5`6B=qE=v8apUfGYigYB_Uyh;MXpNQ+6$hZQ+xd~u(oN|#NcdVSe2?KQe z8XM;W^c%}MGwLCr3X`lYa}aMWAQupjFCN6J``PL4fOhcU_e$32o;n_}l*WLroV``e zxARlq$Sz(C3NE+43KL5f_;JH1NF;U@0jntQUfcRuHVRs{)?;ajV=Up zMEU&0h*nZJoW$u~YEwaD`umeSnIpUX7PgDF#NBj(Vk_3?GxzhdLTsjezfG(pE&bI@ z$x1-3YkOt2Y;Jt!K6S@dDqP`!F*f0;Sl@&*rPGIZtv?2$d*8Moyu>eL)7_82HyPM0 z;<^}v>M-Q-*Gq^_CE+rV(PB-OV`zyWUka6?b%UDIm^S)E27apR3EkcDgMk!l@cIKb zFBJ}aPp8$GjN9*Z%d%oR(%xR+>a1i@VB~n_<@sihJ3wh%-V+KvYrM^>yjU_eIxGj1 zrlmo`Qd8e3D>sH2iKaAy9-W$wkQ>zVhIek@teWujA=0YAH(Jk<7OQ?)97-uPbcZE$ zw@JW9m#^d`L5jxo2)B(Xl5whutoVliS(!Jv>DaU*2|&?)Tf%coh>>#yEepGpBApWr zZ@;0NwVtcTgJQ&&_gf8`Je`B_$DZ4Fh@OQpv2INiUh7!A3=Iw{?;lIu>jg!6oZmGf z<-7OnK(_v6hPrFm@u78ZD|EanyD8mHnGT0vsV|61m)f>+=d*IDUFeG<>(uV2ba%zWPfu2rkb`~C45pmRx5h;PjCv?rX zTJm_D8*AW8V`TKJ+NA}ws;iTwPju6M5Dv$HlNO*1xw>&)RakIBTUhgTBex1d`*L*C z-Lt2A0E{I0 zYI8vvG2pp(XK(ZIMEO~n(rSI0Drb|b$U*O(`n*>^!4XxUfQU{!dTmcsRL-Nn1Do-K z?3&cfGCQX4HG6jUnPl0giUrwit9ry*03Oc|1ze0!Y=XBjRuo_N^o#5jMdl=9BCri8 ze1iLb^6x%bF*PE*bz-%2XvN@EDCr#rJ77LD5Hhz15muwy?BnVcwTQ- zmS#205ZfUilncx4GSAyrKgUwpGoN|3_CZFuXt?^lGYGhSb6}O+h?0gda;DxBt6tCP zyq$UgV~vZghr>hUD&rasgD@@)3)-DUfY2W!7l98ef|%N(zcG;D->cS;=gDP$rHpMu zxQmDRd=4Ln9ap2SXSR?*(r*f-UanUnQ%Op>R0?#iQ~sKiR}y8L#!V-Myx->vHU?Kt zz5N#I8^9dZ_FO>~n=6axaa(^o<7y}(5-p`|J~G*aWd_ykY7S$@atVRVJ(=edRE_l{ z{pRG+q9#~Y%~y<5ieUn=nrUd=dPf6;p2D9~md6>zC=ZiHsE^3|n9O1)XO=>7IIfC2 zGe$%r4YgO=Rv#wQl3tR{tuml{d+YF3?DPxP?^S@~saususJDkmpUQTaw&AN{U(;Sa->t2LADdvlY4!r_DAS%lfeb)&elmuHeil{uspTDe~RBqwqnJ~0VA z&!y!q%CyAicBN5KcQz@LaXM_Yif~d^t#;wLZDwt1es>f{S#sG>XPu50bmF6q|9qmo z=-YHtg_+)Ze)1czZ95voBY9(Xd@qzF*3ix*=0xV)IKi&>B!zb6H>n2Q%Em^~UN)#N zIx^;vg#G|^Iv{sJnjJ=lqkIKUYW%^4sfATq3g%bUCq>V}K~V+D^F%l&QtnIw7~B|#a2aO+j*S1AKljL^*7sGOJX88)RHwRZ3>&L3bSRf>K1|<@;s8+-9Y3 z5)m~tk&w8oyA5X*FOJDy<;>`KSWD5|j?Oi_CKbXXlnRnLPr}Q=ze{?CCA%`L#wzu8 zcB+h3!#^EulM_bf{!=}kf(j`xyLzdD>Dw+K*sbTnr)w;c-j^r6zCO_K{MiFR4i@|O zVPtWN!a=Y+_-@^SYVUnzhH`c{u)u3=g5X?MLurHGK%p%KL{Zt$GxCBxNzu3Twyssr zwBCLNkkvTd>6|`qCrT;K;3*jtL(ZSI+Wc-YW+t-RnyFzF*gTkdK=mA?2ydsJCo(-a zF?W7n&}CysPg8QnmvpVxj=#ys*fg4({>$!z3@8mSPA=&xxkkRP^`I{sSN9Ga=F|Zw5zturq4bql+Sw0mB&& z$C_GOf3sw-BX-5r!lo89L@pD3ZaFnt&&DvfNz+A_bkY1y9vB$-0?mp>b-QfVCncLl z`kEYNWE56Zv|a|(PN4lW0fo}z+#FlF4diaKnG)FN?=FpDhvfwWA}5@DmF<_iurp{Y zlj;)5o>wJc8aGdOke{=6Vwc0GX4k#08E*EQwjWT{?M_g8&KYAsI)DNwdlzW7j+j@R zBjCT&^Kvz>%h^NRnp6*1Aex4x?}W?4bSZ^?=sXrgvode{VODt`?uuRL;(=Z|zsxuX z$aU-FNZqqA8+$csf>>&GNXVic`8|2Px?(*=K^bcA&C#!m#jFO_NuBNZG?8L#`PyI- z9o1h%rsk&xTKBZY`v{BROw(5E#$YT?`9FM&nc=Y{X{=2hP=Y$zBC{}J<$2&sn zY8)6%L|5AgsU~{RTSw*k-DJ$K)`Y^bRBA%Fc{YG?*dL5B>!E#9ZNX}4GceyR2jd{Q z6m}&?Hk?#jug~va2qj=f@3nR(_IYEp|KiS(ACk~9y5%3U0(heI6l>|>l%wFhItT0C zH}YaDg-~B9X0s0T(&zw5lDO!02&mtQyQ8QdMTwlAxg|x_6&I5|$MuiFEtA%l!BLbL zqhgG;EFJg4xHl+m+n?|E0wr@7@(a#RBn(sf*k`<=hd@+SiQV0E657c?oyD_L%wsxg zLZ%pl($f{Y-1fR(x7=E(1G%1+EGaxZphDc(;MehNL#@nex$+F>htl11tp)u2zm7k2 z0sa>|d&^i@`K>+%_8t`V>Y3yEr)$kaHCOn3(^_~`Vij`73_x{l z)RR2x-Ze)-6=8P}z9Ie5LUXc09FeryWuUufOlelqrLcK~>nmVZvy}GQV1cfeaK-L-E&V8-~dj=I+ zOz?Y^xq;VV<(@Kjz_plvT#_%!XTR**4CZLyOZ|2QcK5KgRh{d130NnxP5sKd9k9mY z(6XP_!+Rix=boeDee)Ux$=9f_W=V<=v-$)@qJ(Q}k)!J1ERI0@#?h|fC~UIE(9r1C z*g2_M4^F6NlRZys!?C)DmrP=StjN>{akX9!BTWer@~*YxY7acOy9vSXGrG}foGm4= zOMTMWJ<1R+bG35Butxp^lR;ekZTRyKDn|D%8&*7<;(L5$Xb$>UD3OYJed(Q!*r_^~ z$nz@ahVv{nj4Pz$sI=;(Lm224Qvz|$LCuMRyiT>%0rGZPj2$0@q?%w7G^UT9t@ij3 zj(TeeDf_7#E4U^L&-W$OTbahiJB?~jn+mPDH>)+7Rkp=E4(3(v*KLGL5D5j`#fU41 zCe{0Yu)UP6nW^$Tbf_YuUPx5Sd#6WGEma8rQjhz(loaM6W9tUWWsIMd)pa$7F->H& zx~zOnO}EHy95XWVThYg7+kT%|*>`ViW`zWl_KThTUw}4Ta9wZP{_!SW?!Nm9b<=vK z-!15pao^_epQbnqtnt`zx&EFJhn`SuPb(BLedhBntm7~KE{{#3SZyY{Ta2yvBaqiV zcswOs=OLSy@JdRmHgYX`m(!%$A11Q`UE7Jy@-s1E4{%$n3x{5R@M@+j>B*&E1mf#z zhe!EWlLKmwKXpI0hePi*pfo{357PMr>Ai)HNFY)LAqg$X_cC+;hC6rW?#WDk z+k3CIp1q#6*6h9B9*zOX))w-5kdhlFH}gTTjJ2lLK$;9~XC`VE!o!)x!v!7!$FKgZ zAd|NX^q1>4|NXrKZq`T}Aw*x&PIo|69ua;|TVVa)qTT0VFKP-`YOvTewfT`^uW#M~ zO+T0TKn528VwTfB4&3OPnb~g8a+ycVCcpTS%7PGLQtdQ~h>s`INlbX`nIRw9jdJVb zqSE4n<)f-90>l~lnjzh~N%R){i!5RS<<)5GG}vut$i0Jn-M=lwrsb}u%aLTe5z>gT z<7Y;)adr#*E@wO@dc@m=25i(Cm*qcJU`Dvt|yUM8V7C&Y}yxgXyKOleSD~RX0!Ty(pR{lubT5>4Oj0 z`be&wL&Nar4id2CFzeT8;3vgY(D(_;yK(hWvS2ja%ZOie$7wQCxr<;A<%VRRx}}2N z^+%?HK*LtmDLi+0@@VUahiAW3bBm!ZK~B!wUH&xftxBw^X-!#WCCQw_`f&eiQv6Ld zsFbYZ*QB&?ma{r3M>yMtD&*BNEm;A#v~-Z71yXqhP}NJG-Ii8I-+;0syhhw0cg`;t zu%f@SZQwon2)4CY0@C@`mAH3>N_C@H*7@3ey*a!zy62sdGl*8>1LeN~c=nmd*gLN6?mJoJ5tosEF3w@<>`r!omGL!D zDK~(+!3jX62Sra$z8`ucPiN0)?`8Rk{QL)$&+TPiC_WteG;U?sCuE1^^Bq_E2mM~- zr6s(8L(De>b_n&mpit`}OyUV-_o`XG_2o+Q}u1*?8;LH-3CL)cF+k zE_0CE+^(lBr%}dM)fu5@7QeF_mKN%*r9t^MfEZOO4h}JN$3u@@8XWrgBN5_nC!r+$ ztmPGTN(6)LBJVCpk2k*7J@xzJ>RcNuLc8p%2ui@J*ZxBU&~HIlAE;$3yIl+YGN)!QY_*G8CU{a^N3sU@}pyZ!90Gq z5v^{cL}b%lTh{xBIfSdh&6wMkk`G5uDx`raTv9jpUnh`5_M^`31J;=;`TH8^`@*b; z3&lj0!MbAd^jAQjwRy?&8Z zn7ot}b*jSeFwgi;P-!sWbxSYB?{ETlE8R{p%*=J}MzNboyh#7!)LSqmDJc>P(~A0D z1xVnw2b2a%J?H&yP^{~4tF-qtoPzPkCV*?j+oWhe_B3~wmrx_$w}dZ(>dzl>N^g(# zgrA7FeOXnw6!bO88F;y5Cmzc)OdUY&?xLRqa^L{hl&?U^02$Rl2!0*&DGNY^Dw?=P9wEF7$s$yQ!e152)zbC zklULH6Hw`+cvr|~<5^7+UDxz!?sS>gJ-DQynZ#^^@R-Z=<@0Enxk zqFjj{%X}Q-t?dmZq&PvwA4$T$7Y^(+qKgQ_-Qj~VvWxyUWx)Ed^Yzyl!|d(Y)EXGH z%QUJ}Qu5F?XO-POj&$m@LO{eb08;0=DYGy#T1U4W{+{U*)S_3pOeNK4{>!pvtd&%_ zGCDeWSiS1iE~{kOg5CnRsy(~#?t~X`LBb7h?ff|5{!aMaM8`OAcF@bAm#1JbI99uh zpQxV|ZXn7Z)>?^Kkd;oQld@q`q?R&3f*63HoI8tS7d0vy1J;PaIO0rtJUILDLs^rj zDF^wcTAkIal08=b`&|(5(kaH~B0fcngG2ElUV>XxA>OPc3X40PLO7E#& z{UZm1=-`vfO zN!HI>%ItBIii4x}%3fk7o~2ER^u2igIsJV!sN;v7?Ul(?sUYH2_87pNrw4g?)APY? z#2LJR-nw;;;xmJkx4p#Vhsw&7>0YPZ5ptW1XL=QHA-OZ7Y-eRV4&uCQYi46x@kUA7 zfep^BaS^6`H#sVV%ckb`Vp}6cq#45vc5;nu^X>aK@Y)sGXHjh*6;=r88MCXsWn>f< zv7{_TS_HyUzw%xMFPgkuQ899JeC>1hq}=4U49+Q}Q&KUqbfYp`e+wnHJjyzCvVW_H z-Bh%=gV$MNdn#To4qlMpY@~b_BQ9gl`6I!tlzM;y`0QyC;~$UhxZEwN&ly&<^%dV9 zl?@LUFI(b1?@!}!u4oO^b5CWs5TbMJqhzC8G>vi~o;%a#ru~azyha81=bD?el4Io8 z8rG=sk?sWxq2!@%Xm-V7fnfB6NLO{<_W+%F$XlsgXm^s%VOSG<8s!V|?7 zHfRfD5zFeZcPKt0^g6wE%PJmIu(?yOs7!E(Zd_jDH$}oXCj==9TP}x`+k((B-XIH>9}0M=&!|0<(BSOC?wE3H9P$3{c;nm zD=iRTmZq<#L!hgnt<7Cl?;YFb0trunu@>Dqpy{Z#AaSFo!EJ+zQo0B_dUej=z1u-S z_avnhTYVPi$a!$(V;!LGaX@W#^J&0z-k-1mVnlCu{Vn>*H*viz`Q!CK35bK2>?U9Eeo z=iX#FCD`F5ChZT9vKTN0D*y<9D4vV&IJF$kkwna`g4}*U!V+lCKrF4TU}F3${UPB1 zG1EXNSR@s~Onqzymi6>G1gvKjXlV(TK^f<1&E5qC-&j!==#F&*uJt~X;e20IV?`J| z0NVn5b;HHn!KKtI- z+v*x#D+K%C&jy<0SGAb}>2>ybZHGxk5mu<64|0l0*>S5*XK_PH0(Cb)9#|>hX0eBS zwk%mEjCG0f3?IM4O+!>C)Y)^b^6AEAc0Uyw3iYGkK8U%L93t8H)G=~gDwH+psZ(z5 zgT;hGgf$y*uOnLmhV1R`SvnRT6ihC*scCTRGtU*tasW~jNy%^H1pBrGao*b4*}+Ml zt!6K?3m`enXP`ho9OW1sAj)jW31@%`g$c?UxoRanRb^8HUZwcTWXEbFv(%waR*JdA zG>vbZw{7}AJe&;*FRLicCZn4R*v8ue1+kH;#s-PU%zu(3bnMIQMLsxvk$PKmJBe^O z5;sytGh`@$c6qLa(kb%LyZI`Is)Vcf{dvHlt&e&%|*~qTZX;} z*qbJ50R32m2`Z&-xBzxcPt&7c^zlY|W9NmjV{H%ybz=X4oCxn}}Upg9{5<)USbte*{as&$43!y1r6<{%0KxhFn z^?)#BhViMy?nB}E*eBCzAQiRa872d9zpGxGrg=IgxPIzCjbuHY|k74|TP(Cb42x7Va~SDLM)nUJ1T+ zH<0jl7ZQGd<4%sr`+lLY(L%n1Pr#m$%)w*_LeGy78+VwoD4a_?+mR5S;(Nb z<#UQZ@h8tFXkYKktaIXjQULAG@!9G*aBBDGLGQ<^vPn34#MB9fvTE%A1HLt;NO?=^ z(Fc?4oNIEm4sJlSkOAEq%Nsa}YhxP?0!#(aXt+%Du+zYZgQC8wCKo(X@;?&n#QVy_ z4B4Tqxtd8zOwhT?hKrMlCf7d#Upo;O4J%Y)^ehMt#~yfQ>BA0hdei0&9(3xhMYITp zKFk|rPx9b5;UBx`>gD}B2pQ~R^xW#g52+glVn>2gD@e2Cc&7^|l-bF;xlIdk;>nc=1.1.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +[[package]] +name = "babel" +version = "2.13.1" +description = "Internationalization utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "Babel-2.13.1-py3-none-any.whl", hash = "sha256:7077a4984b02b6727ac10f1f7294484f737443d7e2e66c5e4380e41a3ae0b4ed"}, + {file = "Babel-2.13.1.tar.gz", hash = "sha256:33e0952d7dd6374af8dbf6768cc4ddf3ccfefc244f9986d4074704f2fbd18900"}, +] + +[package.dependencies] +setuptools = {version = "*", markers = "python_version >= \"3.12\""} + +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] + [[package]] name = "beautifulsoup4" version = "4.12.2" @@ -792,6 +809,63 @@ files = [ Markdown = ">=3.3" mkdocs = ">=1.1" +[[package]] +name = "mkdocs-git-revision-date-localized-plugin" +version = "1.2.1" +description = "Mkdocs plugin that enables displaying the localized date of the last git modification of a markdown file." +optional = false +python-versions = ">=3.6" +files = [ + {file = "mkdocs-git-revision-date-localized-plugin-1.2.1.tar.gz", hash = "sha256:fc5b23a9d572cbba0114e9e17152001d01724990cb308830e58291fa614faf73"}, + {file = "mkdocs_git_revision_date_localized_plugin-1.2.1-py3-none-any.whl", hash = "sha256:d57dc99d67af917899e69c392f1ebccd1779fa243d641255469b03f8a3596b96"}, +] + +[package.dependencies] +babel = ">=2.7.0" +GitPython = "*" +mkdocs = ">=1.0" +pytz = "*" + +[[package]] +name = "mkdocs-material" +version = "9.4.8" +description = "Documentation that simply works" +optional = false +python-versions = ">=3.8" +files = [ + {file = "mkdocs_material-9.4.8-py3-none-any.whl", hash = "sha256:8b20f6851bddeef37dced903893cd176cf13a21a482e97705a103c45f06ce9b9"}, + {file = "mkdocs_material-9.4.8.tar.gz", hash = "sha256:f0c101453e8bc12b040e8b64ca39a405d950d8402609b1378cc2b98976e74b5f"}, +] + +[package.dependencies] +babel = ">=2.10,<3.0" +colorama = ">=0.4,<1.0" +jinja2 = ">=3.0,<4.0" +markdown = ">=3.2,<4.0" +mkdocs = ">=1.5.3,<2.0" +mkdocs-material-extensions = ">=1.3,<2.0" +paginate = ">=0.5,<1.0" +pygments = ">=2.16,<3.0" +pymdown-extensions = ">=10.2,<11.0" +regex = ">=2022.4" +requests = ">=2.26,<3.0" + +[package.extras] +git = ["mkdocs-git-committers-plugin-2 (>=1.1,<2.0)", "mkdocs-git-revision-date-localized-plugin (>=1.2,<2.0)"] +imaging = ["cairosvg (>=2.6,<3.0)", "pillow (>=9.4,<10.0)"] +recommended = ["mkdocs-minify-plugin (>=0.7,<1.0)", "mkdocs-redirects (>=1.2,<2.0)", "mkdocs-rss-plugin (>=1.6,<2.0)"] + +[[package]] +name = "mkdocs-material-extensions" +version = "1.3" +description = "Extension pack for Python Markdown and MkDocs Material." +optional = false +python-versions = ">=3.8" +files = [ + {file = "mkdocs_material_extensions-1.3-py3-none-any.whl", hash = "sha256:0297cc48ba68a9fdd1ef3780a3b41b534b0d0df1d1181a44676fda5f464eeadc"}, + {file = "mkdocs_material_extensions-1.3.tar.gz", hash = "sha256:f0446091503acb110a7cab9349cbc90eeac51b58d1caa92a704a81ca1e24ddbd"}, +] + [[package]] name = "mkdocstrings" version = "0.23.0" @@ -913,6 +987,16 @@ files = [ {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, ] +[[package]] +name = "paginate" +version = "0.5.6" +description = "Divides large result sets into pages for easier browsing" +optional = false +python-versions = "*" +files = [ + {file = "paginate-0.5.6.tar.gz", hash = "sha256:5e6007b6a9398177a7e1648d04fdd9f8c9766a1a945bceac82f1929e8c78af2d"}, +] + [[package]] name = "pathspec" version = "0.11.2" @@ -1043,6 +1127,17 @@ files = [ [package.dependencies] six = ">=1.5" +[[package]] +name = "pytz" +version = "2023.3.post1" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +files = [ + {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"}, + {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"}, +] + [[package]] name = "pywin32" version = "306" @@ -1129,6 +1224,103 @@ files = [ [package.dependencies] pyyaml = "*" +[[package]] +name = "regex" +version = "2023.10.3" +description = "Alternative regular expression module, to replace re." +optional = false +python-versions = ">=3.7" +files = [ + {file = "regex-2023.10.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4c34d4f73ea738223a094d8e0ffd6d2c1a1b4c175da34d6b0de3d8d69bee6bcc"}, + {file = "regex-2023.10.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a8f4e49fc3ce020f65411432183e6775f24e02dff617281094ba6ab079ef0915"}, + {file = "regex-2023.10.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4cd1bccf99d3ef1ab6ba835308ad85be040e6a11b0977ef7ea8c8005f01a3c29"}, + {file = "regex-2023.10.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:81dce2ddc9f6e8f543d94b05d56e70d03a0774d32f6cca53e978dc01e4fc75b8"}, + {file = "regex-2023.10.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c6b4d23c04831e3ab61717a707a5d763b300213db49ca680edf8bf13ab5d91b"}, + {file = "regex-2023.10.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c15ad0aee158a15e17e0495e1e18741573d04eb6da06d8b84af726cfc1ed02ee"}, + {file = "regex-2023.10.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6239d4e2e0b52c8bd38c51b760cd870069f0bdf99700a62cd509d7a031749a55"}, + {file = "regex-2023.10.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4a8bf76e3182797c6b1afa5b822d1d5802ff30284abe4599e1247be4fd6b03be"}, + {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d9c727bbcf0065cbb20f39d2b4f932f8fa1631c3e01fcedc979bd4f51fe051c5"}, + {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:3ccf2716add72f80714b9a63899b67fa711b654be3fcdd34fa391d2d274ce767"}, + {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:107ac60d1bfdc3edb53be75e2a52aff7481b92817cfdddd9b4519ccf0e54a6ff"}, + {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:00ba3c9818e33f1fa974693fb55d24cdc8ebafcb2e4207680669d8f8d7cca79a"}, + {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f0a47efb1dbef13af9c9a54a94a0b814902e547b7f21acb29434504d18f36e3a"}, + {file = "regex-2023.10.3-cp310-cp310-win32.whl", hash = "sha256:36362386b813fa6c9146da6149a001b7bd063dabc4d49522a1f7aa65b725c7ec"}, + {file = "regex-2023.10.3-cp310-cp310-win_amd64.whl", hash = "sha256:c65a3b5330b54103e7d21cac3f6bf3900d46f6d50138d73343d9e5b2900b2353"}, + {file = "regex-2023.10.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:90a79bce019c442604662d17bf69df99090e24cdc6ad95b18b6725c2988a490e"}, + {file = "regex-2023.10.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c7964c2183c3e6cce3f497e3a9f49d182e969f2dc3aeeadfa18945ff7bdd7051"}, + {file = "regex-2023.10.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ef80829117a8061f974b2fda8ec799717242353bff55f8a29411794d635d964"}, + {file = "regex-2023.10.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5addc9d0209a9afca5fc070f93b726bf7003bd63a427f65ef797a931782e7edc"}, + {file = "regex-2023.10.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c148bec483cc4b421562b4bcedb8e28a3b84fcc8f0aa4418e10898f3c2c0eb9b"}, + {file = "regex-2023.10.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d1f21af4c1539051049796a0f50aa342f9a27cde57318f2fc41ed50b0dbc4ac"}, + {file = "regex-2023.10.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0b9ac09853b2a3e0d0082104036579809679e7715671cfbf89d83c1cb2a30f58"}, + {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ebedc192abbc7fd13c5ee800e83a6df252bec691eb2c4bedc9f8b2e2903f5e2a"}, + {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:d8a993c0a0ffd5f2d3bda23d0cd75e7086736f8f8268de8a82fbc4bd0ac6791e"}, + {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:be6b7b8d42d3090b6c80793524fa66c57ad7ee3fe9722b258aec6d0672543fd0"}, + {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4023e2efc35a30e66e938de5aef42b520c20e7eda7bb5fb12c35e5d09a4c43f6"}, + {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0d47840dc05e0ba04fe2e26f15126de7c755496d5a8aae4a08bda4dd8d646c54"}, + {file = "regex-2023.10.3-cp311-cp311-win32.whl", hash = "sha256:9145f092b5d1977ec8c0ab46e7b3381b2fd069957b9862a43bd383e5c01d18c2"}, + {file = "regex-2023.10.3-cp311-cp311-win_amd64.whl", hash = "sha256:b6104f9a46bd8743e4f738afef69b153c4b8b592d35ae46db07fc28ae3d5fb7c"}, + {file = "regex-2023.10.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:bff507ae210371d4b1fe316d03433ac099f184d570a1a611e541923f78f05037"}, + {file = "regex-2023.10.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:be5e22bbb67924dea15039c3282fa4cc6cdfbe0cbbd1c0515f9223186fc2ec5f"}, + {file = "regex-2023.10.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a992f702c9be9c72fa46f01ca6e18d131906a7180950958f766c2aa294d4b41"}, + {file = "regex-2023.10.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7434a61b158be563c1362d9071358f8ab91b8d928728cd2882af060481244c9e"}, + {file = "regex-2023.10.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2169b2dcabf4e608416f7f9468737583ce5f0a6e8677c4efbf795ce81109d7c"}, + {file = "regex-2023.10.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9e908ef5889cda4de038892b9accc36d33d72fb3e12c747e2799a0e806ec841"}, + {file = "regex-2023.10.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:12bd4bc2c632742c7ce20db48e0d99afdc05e03f0b4c1af90542e05b809a03d9"}, + {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bc72c231f5449d86d6c7d9cc7cd819b6eb30134bb770b8cfdc0765e48ef9c420"}, + {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bce8814b076f0ce5766dc87d5a056b0e9437b8e0cd351b9a6c4e1134a7dfbda9"}, + {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:ba7cd6dc4d585ea544c1412019921570ebd8a597fabf475acc4528210d7c4a6f"}, + {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b0c7d2f698e83f15228ba41c135501cfe7d5740181d5903e250e47f617eb4292"}, + {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5a8f91c64f390ecee09ff793319f30a0f32492e99f5dc1c72bc361f23ccd0a9a"}, + {file = "regex-2023.10.3-cp312-cp312-win32.whl", hash = "sha256:ad08a69728ff3c79866d729b095872afe1e0557251da4abb2c5faff15a91d19a"}, + {file = "regex-2023.10.3-cp312-cp312-win_amd64.whl", hash = "sha256:39cdf8d141d6d44e8d5a12a8569d5a227f645c87df4f92179bd06e2e2705e76b"}, + {file = "regex-2023.10.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4a3ee019a9befe84fa3e917a2dd378807e423d013377a884c1970a3c2792d293"}, + {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76066d7ff61ba6bf3cb5efe2428fc82aac91802844c022d849a1f0f53820502d"}, + {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfe50b61bab1b1ec260fa7cd91106fa9fece57e6beba05630afe27c71259c59b"}, + {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fd88f373cb71e6b59b7fa597e47e518282455c2734fd4306a05ca219a1991b0"}, + {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3ab05a182c7937fb374f7e946f04fb23a0c0699c0450e9fb02ef567412d2fa3"}, + {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dac37cf08fcf2094159922edc7a2784cfcc5c70f8354469f79ed085f0328ebdf"}, + {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e54ddd0bb8fb626aa1f9ba7b36629564544954fff9669b15da3610c22b9a0991"}, + {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:3367007ad1951fde612bf65b0dffc8fd681a4ab98ac86957d16491400d661302"}, + {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:16f8740eb6dbacc7113e3097b0a36065a02e37b47c936b551805d40340fb9971"}, + {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:f4f2ca6df64cbdd27f27b34f35adb640b5d2d77264228554e68deda54456eb11"}, + {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:39807cbcbe406efca2a233884e169d056c35aa7e9f343d4e78665246a332f597"}, + {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:7eece6fbd3eae4a92d7c748ae825cbc1ee41a89bb1c3db05b5578ed3cfcfd7cb"}, + {file = "regex-2023.10.3-cp37-cp37m-win32.whl", hash = "sha256:ce615c92d90df8373d9e13acddd154152645c0dc060871abf6bd43809673d20a"}, + {file = "regex-2023.10.3-cp37-cp37m-win_amd64.whl", hash = "sha256:0f649fa32fe734c4abdfd4edbb8381c74abf5f34bc0b3271ce687b23729299ed"}, + {file = "regex-2023.10.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9b98b7681a9437262947f41c7fac567c7e1f6eddd94b0483596d320092004533"}, + {file = "regex-2023.10.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:91dc1d531f80c862441d7b66c4505cd6ea9d312f01fb2f4654f40c6fdf5cc37a"}, + {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82fcc1f1cc3ff1ab8a57ba619b149b907072e750815c5ba63e7aa2e1163384a4"}, + {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7979b834ec7a33aafae34a90aad9f914c41fd6eaa8474e66953f3f6f7cbd4368"}, + {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ef71561f82a89af6cfcbee47f0fabfdb6e63788a9258e913955d89fdd96902ab"}, + {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd829712de97753367153ed84f2de752b86cd1f7a88b55a3a775eb52eafe8a94"}, + {file = "regex-2023.10.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:00e871d83a45eee2f8688d7e6849609c2ca2a04a6d48fba3dff4deef35d14f07"}, + {file = "regex-2023.10.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:706e7b739fdd17cb89e1fbf712d9dc21311fc2333f6d435eac2d4ee81985098c"}, + {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cc3f1c053b73f20c7ad88b0d1d23be7e7b3901229ce89f5000a8399746a6e039"}, + {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6f85739e80d13644b981a88f529d79c5bdf646b460ba190bffcaf6d57b2a9863"}, + {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:741ba2f511cc9626b7561a440f87d658aabb3d6b744a86a3c025f866b4d19e7f"}, + {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e77c90ab5997e85901da85131fd36acd0ed2221368199b65f0d11bca44549711"}, + {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:979c24cbefaf2420c4e377ecd1f165ea08cc3d1fbb44bdc51bccbbf7c66a2cb4"}, + {file = "regex-2023.10.3-cp38-cp38-win32.whl", hash = "sha256:58837f9d221744d4c92d2cf7201c6acd19623b50c643b56992cbd2b745485d3d"}, + {file = "regex-2023.10.3-cp38-cp38-win_amd64.whl", hash = "sha256:c55853684fe08d4897c37dfc5faeff70607a5f1806c8be148f1695be4a63414b"}, + {file = "regex-2023.10.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2c54e23836650bdf2c18222c87f6f840d4943944146ca479858404fedeb9f9af"}, + {file = "regex-2023.10.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:69c0771ca5653c7d4b65203cbfc5e66db9375f1078689459fe196fe08b7b4930"}, + {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ac965a998e1388e6ff2e9781f499ad1eaa41e962a40d11c7823c9952c77123e"}, + {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c0e8fae5b27caa34177bdfa5a960c46ff2f78ee2d45c6db15ae3f64ecadde14"}, + {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6c56c3d47da04f921b73ff9415fbaa939f684d47293f071aa9cbb13c94afc17d"}, + {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ef1e014eed78ab650bef9a6a9cbe50b052c0aebe553fb2881e0453717573f52"}, + {file = "regex-2023.10.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d29338556a59423d9ff7b6eb0cb89ead2b0875e08fe522f3e068b955c3e7b59b"}, + {file = "regex-2023.10.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9c6d0ced3c06d0f183b73d3c5920727268d2201aa0fe6d55c60d68c792ff3588"}, + {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:994645a46c6a740ee8ce8df7911d4aee458d9b1bc5639bc968226763d07f00fa"}, + {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:66e2fe786ef28da2b28e222c89502b2af984858091675044d93cb50e6f46d7af"}, + {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:11175910f62b2b8c055f2b089e0fedd694fe2be3941b3e2633653bc51064c528"}, + {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:06e9abc0e4c9ab4779c74ad99c3fc10d3967d03114449acc2c2762ad4472b8ca"}, + {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:fb02e4257376ae25c6dd95a5aec377f9b18c09be6ebdefa7ad209b9137b73d48"}, + {file = "regex-2023.10.3-cp39-cp39-win32.whl", hash = "sha256:3b2c3502603fab52d7619b882c25a6850b766ebd1b18de3df23b2f939360e1bd"}, + {file = "regex-2023.10.3-cp39-cp39-win_amd64.whl", hash = "sha256:adbccd17dcaff65704c856bd29951c58a1bd4b2b0f8ad6b826dbd543fe740988"}, + {file = "regex-2023.10.3.tar.gz", hash = "sha256:3fef4f844d2290ee0ba57addcec17eec9e3df73f10a2748485dfd6a3a188cc0f"}, +] + [[package]] name = "requests" version = "2.31.0" @@ -1211,6 +1403,22 @@ trio = ">=0.17,<1.0" trio-websocket = ">=0.9,<1.0" urllib3 = {version = ">=1.26,<3", extras = ["socks"]} +[[package]] +name = "setuptools" +version = "68.2.2" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "setuptools-68.2.2-py3-none-any.whl", hash = "sha256:b454a35605876da60632df1a60f736524eb73cc47bbc9f3f1ef1b644de74fd2a"}, + {file = "setuptools-68.2.2.tar.gz", hash = "sha256:4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] + [[package]] name = "shellingham" version = "1.5.4" @@ -1459,4 +1667,4 @@ h11 = ">=0.9.0,<1" [metadata] lock-version = "2.0" python-versions = "^3.12" -content-hash = "928828e0aced77a627487120700ec1db6f94648d35ff77c96e377b1c74e0e5de" +content-hash = "0fbf242978e837c466ac225a733972d0e83360485c59a780baa4eaa2f581fa13" diff --git a/pyproject.toml b/pyproject.toml index 578c626..82e53fd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,6 +19,8 @@ docker = "^6.1.3" requests = "^2.31.0" gitpython = "^3.1.40" fsspec = "^2023.10.0" +mkdocs-git-revision-date-localized-plugin = "^1.2.1" +mkdocs-material = {extras = ["all"], version = "^9.4.8"} [tool.poetry.group.dev.dependencies] @@ -32,10 +34,12 @@ docker-stubs = {git = "https://github.com/rdozier-work/docker-stubs"} [tool.poetry.group.docs.dependencies] mkdocs = "^1.5.3" mkdocstrings = {extras = ["python"], version = "^0.23.0"} +mkdocs-material = "^9.4.8" [tool.poetry.scripts] node_deployer = "node_deployer.__main__:main" debug_node_deployer = "node_deployer.__main__:debug" +build_docs = "scripts.docs:main" [build-system] requires = ["poetry-core"] diff --git a/scripts/docs.py b/scripts/docs.py new file mode 100644 index 0000000..5078201 --- /dev/null +++ b/scripts/docs.py @@ -0,0 +1,32 @@ +import subprocess + + +README_FILES = ( + ("", "docs/index.md"), + ("Installation", "docs/installation.md"), + ("Usage", "docs/usage.md"), + ("Deployment", "docs/deployment.md"), +) + + +def create_readme(): + with open("README.md", "wt") as r: + for header, file in README_FILES: + r.write(f"\n\n## {header}\n\n") + with open(file, "rt") as f: + r.write(f.read()) + + +def update_license(): + with open("LICENSE", "rt") as source, open("docs/license.md", "wt") as target: + target.write(source.read()) + + +def create_docs(): + subprocess.run("mkdocs build", shell=True, check=True) + + +def main(): + create_readme() + update_license() + create_docs() \ No newline at end of file From 68d5711c343ac9116d72434391e8b54f124d8410 Mon Sep 17 00:00:00 2001 From: Cian Hughes Date: Tue, 7 Nov 2023 14:43:59 +0000 Subject: [PATCH 8/8] Removed poetry.lock to avoid future headaches --- .gitignore | 2 +- poetry.lock | 1670 --------------------------------------------------- 2 files changed, 1 insertion(+), 1671 deletions(-) delete mode 100644 poetry.lock diff --git a/.gitignore b/.gitignore index c4dcd0a..61a6b54 100644 --- a/.gitignore +++ b/.gitignore @@ -102,7 +102,7 @@ ipython_config.py # This is especially recommended for binary packages to ensure reproducibility, and is more # commonly ignored for libraries. # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control -#poetry.lock +poetry.lock # pdm # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. diff --git a/poetry.lock b/poetry.lock deleted file mode 100644 index ffa1bf0..0000000 --- a/poetry.lock +++ /dev/null @@ -1,1670 +0,0 @@ -# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. - -[[package]] -name = "asttokens" -version = "2.4.1" -description = "Annotate AST trees with source code positions" -optional = false -python-versions = "*" -files = [ - {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, - {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, -] - -[package.dependencies] -six = ">=1.12.0" - -[package.extras] -astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] -test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] - -[[package]] -name = "attrs" -version = "23.1.0" -description = "Classes Without Boilerplate" -optional = false -python-versions = ">=3.7" -files = [ - {file = "attrs-23.1.0-py3-none-any.whl", hash = "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"}, - {file = "attrs-23.1.0.tar.gz", hash = "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015"}, -] - -[package.extras] -cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] -dev = ["attrs[docs,tests]", "pre-commit"] -docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] -tests = ["attrs[tests-no-zope]", "zope-interface"] -tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] - -[[package]] -name = "babel" -version = "2.13.1" -description = "Internationalization utilities" -optional = false -python-versions = ">=3.7" -files = [ - {file = "Babel-2.13.1-py3-none-any.whl", hash = "sha256:7077a4984b02b6727ac10f1f7294484f737443d7e2e66c5e4380e41a3ae0b4ed"}, - {file = "Babel-2.13.1.tar.gz", hash = "sha256:33e0952d7dd6374af8dbf6768cc4ddf3ccfefc244f9986d4074704f2fbd18900"}, -] - -[package.dependencies] -setuptools = {version = "*", markers = "python_version >= \"3.12\""} - -[package.extras] -dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] - -[[package]] -name = "beautifulsoup4" -version = "4.12.2" -description = "Screen-scraping library" -optional = false -python-versions = ">=3.6.0" -files = [ - {file = "beautifulsoup4-4.12.2-py3-none-any.whl", hash = "sha256:bd2520ca0d9d7d12694a53d44ac482d181b4ec1888909b035a3dbf40d0f57d4a"}, - {file = "beautifulsoup4-4.12.2.tar.gz", hash = "sha256:492bbc69dca35d12daac71c4db1bfff0c876c00ef4a2ffacce226d4638eb72da"}, -] - -[package.dependencies] -soupsieve = ">1.2" - -[package.extras] -html5lib = ["html5lib"] -lxml = ["lxml"] - -[[package]] -name = "black" -version = "23.10.1" -description = "The uncompromising code formatter." -optional = false -python-versions = ">=3.8" -files = [ - {file = "black-23.10.1-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:ec3f8e6234c4e46ff9e16d9ae96f4ef69fa328bb4ad08198c8cee45bb1f08c69"}, - {file = "black-23.10.1-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:1b917a2aa020ca600483a7b340c165970b26e9029067f019e3755b56e8dd5916"}, - {file = "black-23.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c74de4c77b849e6359c6f01987e94873c707098322b91490d24296f66d067dc"}, - {file = "black-23.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:7b4d10b0f016616a0d93d24a448100adf1699712fb7a4efd0e2c32bbb219b173"}, - {file = "black-23.10.1-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:b15b75fc53a2fbcac8a87d3e20f69874d161beef13954747e053bca7a1ce53a0"}, - {file = "black-23.10.1-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:e293e4c2f4a992b980032bbd62df07c1bcff82d6964d6c9496f2cd726e246ace"}, - {file = "black-23.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d56124b7a61d092cb52cce34182a5280e160e6aff3137172a68c2c2c4b76bcb"}, - {file = "black-23.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:3f157a8945a7b2d424da3335f7ace89c14a3b0625e6593d21139c2d8214d55ce"}, - {file = "black-23.10.1-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:cfcce6f0a384d0da692119f2d72d79ed07c7159879d0bb1bb32d2e443382bf3a"}, - {file = "black-23.10.1-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:33d40f5b06be80c1bbce17b173cda17994fbad096ce60eb22054da021bf933d1"}, - {file = "black-23.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:840015166dbdfbc47992871325799fd2dc0dcf9395e401ada6d88fe11498abad"}, - {file = "black-23.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:037e9b4664cafda5f025a1728c50a9e9aedb99a759c89f760bd83730e76ba884"}, - {file = "black-23.10.1-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:7cb5936e686e782fddb1c73f8aa6f459e1ad38a6a7b0e54b403f1f05a1507ee9"}, - {file = "black-23.10.1-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:7670242e90dc129c539e9ca17665e39a146a761e681805c54fbd86015c7c84f7"}, - {file = "black-23.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ed45ac9a613fb52dad3b61c8dea2ec9510bf3108d4db88422bacc7d1ba1243d"}, - {file = "black-23.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:6d23d7822140e3fef190734216cefb262521789367fbdc0b3f22af6744058982"}, - {file = "black-23.10.1-py3-none-any.whl", hash = "sha256:d431e6739f727bb2e0495df64a6c7a5310758e87505f5f8cde9ff6c0f2d7e4fe"}, - {file = "black-23.10.1.tar.gz", hash = "sha256:1f8ce316753428ff68749c65a5f7844631aa18c8679dfd3ca9dc1a289979c258"}, -] - -[package.dependencies] -click = ">=8.0.0" -mypy-extensions = ">=0.4.3" -packaging = ">=22.0" -pathspec = ">=0.9.0" -platformdirs = ">=2" - -[package.extras] -colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.7.4)"] -jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] -uvloop = ["uvloop (>=0.15.2)"] - -[[package]] -name = "certifi" -version = "2023.7.22" -description = "Python package for providing Mozilla's CA Bundle." -optional = false -python-versions = ">=3.6" -files = [ - {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, - {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, -] - -[[package]] -name = "cffi" -version = "1.16.0" -description = "Foreign Function Interface for Python calling C code." -optional = false -python-versions = ">=3.8" -files = [ - {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, - {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, - {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, - {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, - {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, - {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, - {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, - {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, - {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, - {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, - {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, - {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, - {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, - {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, - {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, - {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, - {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, - {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, - {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, - {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, - {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, - {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, - {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, - {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, - {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, - {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, - {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, -] - -[package.dependencies] -pycparser = "*" - -[[package]] -name = "charset-normalizer" -version = "3.3.2" -description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -optional = false -python-versions = ">=3.7.0" -files = [ - {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, - {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, -] - -[[package]] -name = "cheap-repr" -version = "0.5.1" -description = "Better version of repr/reprlib for short, cheap string representations." -optional = false -python-versions = "*" -files = [ - {file = "cheap_repr-0.5.1-py2.py3-none-any.whl", hash = "sha256:30096998aeb49367a4a153988d7a99dce9dc59bbdd4b19740da6b4f3f97cf2ff"}, - {file = "cheap_repr-0.5.1.tar.gz", hash = "sha256:31ec63b9d8394aa23d746c8376c8307f75f9fca0b983566b8bcf13cc661fe6dd"}, -] - -[package.extras] -tests = ["Django", "Django (<2)", "Django (<3)", "chainmap", "numpy (>=1.16.3)", "numpy (>=1.16.3,<1.17)", "numpy (>=1.16.3,<1.19)", "pandas (>=0.24.2)", "pandas (>=0.24.2,<0.25)", "pandas (>=0.24.2,<0.26)", "pytest"] - -[[package]] -name = "click" -version = "8.1.7" -description = "Composable command line interface toolkit" -optional = false -python-versions = ">=3.7" -files = [ - {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, - {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "platform_system == \"Windows\""} - -[[package]] -name = "colorama" -version = "0.4.6" -description = "Cross-platform colored terminal text." -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -files = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, -] - -[[package]] -name = "docker" -version = "6.1.3" -description = "A Python library for the Docker Engine API." -optional = false -python-versions = ">=3.7" -files = [ - {file = "docker-6.1.3-py3-none-any.whl", hash = "sha256:aecd2277b8bf8e506e484f6ab7aec39abe0038e29fa4a6d3ba86c3fe01844ed9"}, - {file = "docker-6.1.3.tar.gz", hash = "sha256:aa6d17830045ba5ef0168d5eaa34d37beeb113948c413affe1d5991fc11f9a20"}, -] - -[package.dependencies] -packaging = ">=14.0" -pywin32 = {version = ">=304", markers = "sys_platform == \"win32\""} -requests = ">=2.26.0" -urllib3 = ">=1.26.0" -websocket-client = ">=0.32.0" - -[package.extras] -ssh = ["paramiko (>=2.4.3)"] - -[[package]] -name = "docker-stubs" -version = "0.1.0" -description = "Stubs package for the Python Docker API." -optional = false -python-versions = "^3.8" -files = [] -develop = false - -[package.source] -type = "git" -url = "https://github.com/rdozier-work/docker-stubs" -reference = "HEAD" -resolved_reference = "9de7906804ae912f1d644c97b617ac77e784fca8" - -[[package]] -name = "executing" -version = "2.0.1" -description = "Get the currently executing AST node of a frame, and other information" -optional = false -python-versions = ">=3.5" -files = [ - {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, - {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, -] - -[package.extras] -tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] - -[[package]] -name = "fsspec" -version = "2023.10.0" -description = "File-system specification" -optional = false -python-versions = ">=3.8" -files = [ - {file = "fsspec-2023.10.0-py3-none-any.whl", hash = "sha256:346a8f024efeb749d2a5fca7ba8854474b1ff9af7c3faaf636a4548781136529"}, - {file = "fsspec-2023.10.0.tar.gz", hash = "sha256:330c66757591df346ad3091a53bd907e15348c2ba17d63fd54f5c39c4457d2a5"}, -] - -[package.extras] -abfs = ["adlfs"] -adl = ["adlfs"] -arrow = ["pyarrow (>=1)"] -dask = ["dask", "distributed"] -devel = ["pytest", "pytest-cov"] -dropbox = ["dropbox", "dropboxdrivefs", "requests"] -full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "dask", "distributed", "dropbox", "dropboxdrivefs", "fusepy", "gcsfs", "libarchive-c", "ocifs", "panel", "paramiko", "pyarrow (>=1)", "pygit2", "requests", "s3fs", "smbprotocol", "tqdm"] -fuse = ["fusepy"] -gcs = ["gcsfs"] -git = ["pygit2"] -github = ["requests"] -gs = ["gcsfs"] -gui = ["panel"] -hdfs = ["pyarrow (>=1)"] -http = ["aiohttp (!=4.0.0a0,!=4.0.0a1)", "requests"] -libarchive = ["libarchive-c"] -oci = ["ocifs"] -s3 = ["s3fs"] -sftp = ["paramiko"] -smb = ["smbprotocol"] -ssh = ["paramiko"] -tqdm = ["tqdm"] - -[[package]] -name = "ghp-import" -version = "2.1.0" -description = "Copy your docs directly to the gh-pages branch." -optional = false -python-versions = "*" -files = [ - {file = "ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343"}, - {file = "ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619"}, -] - -[package.dependencies] -python-dateutil = ">=2.8.1" - -[package.extras] -dev = ["flake8", "markdown", "twine", "wheel"] - -[[package]] -name = "gitdb" -version = "4.0.11" -description = "Git Object Database" -optional = false -python-versions = ">=3.7" -files = [ - {file = "gitdb-4.0.11-py3-none-any.whl", hash = "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4"}, - {file = "gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b"}, -] - -[package.dependencies] -smmap = ">=3.0.1,<6" - -[[package]] -name = "gitpython" -version = "3.1.40" -description = "GitPython is a Python library used to interact with Git repositories" -optional = false -python-versions = ">=3.7" -files = [ - {file = "GitPython-3.1.40-py3-none-any.whl", hash = "sha256:cf14627d5a8049ffbf49915732e5eddbe8134c3bdb9d476e6182b676fc573f8a"}, - {file = "GitPython-3.1.40.tar.gz", hash = "sha256:22b126e9ffb671fdd0c129796343a02bf67bf2994b35449ffc9321aa755e18a4"}, -] - -[package.dependencies] -gitdb = ">=4.0.1,<5" - -[package.extras] -test = ["black", "coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", "pytest", "pytest-cov", "pytest-instafail", "pytest-subtests", "pytest-sugar"] - -[[package]] -name = "griffe" -version = "0.36.9" -description = "Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API." -optional = false -python-versions = ">=3.8" -files = [ - {file = "griffe-0.36.9-py3-none-any.whl", hash = "sha256:7874febe7cd81e8e47eb7b8130ff9d38c8f3656233c01d2d217d2e898a0925f5"}, - {file = "griffe-0.36.9.tar.gz", hash = "sha256:b4e510bf0ed1fc91c58453c68018a2247c561adec8f5dadc40275afc01f51eac"}, -] - -[package.dependencies] -colorama = ">=0.4" - -[[package]] -name = "h11" -version = "0.14.0" -description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" -optional = false -python-versions = ">=3.7" -files = [ - {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, - {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, -] - -[[package]] -name = "idna" -version = "3.4" -description = "Internationalized Domain Names in Applications (IDNA)" -optional = false -python-versions = ">=3.5" -files = [ - {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, - {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, -] - -[[package]] -name = "iniconfig" -version = "2.0.0" -description = "brain-dead simple config-ini parsing" -optional = false -python-versions = ">=3.7" -files = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, -] - -[[package]] -name = "jinja2" -version = "3.1.2" -description = "A very fast and expressive template engine." -optional = false -python-versions = ">=3.7" -files = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, -] - -[package.dependencies] -MarkupSafe = ">=2.0" - -[package.extras] -i18n = ["Babel (>=2.7)"] - -[[package]] -name = "lxml" -version = "4.9.3" -description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*" -files = [ - {file = "lxml-4.9.3-cp27-cp27m-macosx_11_0_x86_64.whl", hash = "sha256:b0a545b46b526d418eb91754565ba5b63b1c0b12f9bd2f808c852d9b4b2f9b5c"}, - {file = "lxml-4.9.3-cp27-cp27m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:075b731ddd9e7f68ad24c635374211376aa05a281673ede86cbe1d1b3455279d"}, - {file = "lxml-4.9.3-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1e224d5755dba2f4a9498e150c43792392ac9b5380aa1b845f98a1618c94eeef"}, - {file = "lxml-4.9.3-cp27-cp27m-win32.whl", hash = "sha256:2c74524e179f2ad6d2a4f7caf70e2d96639c0954c943ad601a9e146c76408ed7"}, - {file = "lxml-4.9.3-cp27-cp27m-win_amd64.whl", hash = "sha256:4f1026bc732b6a7f96369f7bfe1a4f2290fb34dce00d8644bc3036fb351a4ca1"}, - {file = "lxml-4.9.3-cp27-cp27mu-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c0781a98ff5e6586926293e59480b64ddd46282953203c76ae15dbbbf302e8bb"}, - {file = "lxml-4.9.3-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:cef2502e7e8a96fe5ad686d60b49e1ab03e438bd9123987994528febd569868e"}, - {file = "lxml-4.9.3-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:b86164d2cff4d3aaa1f04a14685cbc072efd0b4f99ca5708b2ad1b9b5988a991"}, - {file = "lxml-4.9.3-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:42871176e7896d5d45138f6d28751053c711ed4d48d8e30b498da155af39aebd"}, - {file = "lxml-4.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:ae8b9c6deb1e634ba4f1930eb67ef6e6bf6a44b6eb5ad605642b2d6d5ed9ce3c"}, - {file = "lxml-4.9.3-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:411007c0d88188d9f621b11d252cce90c4a2d1a49db6c068e3c16422f306eab8"}, - {file = "lxml-4.9.3-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:cd47b4a0d41d2afa3e58e5bf1f62069255aa2fd6ff5ee41604418ca925911d76"}, - {file = "lxml-4.9.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0e2cb47860da1f7e9a5256254b74ae331687b9672dfa780eed355c4c9c3dbd23"}, - {file = "lxml-4.9.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1247694b26342a7bf47c02e513d32225ededd18045264d40758abeb3c838a51f"}, - {file = "lxml-4.9.3-cp310-cp310-win32.whl", hash = "sha256:cdb650fc86227eba20de1a29d4b2c1bfe139dc75a0669270033cb2ea3d391b85"}, - {file = "lxml-4.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:97047f0d25cd4bcae81f9ec9dc290ca3e15927c192df17331b53bebe0e3ff96d"}, - {file = "lxml-4.9.3-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:1f447ea5429b54f9582d4b955f5f1985f278ce5cf169f72eea8afd9502973dd5"}, - {file = "lxml-4.9.3-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:57d6ba0ca2b0c462f339640d22882acc711de224d769edf29962b09f77129cbf"}, - {file = "lxml-4.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:9767e79108424fb6c3edf8f81e6730666a50feb01a328f4a016464a5893f835a"}, - {file = "lxml-4.9.3-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:71c52db65e4b56b8ddc5bb89fb2e66c558ed9d1a74a45ceb7dcb20c191c3df2f"}, - {file = "lxml-4.9.3-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:d73d8ecf8ecf10a3bd007f2192725a34bd62898e8da27eb9d32a58084f93962b"}, - {file = "lxml-4.9.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0a3d3487f07c1d7f150894c238299934a2a074ef590b583103a45002035be120"}, - {file = "lxml-4.9.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e28c51fa0ce5674be9f560c6761c1b441631901993f76700b1b30ca6c8378d6"}, - {file = "lxml-4.9.3-cp311-cp311-win32.whl", hash = "sha256:0bfd0767c5c1de2551a120673b72e5d4b628737cb05414f03c3277bf9bed3305"}, - {file = "lxml-4.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:25f32acefac14ef7bd53e4218fe93b804ef6f6b92ffdb4322bb6d49d94cad2bc"}, - {file = "lxml-4.9.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:d3ff32724f98fbbbfa9f49d82852b159e9784d6094983d9a8b7f2ddaebb063d4"}, - {file = "lxml-4.9.3-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:48d6ed886b343d11493129e019da91d4039826794a3e3027321c56d9e71505be"}, - {file = "lxml-4.9.3-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9a92d3faef50658dd2c5470af249985782bf754c4e18e15afb67d3ab06233f13"}, - {file = "lxml-4.9.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b4e4bc18382088514ebde9328da057775055940a1f2e18f6ad2d78aa0f3ec5b9"}, - {file = "lxml-4.9.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fc9b106a1bf918db68619fdcd6d5ad4f972fdd19c01d19bdb6bf63f3589a9ec5"}, - {file = "lxml-4.9.3-cp312-cp312-win_amd64.whl", hash = "sha256:d37017287a7adb6ab77e1c5bee9bcf9660f90ff445042b790402a654d2ad81d8"}, - {file = "lxml-4.9.3-cp35-cp35m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:56dc1f1ebccc656d1b3ed288f11e27172a01503fc016bcabdcbc0978b19352b7"}, - {file = "lxml-4.9.3-cp35-cp35m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:578695735c5a3f51569810dfebd05dd6f888147a34f0f98d4bb27e92b76e05c2"}, - {file = "lxml-4.9.3-cp35-cp35m-win32.whl", hash = "sha256:704f61ba8c1283c71b16135caf697557f5ecf3e74d9e453233e4771d68a1f42d"}, - {file = "lxml-4.9.3-cp35-cp35m-win_amd64.whl", hash = "sha256:c41bfca0bd3532d53d16fd34d20806d5c2b1ace22a2f2e4c0008570bf2c58833"}, - {file = "lxml-4.9.3-cp36-cp36m-macosx_11_0_x86_64.whl", hash = "sha256:64f479d719dc9f4c813ad9bb6b28f8390360660b73b2e4beb4cb0ae7104f1c12"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:dd708cf4ee4408cf46a48b108fb9427bfa00b9b85812a9262b5c668af2533ea5"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c31c7462abdf8f2ac0577d9f05279727e698f97ecbb02f17939ea99ae8daa98"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:e3cd95e10c2610c360154afdc2f1480aea394f4a4f1ea0a5eacce49640c9b190"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:4930be26af26ac545c3dffb662521d4e6268352866956672231887d18f0eaab2"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4aec80cde9197340bc353d2768e2a75f5f60bacda2bab72ab1dc499589b3878c"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:14e019fd83b831b2e61baed40cab76222139926b1fb5ed0e79225bc0cae14584"}, - {file = "lxml-4.9.3-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0c0850c8b02c298d3c7006b23e98249515ac57430e16a166873fc47a5d549287"}, - {file = "lxml-4.9.3-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:aca086dc5f9ef98c512bac8efea4483eb84abbf926eaeedf7b91479feb092458"}, - {file = "lxml-4.9.3-cp36-cp36m-win32.whl", hash = "sha256:50baa9c1c47efcaef189f31e3d00d697c6d4afda5c3cde0302d063492ff9b477"}, - {file = "lxml-4.9.3-cp36-cp36m-win_amd64.whl", hash = "sha256:bef4e656f7d98aaa3486d2627e7d2df1157d7e88e7efd43a65aa5dd4714916cf"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:46f409a2d60f634fe550f7133ed30ad5321ae2e6630f13657fb9479506b00601"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:4c28a9144688aef80d6ea666c809b4b0e50010a2aca784c97f5e6bf143d9f129"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:141f1d1a9b663c679dc524af3ea1773e618907e96075262726c7612c02b149a4"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:53ace1c1fd5a74ef662f844a0413446c0629d151055340e9893da958a374f70d"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:17a753023436a18e27dd7769e798ce302963c236bc4114ceee5b25c18c52c693"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7d298a1bd60c067ea75d9f684f5f3992c9d6766fadbc0bcedd39750bf344c2f4"}, - {file = "lxml-4.9.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:081d32421db5df44c41b7f08a334a090a545c54ba977e47fd7cc2deece78809a"}, - {file = "lxml-4.9.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:23eed6d7b1a3336ad92d8e39d4bfe09073c31bfe502f20ca5116b2a334f8ec02"}, - {file = "lxml-4.9.3-cp37-cp37m-win32.whl", hash = "sha256:1509dd12b773c02acd154582088820893109f6ca27ef7291b003d0e81666109f"}, - {file = "lxml-4.9.3-cp37-cp37m-win_amd64.whl", hash = "sha256:120fa9349a24c7043854c53cae8cec227e1f79195a7493e09e0c12e29f918e52"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:4d2d1edbca80b510443f51afd8496be95529db04a509bc8faee49c7b0fb6d2cc"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:8d7e43bd40f65f7d97ad8ef5c9b1778943d02f04febef12def25f7583d19baac"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:71d66ee82e7417828af6ecd7db817913cb0cf9d4e61aa0ac1fde0583d84358db"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:6fc3c450eaa0b56f815c7b62f2b7fba7266c4779adcf1cece9e6deb1de7305ce"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:65299ea57d82fb91c7f019300d24050c4ddeb7c5a190e076b5f48a2b43d19c42"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:eadfbbbfb41b44034a4c757fd5d70baccd43296fb894dba0295606a7cf3124aa"}, - {file = "lxml-4.9.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3e9bdd30efde2b9ccfa9cb5768ba04fe71b018a25ea093379c857c9dad262c40"}, - {file = "lxml-4.9.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fcdd00edfd0a3001e0181eab3e63bd5c74ad3e67152c84f93f13769a40e073a7"}, - {file = "lxml-4.9.3-cp38-cp38-win32.whl", hash = "sha256:57aba1bbdf450b726d58b2aea5fe47c7875f5afb2c4a23784ed78f19a0462574"}, - {file = "lxml-4.9.3-cp38-cp38-win_amd64.whl", hash = "sha256:92af161ecbdb2883c4593d5ed4815ea71b31fafd7fd05789b23100d081ecac96"}, - {file = "lxml-4.9.3-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:9bb6ad405121241e99a86efff22d3ef469024ce22875a7ae045896ad23ba2340"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:8ed74706b26ad100433da4b9d807eae371efaa266ffc3e9191ea436087a9d6a7"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:fbf521479bcac1e25a663df882c46a641a9bff6b56dc8b0fafaebd2f66fb231b"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:303bf1edce6ced16bf67a18a1cf8339d0db79577eec5d9a6d4a80f0fb10aa2da"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:5515edd2a6d1a5a70bfcdee23b42ec33425e405c5b351478ab7dc9347228f96e"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:690dafd0b187ed38583a648076865d8c229661ed20e48f2335d68e2cf7dc829d"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:b6420a005548ad52154c8ceab4a1290ff78d757f9e5cbc68f8c77089acd3c432"}, - {file = "lxml-4.9.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bb3bb49c7a6ad9d981d734ef7c7193bc349ac338776a0360cc671eaee89bcf69"}, - {file = "lxml-4.9.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d27be7405547d1f958b60837dc4c1007da90b8b23f54ba1f8b728c78fdb19d50"}, - {file = "lxml-4.9.3-cp39-cp39-win32.whl", hash = "sha256:8df133a2ea5e74eef5e8fc6f19b9e085f758768a16e9877a60aec455ed2609b2"}, - {file = "lxml-4.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:4dd9a263e845a72eacb60d12401e37c616438ea2e5442885f65082c276dfb2b2"}, - {file = "lxml-4.9.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6689a3d7fd13dc687e9102a27e98ef33730ac4fe37795d5036d18b4d527abd35"}, - {file = "lxml-4.9.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:f6bdac493b949141b733c5345b6ba8f87a226029cbabc7e9e121a413e49441e0"}, - {file = "lxml-4.9.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:05186a0f1346ae12553d66df1cfce6f251589fea3ad3da4f3ef4e34b2d58c6a3"}, - {file = "lxml-4.9.3-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c2006f5c8d28dee289f7020f721354362fa304acbaaf9745751ac4006650254b"}, - {file = "lxml-4.9.3-pp38-pypy38_pp73-macosx_11_0_x86_64.whl", hash = "sha256:5c245b783db29c4e4fbbbfc9c5a78be496c9fea25517f90606aa1f6b2b3d5f7b"}, - {file = "lxml-4.9.3-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:4fb960a632a49f2f089d522f70496640fdf1218f1243889da3822e0a9f5f3ba7"}, - {file = "lxml-4.9.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:50670615eaf97227d5dc60de2dc99fb134a7130d310d783314e7724bf163f75d"}, - {file = "lxml-4.9.3-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:9719fe17307a9e814580af1f5c6e05ca593b12fb7e44fe62450a5384dbf61b4b"}, - {file = "lxml-4.9.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:3331bece23c9ee066e0fb3f96c61322b9e0f54d775fccefff4c38ca488de283a"}, - {file = "lxml-4.9.3-pp39-pypy39_pp73-macosx_11_0_x86_64.whl", hash = "sha256:ed667f49b11360951e201453fc3967344d0d0263aa415e1619e85ae7fd17b4e0"}, - {file = "lxml-4.9.3-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:8b77946fd508cbf0fccd8e400a7f71d4ac0e1595812e66025bac475a8e811694"}, - {file = "lxml-4.9.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:e4da8ca0c0c0aea88fd46be8e44bd49716772358d648cce45fe387f7b92374a7"}, - {file = "lxml-4.9.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:fe4bda6bd4340caa6e5cf95e73f8fea5c4bfc55763dd42f1b50a94c1b4a2fbd4"}, - {file = "lxml-4.9.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:f3df3db1d336b9356dd3112eae5f5c2b8b377f3bc826848567f10bfddfee77e9"}, - {file = "lxml-4.9.3.tar.gz", hash = "sha256:48628bd53a426c9eb9bc066a923acaa0878d1e86129fd5359aee99285f4eed9c"}, -] - -[package.extras] -cssselect = ["cssselect (>=0.7)"] -html5 = ["html5lib"] -htmlsoup = ["BeautifulSoup4"] -source = ["Cython (>=0.29.35)"] - -[[package]] -name = "markdown" -version = "3.5.1" -description = "Python implementation of John Gruber's Markdown." -optional = false -python-versions = ">=3.8" -files = [ - {file = "Markdown-3.5.1-py3-none-any.whl", hash = "sha256:5874b47d4ee3f0b14d764324d2c94c03ea66bee56f2d929da9f2508d65e722dc"}, - {file = "Markdown-3.5.1.tar.gz", hash = "sha256:b65d7beb248dc22f2e8a31fb706d93798093c308dc1aba295aedeb9d41a813bd"}, -] - -[package.extras] -docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.5)", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-nature (>=0.6)", "mkdocs-section-index", "mkdocstrings[python]"] -testing = ["coverage", "pyyaml"] - -[[package]] -name = "markdown-it-py" -version = "3.0.0" -description = "Python port of markdown-it. Markdown parsing, done right!" -optional = false -python-versions = ">=3.8" -files = [ - {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, - {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, -] - -[package.dependencies] -mdurl = ">=0.1,<1.0" - -[package.extras] -benchmarking = ["psutil", "pytest", "pytest-benchmark"] -code-style = ["pre-commit (>=3.0,<4.0)"] -compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] -linkify = ["linkify-it-py (>=1,<3)"] -plugins = ["mdit-py-plugins"] -profiling = ["gprof2dot"] -rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] -testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] - -[[package]] -name = "markupsafe" -version = "2.1.3" -description = "Safely add untrusted strings to HTML/XML markup." -optional = false -python-versions = ">=3.7" -files = [ - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win32.whl", hash = "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, - {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, -] - -[[package]] -name = "mdurl" -version = "0.1.2" -description = "Markdown URL utilities" -optional = false -python-versions = ">=3.7" -files = [ - {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, - {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, -] - -[[package]] -name = "mechanicalsoup" -version = "1.3.0" -description = "A Python library for automating interaction with websites" -optional = false -python-versions = ">=3.6" -files = [ - {file = "MechanicalSoup-1.3.0-py3-none-any.whl", hash = "sha256:83dfc23bbbcaafb62dd43e0f12aee3202e780650b4612d999b54324558980114"}, - {file = "MechanicalSoup-1.3.0.tar.gz", hash = "sha256:38e8748f62fd9455a0818701a9e2dbfa549639d09f829f3fdd03665c825e7ce1"}, -] - -[package.dependencies] -beautifulsoup4 = ">=4.7" -lxml = "*" -requests = ">=2.22.0" - -[[package]] -name = "mergedeep" -version = "1.3.4" -description = "A deep merge function for 🐍." -optional = false -python-versions = ">=3.6" -files = [ - {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, - {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, -] - -[[package]] -name = "mkdocs" -version = "1.5.3" -description = "Project documentation with Markdown." -optional = false -python-versions = ">=3.7" -files = [ - {file = "mkdocs-1.5.3-py3-none-any.whl", hash = "sha256:3b3a78e736b31158d64dbb2f8ba29bd46a379d0c6e324c2246c3bc3d2189cfc1"}, - {file = "mkdocs-1.5.3.tar.gz", hash = "sha256:eb7c99214dcb945313ba30426c2451b735992c73c2e10838f76d09e39ff4d0e2"}, -] - -[package.dependencies] -click = ">=7.0" -colorama = {version = ">=0.4", markers = "platform_system == \"Windows\""} -ghp-import = ">=1.0" -jinja2 = ">=2.11.1" -markdown = ">=3.2.1" -markupsafe = ">=2.0.1" -mergedeep = ">=1.3.4" -packaging = ">=20.5" -pathspec = ">=0.11.1" -platformdirs = ">=2.2.0" -pyyaml = ">=5.1" -pyyaml-env-tag = ">=0.1" -watchdog = ">=2.0" - -[package.extras] -i18n = ["babel (>=2.9.0)"] -min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-import (==1.0)", "importlib-metadata (==4.3)", "jinja2 (==2.11.1)", "markdown (==3.2.1)", "markupsafe (==2.0.1)", "mergedeep (==1.3.4)", "packaging (==20.5)", "pathspec (==0.11.1)", "platformdirs (==2.2.0)", "pyyaml (==5.1)", "pyyaml-env-tag (==0.1)", "typing-extensions (==3.10)", "watchdog (==2.0)"] - -[[package]] -name = "mkdocs-autorefs" -version = "0.5.0" -description = "Automatically link across pages in MkDocs." -optional = false -python-versions = ">=3.8" -files = [ - {file = "mkdocs_autorefs-0.5.0-py3-none-any.whl", hash = "sha256:7930fcb8ac1249f10e683967aeaddc0af49d90702af111a5e390e8b20b3d97ff"}, - {file = "mkdocs_autorefs-0.5.0.tar.gz", hash = "sha256:9a5054a94c08d28855cfab967ada10ed5be76e2bfad642302a610b252c3274c0"}, -] - -[package.dependencies] -Markdown = ">=3.3" -mkdocs = ">=1.1" - -[[package]] -name = "mkdocs-git-revision-date-localized-plugin" -version = "1.2.1" -description = "Mkdocs plugin that enables displaying the localized date of the last git modification of a markdown file." -optional = false -python-versions = ">=3.6" -files = [ - {file = "mkdocs-git-revision-date-localized-plugin-1.2.1.tar.gz", hash = "sha256:fc5b23a9d572cbba0114e9e17152001d01724990cb308830e58291fa614faf73"}, - {file = "mkdocs_git_revision_date_localized_plugin-1.2.1-py3-none-any.whl", hash = "sha256:d57dc99d67af917899e69c392f1ebccd1779fa243d641255469b03f8a3596b96"}, -] - -[package.dependencies] -babel = ">=2.7.0" -GitPython = "*" -mkdocs = ">=1.0" -pytz = "*" - -[[package]] -name = "mkdocs-material" -version = "9.4.8" -description = "Documentation that simply works" -optional = false -python-versions = ">=3.8" -files = [ - {file = "mkdocs_material-9.4.8-py3-none-any.whl", hash = "sha256:8b20f6851bddeef37dced903893cd176cf13a21a482e97705a103c45f06ce9b9"}, - {file = "mkdocs_material-9.4.8.tar.gz", hash = "sha256:f0c101453e8bc12b040e8b64ca39a405d950d8402609b1378cc2b98976e74b5f"}, -] - -[package.dependencies] -babel = ">=2.10,<3.0" -colorama = ">=0.4,<1.0" -jinja2 = ">=3.0,<4.0" -markdown = ">=3.2,<4.0" -mkdocs = ">=1.5.3,<2.0" -mkdocs-material-extensions = ">=1.3,<2.0" -paginate = ">=0.5,<1.0" -pygments = ">=2.16,<3.0" -pymdown-extensions = ">=10.2,<11.0" -regex = ">=2022.4" -requests = ">=2.26,<3.0" - -[package.extras] -git = ["mkdocs-git-committers-plugin-2 (>=1.1,<2.0)", "mkdocs-git-revision-date-localized-plugin (>=1.2,<2.0)"] -imaging = ["cairosvg (>=2.6,<3.0)", "pillow (>=9.4,<10.0)"] -recommended = ["mkdocs-minify-plugin (>=0.7,<1.0)", "mkdocs-redirects (>=1.2,<2.0)", "mkdocs-rss-plugin (>=1.6,<2.0)"] - -[[package]] -name = "mkdocs-material-extensions" -version = "1.3" -description = "Extension pack for Python Markdown and MkDocs Material." -optional = false -python-versions = ">=3.8" -files = [ - {file = "mkdocs_material_extensions-1.3-py3-none-any.whl", hash = "sha256:0297cc48ba68a9fdd1ef3780a3b41b534b0d0df1d1181a44676fda5f464eeadc"}, - {file = "mkdocs_material_extensions-1.3.tar.gz", hash = "sha256:f0446091503acb110a7cab9349cbc90eeac51b58d1caa92a704a81ca1e24ddbd"}, -] - -[[package]] -name = "mkdocstrings" -version = "0.23.0" -description = "Automatic documentation from sources, for MkDocs." -optional = false -python-versions = ">=3.8" -files = [ - {file = "mkdocstrings-0.23.0-py3-none-any.whl", hash = "sha256:051fa4014dfcd9ed90254ae91de2dbb4f24e166347dae7be9a997fe16316c65e"}, - {file = "mkdocstrings-0.23.0.tar.gz", hash = "sha256:d9c6a37ffbe7c14a7a54ef1258c70b8d394e6a33a1c80832bce40b9567138d1c"}, -] - -[package.dependencies] -Jinja2 = ">=2.11.1" -Markdown = ">=3.3" -MarkupSafe = ">=1.1" -mkdocs = ">=1.2" -mkdocs-autorefs = ">=0.3.1" -mkdocstrings-python = {version = ">=0.5.2", optional = true, markers = "extra == \"python\""} -pymdown-extensions = ">=6.3" - -[package.extras] -crystal = ["mkdocstrings-crystal (>=0.3.4)"] -python = ["mkdocstrings-python (>=0.5.2)"] -python-legacy = ["mkdocstrings-python-legacy (>=0.2.1)"] - -[[package]] -name = "mkdocstrings-python" -version = "1.7.3" -description = "A Python handler for mkdocstrings." -optional = false -python-versions = ">=3.8" -files = [ - {file = "mkdocstrings_python-1.7.3-py3-none-any.whl", hash = "sha256:2439d6ad3e34f0bb4c643b845fb3c06ae9233499a1736f9fa273424b75cc5894"}, - {file = "mkdocstrings_python-1.7.3.tar.gz", hash = "sha256:c20128fa96c24dbc6437b10dfedaf33b0415d4503e51ce9ce5e84b271278268e"}, -] - -[package.dependencies] -griffe = ">=0.35" -mkdocstrings = ">=0.20" - -[[package]] -name = "mypy" -version = "1.6.1" -description = "Optional static typing for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "mypy-1.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e5012e5cc2ac628177eaac0e83d622b2dd499e28253d4107a08ecc59ede3fc2c"}, - {file = "mypy-1.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d8fbb68711905f8912e5af474ca8b78d077447d8f3918997fecbf26943ff3cbb"}, - {file = "mypy-1.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21a1ad938fee7d2d96ca666c77b7c494c3c5bd88dff792220e1afbebb2925b5e"}, - {file = "mypy-1.6.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b96ae2c1279d1065413965c607712006205a9ac541895004a1e0d4f281f2ff9f"}, - {file = "mypy-1.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:40b1844d2e8b232ed92e50a4bd11c48d2daa351f9deee6c194b83bf03e418b0c"}, - {file = "mypy-1.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:81af8adaa5e3099469e7623436881eff6b3b06db5ef75e6f5b6d4871263547e5"}, - {file = "mypy-1.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8c223fa57cb154c7eab5156856c231c3f5eace1e0bed9b32a24696b7ba3c3245"}, - {file = "mypy-1.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8032e00ce71c3ceb93eeba63963b864bf635a18f6c0c12da6c13c450eedb183"}, - {file = "mypy-1.6.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4c46b51de523817a0045b150ed11b56f9fff55f12b9edd0f3ed35b15a2809de0"}, - {file = "mypy-1.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:19f905bcfd9e167159b3d63ecd8cb5e696151c3e59a1742e79bc3bcb540c42c7"}, - {file = "mypy-1.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:82e469518d3e9a321912955cc702d418773a2fd1e91c651280a1bda10622f02f"}, - {file = "mypy-1.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d4473c22cc296425bbbce7e9429588e76e05bc7342da359d6520b6427bf76660"}, - {file = "mypy-1.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59a0d7d24dfb26729e0a068639a6ce3500e31d6655df8557156c51c1cb874ce7"}, - {file = "mypy-1.6.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:cfd13d47b29ed3bbaafaff7d8b21e90d827631afda134836962011acb5904b71"}, - {file = "mypy-1.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:eb4f18589d196a4cbe5290b435d135dee96567e07c2b2d43b5c4621b6501531a"}, - {file = "mypy-1.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:41697773aa0bf53ff917aa077e2cde7aa50254f28750f9b88884acea38a16169"}, - {file = "mypy-1.6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7274b0c57737bd3476d2229c6389b2ec9eefeb090bbaf77777e9d6b1b5a9d143"}, - {file = "mypy-1.6.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbaf4662e498c8c2e352da5f5bca5ab29d378895fa2d980630656178bd607c46"}, - {file = "mypy-1.6.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bb8ccb4724f7d8601938571bf3f24da0da791fe2db7be3d9e79849cb64e0ae85"}, - {file = "mypy-1.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:68351911e85145f582b5aa6cd9ad666c8958bcae897a1bfda8f4940472463c45"}, - {file = "mypy-1.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:49ae115da099dcc0922a7a895c1eec82c1518109ea5c162ed50e3b3594c71208"}, - {file = "mypy-1.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8b27958f8c76bed8edaa63da0739d76e4e9ad4ed325c814f9b3851425582a3cd"}, - {file = "mypy-1.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:925cd6a3b7b55dfba252b7c4561892311c5358c6b5a601847015a1ad4eb7d332"}, - {file = "mypy-1.6.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8f57e6b6927a49550da3d122f0cb983d400f843a8a82e65b3b380d3d7259468f"}, - {file = "mypy-1.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:a43ef1c8ddfdb9575691720b6352761f3f53d85f1b57d7745701041053deff30"}, - {file = "mypy-1.6.1-py3-none-any.whl", hash = "sha256:4cbe68ef919c28ea561165206a2dcb68591c50f3bcf777932323bc208d949cf1"}, - {file = "mypy-1.6.1.tar.gz", hash = "sha256:4d01c00d09a0be62a4ca3f933e315455bde83f37f892ba4b08ce92f3cf44bcc1"}, -] - -[package.dependencies] -mypy-extensions = ">=1.0.0" -typing-extensions = ">=4.1.0" - -[package.extras] -dmypy = ["psutil (>=4.0)"] -install-types = ["pip"] -reports = ["lxml"] - -[[package]] -name = "mypy-extensions" -version = "1.0.0" -description = "Type system extensions for programs checked with the mypy type checker." -optional = false -python-versions = ">=3.5" -files = [ - {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, - {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, -] - -[[package]] -name = "outcome" -version = "1.3.0.post0" -description = "Capture the outcome of Python function calls." -optional = false -python-versions = ">=3.7" -files = [ - {file = "outcome-1.3.0.post0-py2.py3-none-any.whl", hash = "sha256:e771c5ce06d1415e356078d3bdd68523f284b4ce5419828922b6871e65eda82b"}, - {file = "outcome-1.3.0.post0.tar.gz", hash = "sha256:9dcf02e65f2971b80047b377468e72a268e15c0af3cf1238e6ff14f7f91143b8"}, -] - -[package.dependencies] -attrs = ">=19.2.0" - -[[package]] -name = "packaging" -version = "23.2" -description = "Core utilities for Python packages" -optional = false -python-versions = ">=3.7" -files = [ - {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, - {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, -] - -[[package]] -name = "paginate" -version = "0.5.6" -description = "Divides large result sets into pages for easier browsing" -optional = false -python-versions = "*" -files = [ - {file = "paginate-0.5.6.tar.gz", hash = "sha256:5e6007b6a9398177a7e1648d04fdd9f8c9766a1a945bceac82f1929e8c78af2d"}, -] - -[[package]] -name = "pathspec" -version = "0.11.2" -description = "Utility library for gitignore style pattern matching of file paths." -optional = false -python-versions = ">=3.7" -files = [ - {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, - {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, -] - -[[package]] -name = "platformdirs" -version = "3.11.0" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -optional = false -python-versions = ">=3.7" -files = [ - {file = "platformdirs-3.11.0-py3-none-any.whl", hash = "sha256:e9d171d00af68be50e9202731309c4e658fd8bc76f55c11c7dd760d023bda68e"}, - {file = "platformdirs-3.11.0.tar.gz", hash = "sha256:cf8ee52a3afdb965072dcc652433e0c7e3e40cf5ea1477cd4b3b1d2eb75495b3"}, -] - -[package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] - -[[package]] -name = "pluggy" -version = "1.3.0" -description = "plugin and hook calling mechanisms for python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pluggy-1.3.0-py3-none-any.whl", hash = "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"}, - {file = "pluggy-1.3.0.tar.gz", hash = "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12"}, -] - -[package.extras] -dev = ["pre-commit", "tox"] -testing = ["pytest", "pytest-benchmark"] - -[[package]] -name = "pycparser" -version = "2.21" -description = "C parser in Python" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, - {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, -] - -[[package]] -name = "pygments" -version = "2.16.1" -description = "Pygments is a syntax highlighting package written in Python." -optional = false -python-versions = ">=3.7" -files = [ - {file = "Pygments-2.16.1-py3-none-any.whl", hash = "sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692"}, - {file = "Pygments-2.16.1.tar.gz", hash = "sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29"}, -] - -[package.extras] -plugins = ["importlib-metadata"] - -[[package]] -name = "pymdown-extensions" -version = "10.3.1" -description = "Extension pack for Python Markdown." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pymdown_extensions-10.3.1-py3-none-any.whl", hash = "sha256:8cba67beb2a1318cdaf742d09dff7c0fc4cafcc290147ade0f8fb7b71522711a"}, - {file = "pymdown_extensions-10.3.1.tar.gz", hash = "sha256:f6c79941498a458852853872e379e7bab63888361ba20992fc8b4f8a9b61735e"}, -] - -[package.dependencies] -markdown = ">=3.2" -pyyaml = "*" - -[package.extras] -extra = ["pygments (>=2.12)"] - -[[package]] -name = "pysocks" -version = "1.7.1" -description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information." -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "PySocks-1.7.1-py27-none-any.whl", hash = "sha256:08e69f092cc6dbe92a0fdd16eeb9b9ffbc13cadfe5ca4c7bd92ffb078b293299"}, - {file = "PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5"}, - {file = "PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0"}, -] - -[[package]] -name = "pytest" -version = "7.4.3" -description = "pytest: simple powerful testing with Python" -optional = false -python-versions = ">=3.7" -files = [ - {file = "pytest-7.4.3-py3-none-any.whl", hash = "sha256:0d009c083ea859a71b76adf7c1d502e4bc170b80a8ef002da5806527b9591fac"}, - {file = "pytest-7.4.3.tar.gz", hash = "sha256:d989d136982de4e3b29dabcc838ad581c64e8ed52c11fbe86ddebd9da0818cd5"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=0.12,<2.0" - -[package.extras] -testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] - -[[package]] -name = "python-dateutil" -version = "2.8.2" -description = "Extensions to the standard Python datetime module" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -files = [ - {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, - {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, -] - -[package.dependencies] -six = ">=1.5" - -[[package]] -name = "pytz" -version = "2023.3.post1" -description = "World timezone definitions, modern and historical" -optional = false -python-versions = "*" -files = [ - {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"}, - {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"}, -] - -[[package]] -name = "pywin32" -version = "306" -description = "Python for Window Extensions" -optional = false -python-versions = "*" -files = [ - {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, - {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, - {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, - {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, - {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, - {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, - {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, - {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, - {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"}, - {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"}, - {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"}, - {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"}, - {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"}, - {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, -] - -[[package]] -name = "pyyaml" -version = "6.0.1" -description = "YAML parser and emitter for Python" -optional = false -python-versions = ">=3.6" -files = [ - {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, - {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, - {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, - {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, - {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, - {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, - {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, - {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, - {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, - {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, - {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, - {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, - {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, - {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, -] - -[[package]] -name = "pyyaml-env-tag" -version = "0.1" -description = "A custom YAML tag for referencing environment variables in YAML files. " -optional = false -python-versions = ">=3.6" -files = [ - {file = "pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"}, - {file = "pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb"}, -] - -[package.dependencies] -pyyaml = "*" - -[[package]] -name = "regex" -version = "2023.10.3" -description = "Alternative regular expression module, to replace re." -optional = false -python-versions = ">=3.7" -files = [ - {file = "regex-2023.10.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4c34d4f73ea738223a094d8e0ffd6d2c1a1b4c175da34d6b0de3d8d69bee6bcc"}, - {file = "regex-2023.10.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a8f4e49fc3ce020f65411432183e6775f24e02dff617281094ba6ab079ef0915"}, - {file = "regex-2023.10.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4cd1bccf99d3ef1ab6ba835308ad85be040e6a11b0977ef7ea8c8005f01a3c29"}, - {file = "regex-2023.10.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:81dce2ddc9f6e8f543d94b05d56e70d03a0774d32f6cca53e978dc01e4fc75b8"}, - {file = "regex-2023.10.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c6b4d23c04831e3ab61717a707a5d763b300213db49ca680edf8bf13ab5d91b"}, - {file = "regex-2023.10.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c15ad0aee158a15e17e0495e1e18741573d04eb6da06d8b84af726cfc1ed02ee"}, - {file = "regex-2023.10.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6239d4e2e0b52c8bd38c51b760cd870069f0bdf99700a62cd509d7a031749a55"}, - {file = "regex-2023.10.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4a8bf76e3182797c6b1afa5b822d1d5802ff30284abe4599e1247be4fd6b03be"}, - {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d9c727bbcf0065cbb20f39d2b4f932f8fa1631c3e01fcedc979bd4f51fe051c5"}, - {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:3ccf2716add72f80714b9a63899b67fa711b654be3fcdd34fa391d2d274ce767"}, - {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:107ac60d1bfdc3edb53be75e2a52aff7481b92817cfdddd9b4519ccf0e54a6ff"}, - {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:00ba3c9818e33f1fa974693fb55d24cdc8ebafcb2e4207680669d8f8d7cca79a"}, - {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f0a47efb1dbef13af9c9a54a94a0b814902e547b7f21acb29434504d18f36e3a"}, - {file = "regex-2023.10.3-cp310-cp310-win32.whl", hash = "sha256:36362386b813fa6c9146da6149a001b7bd063dabc4d49522a1f7aa65b725c7ec"}, - {file = "regex-2023.10.3-cp310-cp310-win_amd64.whl", hash = "sha256:c65a3b5330b54103e7d21cac3f6bf3900d46f6d50138d73343d9e5b2900b2353"}, - {file = "regex-2023.10.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:90a79bce019c442604662d17bf69df99090e24cdc6ad95b18b6725c2988a490e"}, - {file = "regex-2023.10.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c7964c2183c3e6cce3f497e3a9f49d182e969f2dc3aeeadfa18945ff7bdd7051"}, - {file = "regex-2023.10.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ef80829117a8061f974b2fda8ec799717242353bff55f8a29411794d635d964"}, - {file = "regex-2023.10.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5addc9d0209a9afca5fc070f93b726bf7003bd63a427f65ef797a931782e7edc"}, - {file = "regex-2023.10.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c148bec483cc4b421562b4bcedb8e28a3b84fcc8f0aa4418e10898f3c2c0eb9b"}, - {file = "regex-2023.10.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d1f21af4c1539051049796a0f50aa342f9a27cde57318f2fc41ed50b0dbc4ac"}, - {file = "regex-2023.10.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0b9ac09853b2a3e0d0082104036579809679e7715671cfbf89d83c1cb2a30f58"}, - {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ebedc192abbc7fd13c5ee800e83a6df252bec691eb2c4bedc9f8b2e2903f5e2a"}, - {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:d8a993c0a0ffd5f2d3bda23d0cd75e7086736f8f8268de8a82fbc4bd0ac6791e"}, - {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:be6b7b8d42d3090b6c80793524fa66c57ad7ee3fe9722b258aec6d0672543fd0"}, - {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4023e2efc35a30e66e938de5aef42b520c20e7eda7bb5fb12c35e5d09a4c43f6"}, - {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0d47840dc05e0ba04fe2e26f15126de7c755496d5a8aae4a08bda4dd8d646c54"}, - {file = "regex-2023.10.3-cp311-cp311-win32.whl", hash = "sha256:9145f092b5d1977ec8c0ab46e7b3381b2fd069957b9862a43bd383e5c01d18c2"}, - {file = "regex-2023.10.3-cp311-cp311-win_amd64.whl", hash = "sha256:b6104f9a46bd8743e4f738afef69b153c4b8b592d35ae46db07fc28ae3d5fb7c"}, - {file = "regex-2023.10.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:bff507ae210371d4b1fe316d03433ac099f184d570a1a611e541923f78f05037"}, - {file = "regex-2023.10.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:be5e22bbb67924dea15039c3282fa4cc6cdfbe0cbbd1c0515f9223186fc2ec5f"}, - {file = "regex-2023.10.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a992f702c9be9c72fa46f01ca6e18d131906a7180950958f766c2aa294d4b41"}, - {file = "regex-2023.10.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7434a61b158be563c1362d9071358f8ab91b8d928728cd2882af060481244c9e"}, - {file = "regex-2023.10.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2169b2dcabf4e608416f7f9468737583ce5f0a6e8677c4efbf795ce81109d7c"}, - {file = "regex-2023.10.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9e908ef5889cda4de038892b9accc36d33d72fb3e12c747e2799a0e806ec841"}, - {file = "regex-2023.10.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:12bd4bc2c632742c7ce20db48e0d99afdc05e03f0b4c1af90542e05b809a03d9"}, - {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bc72c231f5449d86d6c7d9cc7cd819b6eb30134bb770b8cfdc0765e48ef9c420"}, - {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bce8814b076f0ce5766dc87d5a056b0e9437b8e0cd351b9a6c4e1134a7dfbda9"}, - {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:ba7cd6dc4d585ea544c1412019921570ebd8a597fabf475acc4528210d7c4a6f"}, - {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b0c7d2f698e83f15228ba41c135501cfe7d5740181d5903e250e47f617eb4292"}, - {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5a8f91c64f390ecee09ff793319f30a0f32492e99f5dc1c72bc361f23ccd0a9a"}, - {file = "regex-2023.10.3-cp312-cp312-win32.whl", hash = "sha256:ad08a69728ff3c79866d729b095872afe1e0557251da4abb2c5faff15a91d19a"}, - {file = "regex-2023.10.3-cp312-cp312-win_amd64.whl", hash = "sha256:39cdf8d141d6d44e8d5a12a8569d5a227f645c87df4f92179bd06e2e2705e76b"}, - {file = "regex-2023.10.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4a3ee019a9befe84fa3e917a2dd378807e423d013377a884c1970a3c2792d293"}, - {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76066d7ff61ba6bf3cb5efe2428fc82aac91802844c022d849a1f0f53820502d"}, - {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfe50b61bab1b1ec260fa7cd91106fa9fece57e6beba05630afe27c71259c59b"}, - {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fd88f373cb71e6b59b7fa597e47e518282455c2734fd4306a05ca219a1991b0"}, - {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3ab05a182c7937fb374f7e946f04fb23a0c0699c0450e9fb02ef567412d2fa3"}, - {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dac37cf08fcf2094159922edc7a2784cfcc5c70f8354469f79ed085f0328ebdf"}, - {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e54ddd0bb8fb626aa1f9ba7b36629564544954fff9669b15da3610c22b9a0991"}, - {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:3367007ad1951fde612bf65b0dffc8fd681a4ab98ac86957d16491400d661302"}, - {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:16f8740eb6dbacc7113e3097b0a36065a02e37b47c936b551805d40340fb9971"}, - {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:f4f2ca6df64cbdd27f27b34f35adb640b5d2d77264228554e68deda54456eb11"}, - {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:39807cbcbe406efca2a233884e169d056c35aa7e9f343d4e78665246a332f597"}, - {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:7eece6fbd3eae4a92d7c748ae825cbc1ee41a89bb1c3db05b5578ed3cfcfd7cb"}, - {file = "regex-2023.10.3-cp37-cp37m-win32.whl", hash = "sha256:ce615c92d90df8373d9e13acddd154152645c0dc060871abf6bd43809673d20a"}, - {file = "regex-2023.10.3-cp37-cp37m-win_amd64.whl", hash = "sha256:0f649fa32fe734c4abdfd4edbb8381c74abf5f34bc0b3271ce687b23729299ed"}, - {file = "regex-2023.10.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9b98b7681a9437262947f41c7fac567c7e1f6eddd94b0483596d320092004533"}, - {file = "regex-2023.10.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:91dc1d531f80c862441d7b66c4505cd6ea9d312f01fb2f4654f40c6fdf5cc37a"}, - {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82fcc1f1cc3ff1ab8a57ba619b149b907072e750815c5ba63e7aa2e1163384a4"}, - {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7979b834ec7a33aafae34a90aad9f914c41fd6eaa8474e66953f3f6f7cbd4368"}, - {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ef71561f82a89af6cfcbee47f0fabfdb6e63788a9258e913955d89fdd96902ab"}, - {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd829712de97753367153ed84f2de752b86cd1f7a88b55a3a775eb52eafe8a94"}, - {file = "regex-2023.10.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:00e871d83a45eee2f8688d7e6849609c2ca2a04a6d48fba3dff4deef35d14f07"}, - {file = "regex-2023.10.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:706e7b739fdd17cb89e1fbf712d9dc21311fc2333f6d435eac2d4ee81985098c"}, - {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cc3f1c053b73f20c7ad88b0d1d23be7e7b3901229ce89f5000a8399746a6e039"}, - {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6f85739e80d13644b981a88f529d79c5bdf646b460ba190bffcaf6d57b2a9863"}, - {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:741ba2f511cc9626b7561a440f87d658aabb3d6b744a86a3c025f866b4d19e7f"}, - {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e77c90ab5997e85901da85131fd36acd0ed2221368199b65f0d11bca44549711"}, - {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:979c24cbefaf2420c4e377ecd1f165ea08cc3d1fbb44bdc51bccbbf7c66a2cb4"}, - {file = "regex-2023.10.3-cp38-cp38-win32.whl", hash = "sha256:58837f9d221744d4c92d2cf7201c6acd19623b50c643b56992cbd2b745485d3d"}, - {file = "regex-2023.10.3-cp38-cp38-win_amd64.whl", hash = "sha256:c55853684fe08d4897c37dfc5faeff70607a5f1806c8be148f1695be4a63414b"}, - {file = "regex-2023.10.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2c54e23836650bdf2c18222c87f6f840d4943944146ca479858404fedeb9f9af"}, - {file = "regex-2023.10.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:69c0771ca5653c7d4b65203cbfc5e66db9375f1078689459fe196fe08b7b4930"}, - {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ac965a998e1388e6ff2e9781f499ad1eaa41e962a40d11c7823c9952c77123e"}, - {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c0e8fae5b27caa34177bdfa5a960c46ff2f78ee2d45c6db15ae3f64ecadde14"}, - {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6c56c3d47da04f921b73ff9415fbaa939f684d47293f071aa9cbb13c94afc17d"}, - {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ef1e014eed78ab650bef9a6a9cbe50b052c0aebe553fb2881e0453717573f52"}, - {file = "regex-2023.10.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d29338556a59423d9ff7b6eb0cb89ead2b0875e08fe522f3e068b955c3e7b59b"}, - {file = "regex-2023.10.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9c6d0ced3c06d0f183b73d3c5920727268d2201aa0fe6d55c60d68c792ff3588"}, - {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:994645a46c6a740ee8ce8df7911d4aee458d9b1bc5639bc968226763d07f00fa"}, - {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:66e2fe786ef28da2b28e222c89502b2af984858091675044d93cb50e6f46d7af"}, - {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:11175910f62b2b8c055f2b089e0fedd694fe2be3941b3e2633653bc51064c528"}, - {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:06e9abc0e4c9ab4779c74ad99c3fc10d3967d03114449acc2c2762ad4472b8ca"}, - {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:fb02e4257376ae25c6dd95a5aec377f9b18c09be6ebdefa7ad209b9137b73d48"}, - {file = "regex-2023.10.3-cp39-cp39-win32.whl", hash = "sha256:3b2c3502603fab52d7619b882c25a6850b766ebd1b18de3df23b2f939360e1bd"}, - {file = "regex-2023.10.3-cp39-cp39-win_amd64.whl", hash = "sha256:adbccd17dcaff65704c856bd29951c58a1bd4b2b0f8ad6b826dbd543fe740988"}, - {file = "regex-2023.10.3.tar.gz", hash = "sha256:3fef4f844d2290ee0ba57addcec17eec9e3df73f10a2748485dfd6a3a188cc0f"}, -] - -[[package]] -name = "requests" -version = "2.31.0" -description = "Python HTTP for Humans." -optional = false -python-versions = ">=3.7" -files = [ - {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, - {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, -] - -[package.dependencies] -certifi = ">=2017.4.17" -charset-normalizer = ">=2,<4" -idna = ">=2.5,<4" -urllib3 = ">=1.21.1,<3" - -[package.extras] -socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] - -[[package]] -name = "rich" -version = "13.6.0" -description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" -optional = false -python-versions = ">=3.7.0" -files = [ - {file = "rich-13.6.0-py3-none-any.whl", hash = "sha256:2b38e2fe9ca72c9a00170a1a2d20c63c790d0e10ef1fe35eba76e1e7b1d7d245"}, - {file = "rich-13.6.0.tar.gz", hash = "sha256:5c14d22737e6d5084ef4771b62d5d4363165b403455a30a1c8ca39dc7b644bef"}, -] - -[package.dependencies] -markdown-it-py = ">=2.2.0" -pygments = ">=2.13.0,<3.0.0" - -[package.extras] -jupyter = ["ipywidgets (>=7.5.1,<9)"] - -[[package]] -name = "ruff" -version = "0.1.4" -description = "An extremely fast Python linter and code formatter, written in Rust." -optional = false -python-versions = ">=3.7" -files = [ - {file = "ruff-0.1.4-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:864958706b669cce31d629902175138ad8a069d99ca53514611521f532d91495"}, - {file = "ruff-0.1.4-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:9fdd61883bb34317c788af87f4cd75dfee3a73f5ded714b77ba928e418d6e39e"}, - {file = "ruff-0.1.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4eaca8c9cc39aa7f0f0d7b8fe24ecb51232d1bb620fc4441a61161be4a17539"}, - {file = "ruff-0.1.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a9a1301dc43cbf633fb603242bccd0aaa34834750a14a4c1817e2e5c8d60de17"}, - {file = "ruff-0.1.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78e8db8ab6f100f02e28b3d713270c857d370b8d61871d5c7d1702ae411df683"}, - {file = "ruff-0.1.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:80fea754eaae06335784b8ea053d6eb8e9aac75359ebddd6fee0858e87c8d510"}, - {file = "ruff-0.1.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6bc02a480d4bfffd163a723698da15d1a9aec2fced4c06f2a753f87f4ce6969c"}, - {file = "ruff-0.1.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9862811b403063765b03e716dac0fda8fdbe78b675cd947ed5873506448acea4"}, - {file = "ruff-0.1.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58826efb8b3efbb59bb306f4b19640b7e366967a31c049d49311d9eb3a4c60cb"}, - {file = "ruff-0.1.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:fdfd453fc91d9d86d6aaa33b1bafa69d114cf7421057868f0b79104079d3e66e"}, - {file = "ruff-0.1.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:e8791482d508bd0b36c76481ad3117987301b86072158bdb69d796503e1c84a8"}, - {file = "ruff-0.1.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:01206e361021426e3c1b7fba06ddcb20dbc5037d64f6841e5f2b21084dc51800"}, - {file = "ruff-0.1.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:645591a613a42cb7e5c2b667cbefd3877b21e0252b59272ba7212c3d35a5819f"}, - {file = "ruff-0.1.4-py3-none-win32.whl", hash = "sha256:99908ca2b3b85bffe7e1414275d004917d1e0dfc99d497ccd2ecd19ad115fd0d"}, - {file = "ruff-0.1.4-py3-none-win_amd64.whl", hash = "sha256:1dfd6bf8f6ad0a4ac99333f437e0ec168989adc5d837ecd38ddb2cc4a2e3db8a"}, - {file = "ruff-0.1.4-py3-none-win_arm64.whl", hash = "sha256:d98ae9ebf56444e18a3e3652b3383204748f73e247dea6caaf8b52d37e6b32da"}, - {file = "ruff-0.1.4.tar.gz", hash = "sha256:21520ecca4cc555162068d87c747b8f95e1e95f8ecfcbbe59e8dd00710586315"}, -] - -[[package]] -name = "selenium" -version = "4.15.2" -description = "" -optional = false -python-versions = ">=3.8" -files = [ - {file = "selenium-4.15.2-py3-none-any.whl", hash = "sha256:9e82cd1ac647fb73cf0d4a6e280284102aaa3c9d94f0fa6e6cc4b5db6a30afbf"}, - {file = "selenium-4.15.2.tar.gz", hash = "sha256:22eab5a1724c73d51b240a69ca702997b717eee4ba1f6065bf5d6b44dba01d48"}, -] - -[package.dependencies] -certifi = ">=2021.10.8" -trio = ">=0.17,<1.0" -trio-websocket = ">=0.9,<1.0" -urllib3 = {version = ">=1.26,<3", extras = ["socks"]} - -[[package]] -name = "setuptools" -version = "68.2.2" -description = "Easily download, build, install, upgrade, and uninstall Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "setuptools-68.2.2-py3-none-any.whl", hash = "sha256:b454a35605876da60632df1a60f736524eb73cc47bbc9f3f1ef1b644de74fd2a"}, - {file = "setuptools-68.2.2.tar.gz", hash = "sha256:4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87"}, -] - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] -testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] - -[[package]] -name = "shellingham" -version = "1.5.4" -description = "Tool to Detect Surrounding Shell" -optional = false -python-versions = ">=3.7" -files = [ - {file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"}, - {file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"}, -] - -[[package]] -name = "six" -version = "1.16.0" -description = "Python 2 and 3 compatibility utilities" -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 = "smmap" -version = "5.0.1" -description = "A pure Python implementation of a sliding window memory map manager" -optional = false -python-versions = ">=3.7" -files = [ - {file = "smmap-5.0.1-py3-none-any.whl", hash = "sha256:e6d8668fa5f93e706934a62d7b4db19c8d9eb8cf2adbb75ef1b675aa332b69da"}, - {file = "smmap-5.0.1.tar.gz", hash = "sha256:dceeb6c0028fdb6734471eb07c0cd2aae706ccaecab45965ee83f11c8d3b1f62"}, -] - -[[package]] -name = "sniffio" -version = "1.3.0" -description = "Sniff out which async library your code is running under" -optional = false -python-versions = ">=3.7" -files = [ - {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, - {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, -] - -[[package]] -name = "snoop" -version = "0.4.3" -description = "Powerful debugging tools for Python" -optional = false -python-versions = "*" -files = [ - {file = "snoop-0.4.3-py2.py3-none-any.whl", hash = "sha256:b7418581889ff78b29d9dc5ad4625c4c475c74755fb5cba82c693c6e32afadc0"}, - {file = "snoop-0.4.3.tar.gz", hash = "sha256:2e0930bb19ff0dbdaa6f5933f88e89ed5984210ea9f9de0e1d8231fa5c1c1f25"}, -] - -[package.dependencies] -asttokens = "*" -cheap-repr = ">=0.4.0" -executing = "*" -pygments = "*" -six = "*" - -[package.extras] -tests = ["Django", "birdseye", "littleutils", "numpy (>=1.16.5)", "pandas (>=0.24.2)", "pprintpp", "prettyprinter", "pytest", "pytest-order", "pytest-order (<=0.11.0)"] - -[[package]] -name = "sortedcontainers" -version = "2.4.0" -description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set" -optional = false -python-versions = "*" -files = [ - {file = "sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0"}, - {file = "sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88"}, -] - -[[package]] -name = "soupsieve" -version = "2.5" -description = "A modern CSS selector implementation for Beautiful Soup." -optional = false -python-versions = ">=3.8" -files = [ - {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, - {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, -] - -[[package]] -name = "trio" -version = "0.23.1" -description = "A friendly Python library for async concurrency and I/O" -optional = false -python-versions = ">=3.8" -files = [ - {file = "trio-0.23.1-py3-none-any.whl", hash = "sha256:bb4abb3f4af23f96679e7c8cdabb8b234520f2498550d2cf63ebfd95f2ce27fe"}, - {file = "trio-0.23.1.tar.gz", hash = "sha256:16f89f7dcc8f7b9dcdec1fcd863e0c039af6d0f9a22f8dfd56f75d75ec73fd48"}, -] - -[package.dependencies] -attrs = ">=20.1.0" -cffi = {version = ">=1.14", markers = "os_name == \"nt\" and implementation_name != \"pypy\""} -idna = "*" -outcome = "*" -sniffio = ">=1.3.0" -sortedcontainers = "*" - -[[package]] -name = "trio-websocket" -version = "0.11.1" -description = "WebSocket library for Trio" -optional = false -python-versions = ">=3.7" -files = [ - {file = "trio-websocket-0.11.1.tar.gz", hash = "sha256:18c11793647703c158b1f6e62de638acada927344d534e3c7628eedcb746839f"}, - {file = "trio_websocket-0.11.1-py3-none-any.whl", hash = "sha256:520d046b0d030cf970b8b2b2e00c4c2245b3807853ecd44214acd33d74581638"}, -] - -[package.dependencies] -trio = ">=0.11" -wsproto = ">=0.14" - -[[package]] -name = "typer" -version = "0.9.0" -description = "Typer, build great CLIs. Easy to code. Based on Python type hints." -optional = false -python-versions = ">=3.6" -files = [ - {file = "typer-0.9.0-py3-none-any.whl", hash = "sha256:5d96d986a21493606a358cae4461bd8cdf83cbf33a5aa950ae629ca3b51467ee"}, - {file = "typer-0.9.0.tar.gz", hash = "sha256:50922fd79aea2f4751a8e0408ff10d2662bd0c8bbfa84755a699f3bada2978b2"}, -] - -[package.dependencies] -click = ">=7.1.1,<9.0.0" -colorama = {version = ">=0.4.3,<0.5.0", optional = true, markers = "extra == \"all\""} -rich = {version = ">=10.11.0,<14.0.0", optional = true, markers = "extra == \"all\""} -shellingham = {version = ">=1.3.0,<2.0.0", optional = true, markers = "extra == \"all\""} -typing-extensions = ">=3.7.4.3" - -[package.extras] -all = ["colorama (>=0.4.3,<0.5.0)", "rich (>=10.11.0,<14.0.0)", "shellingham (>=1.3.0,<2.0.0)"] -dev = ["autoflake (>=1.3.1,<2.0.0)", "flake8 (>=3.8.3,<4.0.0)", "pre-commit (>=2.17.0,<3.0.0)"] -doc = ["cairosvg (>=2.5.2,<3.0.0)", "mdx-include (>=1.4.1,<2.0.0)", "mkdocs (>=1.1.2,<2.0.0)", "mkdocs-material (>=8.1.4,<9.0.0)", "pillow (>=9.3.0,<10.0.0)"] -test = ["black (>=22.3.0,<23.0.0)", "coverage (>=6.2,<7.0)", "isort (>=5.0.6,<6.0.0)", "mypy (==0.910)", "pytest (>=4.4.0,<8.0.0)", "pytest-cov (>=2.10.0,<5.0.0)", "pytest-sugar (>=0.9.4,<0.10.0)", "pytest-xdist (>=1.32.0,<4.0.0)", "rich (>=10.11.0,<14.0.0)", "shellingham (>=1.3.0,<2.0.0)"] - -[[package]] -name = "typing-extensions" -version = "4.8.0" -description = "Backported and Experimental Type Hints for Python 3.8+" -optional = false -python-versions = ">=3.8" -files = [ - {file = "typing_extensions-4.8.0-py3-none-any.whl", hash = "sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0"}, - {file = "typing_extensions-4.8.0.tar.gz", hash = "sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef"}, -] - -[[package]] -name = "urllib3" -version = "2.0.7" -description = "HTTP library with thread-safe connection pooling, file post, and more." -optional = false -python-versions = ">=3.7" -files = [ - {file = "urllib3-2.0.7-py3-none-any.whl", hash = "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e"}, - {file = "urllib3-2.0.7.tar.gz", hash = "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84"}, -] - -[package.dependencies] -pysocks = {version = ">=1.5.6,<1.5.7 || >1.5.7,<2.0", optional = true, markers = "extra == \"socks\""} - -[package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] - -[[package]] -name = "watchdog" -version = "3.0.0" -description = "Filesystem events monitoring" -optional = false -python-versions = ">=3.7" -files = [ - {file = "watchdog-3.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:336adfc6f5cc4e037d52db31194f7581ff744b67382eb6021c868322e32eef41"}, - {file = "watchdog-3.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a70a8dcde91be523c35b2bf96196edc5730edb347e374c7de7cd20c43ed95397"}, - {file = "watchdog-3.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:adfdeab2da79ea2f76f87eb42a3ab1966a5313e5a69a0213a3cc06ef692b0e96"}, - {file = "watchdog-3.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2b57a1e730af3156d13b7fdddfc23dea6487fceca29fc75c5a868beed29177ae"}, - {file = "watchdog-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7ade88d0d778b1b222adebcc0927428f883db07017618a5e684fd03b83342bd9"}, - {file = "watchdog-3.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7e447d172af52ad204d19982739aa2346245cc5ba6f579d16dac4bfec226d2e7"}, - {file = "watchdog-3.0.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:9fac43a7466eb73e64a9940ac9ed6369baa39b3bf221ae23493a9ec4d0022674"}, - {file = "watchdog-3.0.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8ae9cda41fa114e28faf86cb137d751a17ffd0316d1c34ccf2235e8a84365c7f"}, - {file = "watchdog-3.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:25f70b4aa53bd743729c7475d7ec41093a580528b100e9a8c5b5efe8899592fc"}, - {file = "watchdog-3.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4f94069eb16657d2c6faada4624c39464f65c05606af50bb7902e036e3219be3"}, - {file = "watchdog-3.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7c5f84b5194c24dd573fa6472685b2a27cc5a17fe5f7b6fd40345378ca6812e3"}, - {file = "watchdog-3.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3aa7f6a12e831ddfe78cdd4f8996af9cf334fd6346531b16cec61c3b3c0d8da0"}, - {file = "watchdog-3.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:233b5817932685d39a7896b1090353fc8efc1ef99c9c054e46c8002561252fb8"}, - {file = "watchdog-3.0.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:13bbbb462ee42ec3c5723e1205be8ced776f05b100e4737518c67c8325cf6100"}, - {file = "watchdog-3.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8f3ceecd20d71067c7fd4c9e832d4e22584318983cabc013dbf3f70ea95de346"}, - {file = "watchdog-3.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c9d8c8ec7efb887333cf71e328e39cffbf771d8f8f95d308ea4125bf5f90ba64"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:0e06ab8858a76e1219e68c7573dfeba9dd1c0219476c5a44d5333b01d7e1743a"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:d00e6be486affb5781468457b21a6cbe848c33ef43f9ea4a73b4882e5f188a44"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:c07253088265c363d1ddf4b3cdb808d59a0468ecd017770ed716991620b8f77a"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:5113334cf8cf0ac8cd45e1f8309a603291b614191c9add34d33075727a967709"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:51f90f73b4697bac9c9a78394c3acbbd331ccd3655c11be1a15ae6fe289a8c83"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:ba07e92756c97e3aca0912b5cbc4e5ad802f4557212788e72a72a47ff376950d"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:d429c2430c93b7903914e4db9a966c7f2b068dd2ebdd2fa9b9ce094c7d459f33"}, - {file = "watchdog-3.0.0-py3-none-win32.whl", hash = "sha256:3ed7c71a9dccfe838c2f0b6314ed0d9b22e77d268c67e015450a29036a81f60f"}, - {file = "watchdog-3.0.0-py3-none-win_amd64.whl", hash = "sha256:4c9956d27be0bb08fc5f30d9d0179a855436e655f046d288e2bcc11adfae893c"}, - {file = "watchdog-3.0.0-py3-none-win_ia64.whl", hash = "sha256:5d9f3a10e02d7371cd929b5d8f11e87d4bad890212ed3901f9b4d68767bee759"}, - {file = "watchdog-3.0.0.tar.gz", hash = "sha256:4d98a320595da7a7c5a18fc48cb633c2e73cda78f93cac2ef42d42bf609a33f9"}, -] - -[package.extras] -watchmedo = ["PyYAML (>=3.10)"] - -[[package]] -name = "websocket-client" -version = "1.6.4" -description = "WebSocket client for Python with low level API options" -optional = false -python-versions = ">=3.8" -files = [ - {file = "websocket-client-1.6.4.tar.gz", hash = "sha256:b3324019b3c28572086c4a319f91d1dcd44e6e11cd340232978c684a7650d0df"}, - {file = "websocket_client-1.6.4-py3-none-any.whl", hash = "sha256:084072e0a7f5f347ef2ac3d8698a5e0b4ffbfcab607628cadabc650fc9a83a24"}, -] - -[package.extras] -docs = ["Sphinx (>=6.0)", "sphinx-rtd-theme (>=1.1.0)"] -optional = ["python-socks", "wsaccel"] -test = ["websockets"] - -[[package]] -name = "wsproto" -version = "1.2.0" -description = "WebSockets state-machine based protocol implementation" -optional = false -python-versions = ">=3.7.0" -files = [ - {file = "wsproto-1.2.0-py3-none-any.whl", hash = "sha256:b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736"}, - {file = "wsproto-1.2.0.tar.gz", hash = "sha256:ad565f26ecb92588a3e43bc3d96164de84cd9902482b130d0ddbaa9664a85065"}, -] - -[package.dependencies] -h11 = ">=0.9.0,<1" - -[metadata] -lock-version = "2.0" -python-versions = "^3.12" -content-hash = "0fbf242978e837c466ac225a733972d0e83360485c59a780baa4eaa2f581fa13"