From 5529adb333fbfb32fa8ce4b1cb1975244e0dafac Mon Sep 17 00:00:00 2001 From: MarcoHuebner <57489799+MarcoHuebner@users.noreply.github.com> Date: Sun, 7 May 2023 20:14:27 +0200 Subject: [PATCH 01/27] Updated dev-dependencies, added first version of Sphinx documentation, including built html documentation. --- docs/Makefile | 20 ++ docs/make.bat | 35 ++++ docs/source/conf.py | 38 ++++ docs/source/index.rst | 39 ++++ docs/source/install.rst | 16 ++ docs/source/modules.rst | 7 + docs/source/pystatis.rst | 85 ++++++++ docs/source/roadmap.rst | 10 + docs/source/start.rst | 34 ++++ docs/source/use.rst | 74 +++++++ poetry.lock | 425 ++++++++++++++++++++++++++++++++------- pyproject.toml | 1 + 12 files changed, 714 insertions(+), 70 deletions(-) create mode 100644 docs/Makefile create mode 100644 docs/make.bat create mode 100644 docs/source/conf.py create mode 100644 docs/source/index.rst create mode 100644 docs/source/install.rst create mode 100644 docs/source/modules.rst create mode 100644 docs/source/pystatis.rst create mode 100644 docs/source/roadmap.rst create mode 100644 docs/source/start.rst create mode 100644 docs/source/use.rst diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..d0c3cbf --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = source +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000..dc1312a --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/source/conf.py b/docs/source/conf.py new file mode 100644 index 0000000..6d3a295 --- /dev/null +++ b/docs/source/conf.py @@ -0,0 +1,38 @@ +# Configuration file for the Sphinx documentation builder. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +project = 'pystatis' +copyright = '2023, Michael Aydinbas' +authors = [ + "Michael Aydinbas ", + "Ariz Weber ", + "CorrelAid ", + "Daniel Pleus ", + "Felix Schmitz ", + "Frederik Hering ", + "Marco Hübner " +] +maintainers = [ + "Michael Aydinbas " +] + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration + +extensions = ['sphinx.ext.autodoc'] + +templates_path = ['_templates'] +exclude_patterns = [] + + + +# -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + +html_theme = 'alabaster' +html_static_path = ['_static'] diff --git a/docs/source/index.rst b/docs/source/index.rst new file mode 100644 index 0000000..dbbc5e0 --- /dev/null +++ b/docs/source/index.rst @@ -0,0 +1,39 @@ +.. pystatis documentation master file, created by + sphinx-quickstart on Sun May 7 19:10:45 2023. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to pystatis's documentation! +==================================== + +```pystatis``` is a Python wrapper for the GENESIS web service interface (API). It simplifies accessing the data from the German statistical federal office. + +The main features are: + +- **Simplified access** to the API. No more need to write cumbersome API calls. +- **Credential management** removes need to manually add credentials. +- **Integrated workflow** enables an end-to-end process from finding the relevant data to download it. +- **Pandas support** instead of manually parsing results. +- **Caching** to enable productive work despite strict query limits. +- **Starting and handling background jobs** for datasets that are to big to be downloaded directly from GENESIS. + +To learn more about GENESIS refer to the official documentation `here `_. + +Contents +-------- + +.. toctree:: + :maxdepth: 2 + + Home + install + start + use + roadmap + +Indices and tables +------------------ + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/source/install.rst b/docs/source/install.rst new file mode 100644 index 0000000..71e69d1 --- /dev/null +++ b/docs/source/install.rst @@ -0,0 +1,16 @@ +Installation +============ + +You can install the package via + +.. code-block:: bash + + $ pip install pystatis + +If everything worked out correctly, you should be able to import ``pystatis`` like this + +.. code-block:: python + + import pystatis as pystat + + print("Version:", pystat.__version__) diff --git a/docs/source/modules.rst b/docs/source/modules.rst new file mode 100644 index 0000000..839c33f --- /dev/null +++ b/docs/source/modules.rst @@ -0,0 +1,7 @@ +src +=== + +.. toctree:: + :maxdepth: 4 + + pystatis diff --git a/docs/source/pystatis.rst b/docs/source/pystatis.rst new file mode 100644 index 0000000..ecbce97 --- /dev/null +++ b/docs/source/pystatis.rst @@ -0,0 +1,85 @@ +pystatis package +================ + +Submodules +---------- + +pystatis.cache module +--------------------- + +.. automodule:: pystatis.cache + :members: + :undoc-members: + :show-inheritance: + +pystatis.config module +---------------------- + +.. automodule:: pystatis.config + :members: + :undoc-members: + :show-inheritance: + +pystatis.cube module +-------------------- + +.. automodule:: pystatis.cube + :members: + :undoc-members: + :show-inheritance: + +pystatis.custom\_exceptions module +---------------------------------- + +.. automodule:: pystatis.custom_exceptions + :members: + :undoc-members: + :show-inheritance: + +pystatis.find module +-------------------- + +.. automodule:: pystatis.find + :members: + :undoc-members: + :show-inheritance: + +pystatis.helloworld module +-------------------------- + +.. automodule:: pystatis.helloworld + :members: + :undoc-members: + :show-inheritance: + +pystatis.http\_helper module +---------------------------- + +.. automodule:: pystatis.http_helper + :members: + :undoc-members: + :show-inheritance: + +pystatis.profile module +----------------------- + +.. automodule:: pystatis.profile + :members: + :undoc-members: + :show-inheritance: + +pystatis.table module +--------------------- + +.. automodule:: pystatis.table + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: pystatis + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/roadmap.rst b/docs/source/roadmap.rst new file mode 100644 index 0000000..6dd3107 --- /dev/null +++ b/docs/source/roadmap.rst @@ -0,0 +1,10 @@ +Roadmap +======= + +A few ideas we should implement in the maybe-near future: + +- Improve Table parsing. Right now, the parsing is really simple and we should align the cube and table format so that the data frame for tables is more convenient to use. +- Create a source code documentation with Sphinx or similar tools. +- Mechanism to download data that is newer than the cached version. Right now, once data is cached, it is always retrieved from cache no matter if there is a newer version online. However, this could be quite challenging as the GENESIS API is really bad in providing a good and consistent field for the last update datetime. +- Improve Table and Cube metadata so the user can look up the variables contained in the dataset and for each variable the values that this variable can have. +- Understand and support time series. \ No newline at end of file diff --git a/docs/source/start.rst b/docs/source/start.rst new file mode 100644 index 0000000..dd44064 --- /dev/null +++ b/docs/source/start.rst @@ -0,0 +1,34 @@ +Get started +=========== + +To be able to use the web service/API of GENESIS-Online, you have to be a registered user. You can create your user `here `_. + +Once you have a registered user, you can use your username and password as credentials for authentication against the GENESIS-Online API. + +To avoid entering your credentials each time you use ``pystatis``, your credentials will be stored locally with the `init_config()` helper function. This function accepts both a `username` and `password` argument and stores your credentials in a configuration file named `config.ini` that is stored under `/.pystatis/config.ini` by default. You can change this path with the optional `config_dir` argument. + +So before you can use ``pystatis`` you have to execute the following code **once**: + +.. code-block:: python + + from pystatis import init_config + + init_config(username="myusername", password="mypassword") + + +After executing this code you should have a new `config.ini` file under the `/.pystatis` directory. + +Each time ``pystatis`` is communicating with GENESIS-Online via the API, it is automatically using the stored credentials in this `config.ini`, so you don't have to specify them again. In case of updated credentials, you can either run `init_config()` again or update the values directly in the `config.ini` file. + +GENESIS-Online provides a `helloworld` endpoint that can be used to check your credentials: + +.. code-block:: python + + from pystatis import logincheck + + logincheck() + >>> '{"Status":"Sie wurden erfolgreich an- und abgemeldet!","Username":"ASFJ582LJ"}' + +If you can see a response like this, your setup is complete and you can start downloading data. + +For more details, please study the provided sample notebook for `cache `_. \ No newline at end of file diff --git a/docs/source/use.rst b/docs/source/use.rst new file mode 100644 index 0000000..756b4bd --- /dev/null +++ b/docs/source/use.rst @@ -0,0 +1,74 @@ +How to use +========== + +The GENESIS data model +---------------------- + +The Genesis data structure consists of multiple elements as summarized in the image below. + +.. image:: ../../assets/structure.png + :align: center + :alt: Structure + +This package currently supports retrieving the following data types: + +- Cubes: Multi-dimensional data objects +- Tables: Derivatives of cubes that are already packaged into logical units + +Find the right data +------------------- + +``pystatis`` offers the `Find` class to search for any piece of information with GENESIS. Behind the scene it's using the `find` endpoint. + +Example: + +.. code-block:: python + + from pystatis import Find + + results = Find("Rohöl") # Initiates object that contains all variables, statistics, tables and cubes + results.run() # Runs the query + results.tables.df # Results for tables + results.tables.get_code([1,2,3]) # Gets the table codes, e.g. for downloading the table + results.tables.get_metadata([1,2]) # Gets the metadata for the table + +A complete overview of all use cases is provided in the sample notebook for `find `_. + +Download data +------------- + +Data can be downloaded in to forms: as tables and as cubes. Both interfaces have been aligned to be as close as possible to each other. + +Example for downloading a Table: + +.. code-block:: python + + from pystatis import Table + + t = Table(name="21311-0001") # data is not yet downloaded + t.get_data() # Only now the data is either fetched from GENESIS or loaded from cache. If the data is downloaded from online, it will be also cached, so next time the data is loaded from cache. + t.data # a pandas data frame + +Example for downloading a Cube: + +.. code-block:: python + + from pystatis import Cube + + c = Cube(name="22922KJ1141") # data is not yet downloaded + c.get_data() # Only now the data is either fetched from GENESIS or loaded from cache. If the data is downloaded from online, it will be also cached, so next time the data is loaded from cache. + c.data # a pandas data frame + +For more details, please study the provided sample notebook for `tables _` and `cubes `_. + +Clear Cache +----------- + +When a cube or table is queried, it will be put into cache automatically. The cache can be cleared using the following function: + +.. code-block:: python + + from pystatis import clear_cache + + clear_cache("21311-0001") # only deletes the data for the object with the specified name + clear_cache() # deletes the complete cache diff --git a/poetry.lock b/poetry.lock index 0a3b3e8..58cee76 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,3 +1,11 @@ +[[package]] +name = "alabaster" +version = "0.7.13" +description = "A configurable sidebar-enabled Sphinx theme" +category = "dev" +optional = false +python-versions = ">=3.6" + [[package]] name = "appnope" version = "0.1.3" @@ -81,6 +89,14 @@ docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "cloudpickle"] +[[package]] +name = "babel" +version = "2.12.1" +description = "Internationalization utilities" +category = "dev" +optional = false +python-versions = ">=3.7" + [[package]] name = "backcall" version = "0.2.0" @@ -220,7 +236,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [[package]] name = "coverage" -version = "6.5.0" +version = "7.2.5" description = "Code coverage measurement for Python" category = "dev" optional = false @@ -275,6 +291,14 @@ category = "dev" optional = false python-versions = "*" +[[package]] +name = "docutils" +version = "0.19" +description = "Docutils -- Python Documentation Utilities" +category = "dev" +optional = false +python-versions = ">=3.7" + [[package]] name = "dparse" version = "0.6.2" @@ -288,8 +312,8 @@ packaging = "*" toml = "*" [package.extras] -pipenv = ["pipenv"] conda = ["pyyaml"] +pipenv = ["pipenv"] [[package]] name = "entrypoints" @@ -308,7 +332,7 @@ optional = false python-versions = "*" [package.extras] -tests = ["rich", "littleutils", "pytest", "asttokens"] +tests = ["asttokens", "pytest", "littleutils", "rich"] [[package]] name = "fastjsonschema" @@ -399,6 +423,14 @@ category = "main" optional = false python-versions = ">=3.5" +[[package]] +name = "imagesize" +version = "1.4.1" +description = "Getting image size from png/jpeg/jpeg2000/gif file" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + [[package]] name = "importlib-metadata" version = "5.0.0" @@ -737,8 +769,8 @@ nest-asyncio = "*" traitlets = ">=5.2.2" [package.extras] -test = ["xmltodict", "twine (>=1.11.0)", "testpath", "setuptools (>=60.0)", "pytest-cov (>=2.6.1)", "pytest-asyncio", "pytest (>=4.1)", "pre-commit", "pip (>=18.1)", "nbconvert", "mypy", "ipywidgets", "ipython", "ipykernel", "flake8", "check-manifest", "black"] -sphinx = ["sphinx-book-theme", "Sphinx (>=1.7)", "myst-parser", "moto", "mock", "autodoc-traits"] +sphinx = ["autodoc-traits", "mock", "moto", "myst-parser", "Sphinx (>=1.7)", "sphinx-book-theme"] +test = ["black", "check-manifest", "flake8", "ipykernel", "ipython", "ipywidgets", "mypy", "nbconvert", "pip (>=18.1)", "pre-commit", "pytest (>=4.1)", "pytest-asyncio", "pytest-cov (>=2.6.1)", "setuptools (>=60.0)", "testpath", "twine (>=1.11.0)", "xmltodict"] [[package]] name = "nbconvert" @@ -867,14 +899,14 @@ python-versions = ">=3.8" [package.dependencies] numpy = [ - {version = ">=1.21.0", markers = "python_version >= \"3.10\""}, {version = ">=1.20.3", markers = "python_version < \"3.10\""}, + {version = ">=1.21.0", markers = "python_version >= \"3.10\""}, ] python-dateutil = ">=2.8.1" pytz = ">=2020.1" [package.extras] -test = ["pytest-xdist (>=1.31)", "pytest (>=6.0)", "hypothesis (>=5.5.3)"] +test = ["hypothesis (>=5.5.3)", "pytest (>=6.0)", "pytest-xdist (>=1.31)"] [[package]] name = "pandocfilters" @@ -952,8 +984,8 @@ optional = false python-versions = ">=3.6" [package.extras] -dev = ["pre-commit", "tox"] -testing = ["pytest", "pytest-benchmark"] +testing = ["pytest-benchmark", "pytest"] +dev = ["tox", "pre-commit"] [[package]] name = "pre-commit" @@ -1155,7 +1187,7 @@ coverage = {version = ">=5.2.1", extras = ["toml"]} pytest = ">=4.6" [package.extras] -testing = ["fields", "hunter", "process-tests", "six", "pytest-xdist", "virtualenv"] +testing = ["virtualenv", "pytest-xdist", "six", "process-tests", "hunter", "fields"] [[package]] name = "pytest-mock" @@ -1367,6 +1399,109 @@ category = "dev" optional = false python-versions = ">=3.6" +[[package]] +name = "sphinx" +version = "7.0.0" +description = "Python documentation generator" +category = "dev" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +alabaster = ">=0.7,<0.8" +babel = ">=2.9" +colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} +docutils = ">=0.18.1,<0.20" +imagesize = ">=1.3" +importlib-metadata = {version = ">=4.8", markers = "python_version < \"3.10\""} +Jinja2 = ">=3.0" +packaging = ">=21.0" +Pygments = ">=2.13" +requests = ">=2.25.0" +snowballstemmer = ">=2.0" +sphinxcontrib-applehelp = "*" +sphinxcontrib-devhelp = "*" +sphinxcontrib-htmlhelp = ">=2.0.0" +sphinxcontrib-jsmath = "*" +sphinxcontrib-qthelp = "*" +sphinxcontrib-serializinghtml = ">=1.1.5" + +[package.extras] +docs = ["sphinxcontrib-websupport"] +lint = ["flake8 (>=3.5.0)", "flake8-simplify", "isort", "ruff", "mypy (>=0.990)", "sphinx-lint", "docutils-stubs", "types-requests"] +test = ["pytest (>=4.6)", "html5lib", "cython", "filelock"] + +[[package]] +name = "sphinxcontrib-applehelp" +version = "1.0.4" +description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" +category = "dev" +optional = false +python-versions = ">=3.8" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-devhelp" +version = "1.0.2" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-htmlhelp" +version = "2.0.1" +description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" +category = "dev" +optional = false +python-versions = ">=3.8" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest", "html5lib"] + +[[package]] +name = "sphinxcontrib-jsmath" +version = "1.0.1" +description = "A sphinx extension which renders display math in HTML via JavaScript" +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +test = ["pytest", "flake8", "mypy"] + +[[package]] +name = "sphinxcontrib-qthelp" +version = "1.0.3" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-serializinghtml" +version = "1.1.5" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + [[package]] name = "stack-data" version = "0.5.1" @@ -1381,7 +1516,7 @@ executing = "*" pure-eval = "*" [package.extras] -tests = ["cython", "littleutils", "pygments", "typeguard", "pytest"] +tests = ["pytest", "typeguard", "pygments", "littleutils", "cython"] [[package]] name = "stevedore" @@ -1564,9 +1699,13 @@ testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "flake8 [metadata] lock-version = "1.1" python-versions = "^3.9" -content-hash = "b98400d2fd75045beb31ea54ad12a6a2edef2b34404b2fe33e14142e44fccf49" +content-hash = "77879bb0b3dddb846ed8c0416a2184db5a272ecd0a2793b127175ec6314bce76" [metadata.files] +alabaster = [ + {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, + {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, +] appnope = [ {file = "appnope-0.1.3-py2.py3-none-any.whl", hash = "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"}, {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, @@ -1610,6 +1749,10 @@ attrs = [ {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, ] +babel = [ + {file = "Babel-2.12.1-py3-none-any.whl", hash = "sha256:b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610"}, + {file = "Babel-2.12.1.tar.gz", hash = "sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455"}, +] backcall = [ {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, @@ -1645,12 +1788,80 @@ black = [ {file = "black-22.10.0-py3-none-any.whl", hash = "sha256:c957b2b4ea88587b46cf49d1dc17681c1e672864fd7af32fc1e9664d572b3458"}, {file = "black-22.10.0.tar.gz", hash = "sha256:f513588da599943e0cde4e32cc9879e825d58720d6557062d1098c5ad80080e1"}, ] -bleach = [] +bleach = [ + {file = "bleach-5.0.1-py3-none-any.whl", hash = "sha256:085f7f33c15bd408dd9b17a4ad77c577db66d76203e5984b1bd59baeee948b2a"}, + {file = "bleach-5.0.1.tar.gz", hash = "sha256:0d03255c47eb9bd2f26aa9bb7f2107732e7e8fe195ca2f64709fcf3b0a4a085c"}, +] certifi = [ {file = "certifi-2022.9.24-py3-none-any.whl", hash = "sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382"}, {file = "certifi-2022.9.24.tar.gz", hash = "sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14"}, ] -cffi = [] +cffi = [ + {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, + {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, + {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, + {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, + {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, + {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, + {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, + {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, + {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, + {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, + {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, + {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, + {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, + {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, + {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, + {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, + {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, + {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, + {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, + {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, + {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, + {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, + {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, + {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, + {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, + {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, + {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, + {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, + {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, + {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, + {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, + {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, + {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, + {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, + {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, +] cfgv = [ {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"}, {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"}, @@ -1663,58 +1874,62 @@ click = [ {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, ] -colorama = [] +colorama = [ + {file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"}, + {file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"}, +] coverage = [ - {file = "coverage-6.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ef8674b0ee8cc11e2d574e3e2998aea5df5ab242e012286824ea3c6970580e53"}, - {file = "coverage-6.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:784f53ebc9f3fd0e2a3f6a78b2be1bd1f5575d7863e10c6e12504f240fd06660"}, - {file = "coverage-6.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4a5be1748d538a710f87542f22c2cad22f80545a847ad91ce45e77417293eb4"}, - {file = "coverage-6.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:83516205e254a0cb77d2d7bb3632ee019d93d9f4005de31dca0a8c3667d5bc04"}, - {file = "coverage-6.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af4fffaffc4067232253715065e30c5a7ec6faac36f8fc8d6f64263b15f74db0"}, - {file = "coverage-6.5.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:97117225cdd992a9c2a5515db1f66b59db634f59d0679ca1fa3fe8da32749cae"}, - {file = "coverage-6.5.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a1170fa54185845505fbfa672f1c1ab175446c887cce8212c44149581cf2d466"}, - {file = "coverage-6.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:11b990d520ea75e7ee8dcab5bc908072aaada194a794db9f6d7d5cfd19661e5a"}, - {file = "coverage-6.5.0-cp310-cp310-win32.whl", hash = "sha256:5dbec3b9095749390c09ab7c89d314727f18800060d8d24e87f01fb9cfb40b32"}, - {file = "coverage-6.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:59f53f1dc5b656cafb1badd0feb428c1e7bc19b867479ff72f7a9dd9b479f10e"}, - {file = "coverage-6.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4a5375e28c5191ac38cca59b38edd33ef4cc914732c916f2929029b4bfb50795"}, - {file = "coverage-6.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ed2820d919351f4167e52425e096af41bfabacb1857186c1ea32ff9983ed75"}, - {file = "coverage-6.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:33a7da4376d5977fbf0a8ed91c4dffaaa8dbf0ddbf4c8eea500a2486d8bc4d7b"}, - {file = "coverage-6.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8fb6cf131ac4070c9c5a3e21de0f7dc5a0fbe8bc77c9456ced896c12fcdad91"}, - {file = "coverage-6.5.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a6b7d95969b8845250586f269e81e5dfdd8ff828ddeb8567a4a2eaa7313460c4"}, - {file = "coverage-6.5.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1ef221513e6f68b69ee9e159506d583d31aa3567e0ae84eaad9d6ec1107dddaa"}, - {file = "coverage-6.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cca4435eebea7962a52bdb216dec27215d0df64cf27fc1dd538415f5d2b9da6b"}, - {file = "coverage-6.5.0-cp311-cp311-win32.whl", hash = "sha256:98e8a10b7a314f454d9eff4216a9a94d143a7ee65018dd12442e898ee2310578"}, - {file = "coverage-6.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:bc8ef5e043a2af066fa8cbfc6e708d58017024dc4345a1f9757b329a249f041b"}, - {file = "coverage-6.5.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4433b90fae13f86fafff0b326453dd42fc9a639a0d9e4eec4d366436d1a41b6d"}, - {file = "coverage-6.5.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4f05d88d9a80ad3cac6244d36dd89a3c00abc16371769f1340101d3cb899fc3"}, - {file = "coverage-6.5.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:94e2565443291bd778421856bc975d351738963071e9b8839ca1fc08b42d4bef"}, - {file = "coverage-6.5.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:027018943386e7b942fa832372ebc120155fd970837489896099f5cfa2890f79"}, - {file = "coverage-6.5.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:255758a1e3b61db372ec2736c8e2a1fdfaf563977eedbdf131de003ca5779b7d"}, - {file = "coverage-6.5.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:851cf4ff24062c6aec510a454b2584f6e998cada52d4cb58c5e233d07172e50c"}, - {file = "coverage-6.5.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:12adf310e4aafddc58afdb04d686795f33f4d7a6fa67a7a9d4ce7d6ae24d949f"}, - {file = "coverage-6.5.0-cp37-cp37m-win32.whl", hash = "sha256:b5604380f3415ba69de87a289a2b56687faa4fe04dbee0754bfcae433489316b"}, - {file = "coverage-6.5.0-cp37-cp37m-win_amd64.whl", hash = "sha256:4a8dbc1f0fbb2ae3de73eb0bdbb914180c7abfbf258e90b311dcd4f585d44bd2"}, - {file = "coverage-6.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d900bb429fdfd7f511f868cedd03a6bbb142f3f9118c09b99ef8dc9bf9643c3c"}, - {file = "coverage-6.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2198ea6fc548de52adc826f62cb18554caedfb1d26548c1b7c88d8f7faa8f6ba"}, - {file = "coverage-6.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c4459b3de97b75e3bd6b7d4b7f0db13f17f504f3d13e2a7c623786289dd670e"}, - {file = "coverage-6.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:20c8ac5386253717e5ccc827caad43ed66fea0efe255727b1053a8154d952398"}, - {file = "coverage-6.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b07130585d54fe8dff3d97b93b0e20290de974dc8177c320aeaf23459219c0b"}, - {file = "coverage-6.5.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:dbdb91cd8c048c2b09eb17713b0c12a54fbd587d79adcebad543bc0cd9a3410b"}, - {file = "coverage-6.5.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:de3001a203182842a4630e7b8d1a2c7c07ec1b45d3084a83d5d227a3806f530f"}, - {file = "coverage-6.5.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e07f4a4a9b41583d6eabec04f8b68076ab3cd44c20bd29332c6572dda36f372e"}, - {file = "coverage-6.5.0-cp38-cp38-win32.whl", hash = "sha256:6d4817234349a80dbf03640cec6109cd90cba068330703fa65ddf56b60223a6d"}, - {file = "coverage-6.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:7ccf362abd726b0410bf8911c31fbf97f09f8f1061f8c1cf03dfc4b6372848f6"}, - {file = "coverage-6.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:633713d70ad6bfc49b34ead4060531658dc6dfc9b3eb7d8a716d5873377ab745"}, - {file = "coverage-6.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:95203854f974e07af96358c0b261f1048d8e1083f2de9b1c565e1be4a3a48cfc"}, - {file = "coverage-6.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9023e237f4c02ff739581ef35969c3739445fb059b060ca51771e69101efffe"}, - {file = "coverage-6.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:265de0fa6778d07de30bcf4d9dc471c3dc4314a23a3c6603d356a3c9abc2dfcf"}, - {file = "coverage-6.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f830ed581b45b82451a40faabb89c84e1a998124ee4212d440e9c6cf70083e5"}, - {file = "coverage-6.5.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7b6be138d61e458e18d8e6ddcddd36dd96215edfe5f1168de0b1b32635839b62"}, - {file = "coverage-6.5.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:42eafe6778551cf006a7c43153af1211c3aaab658d4d66fa5fcc021613d02518"}, - {file = "coverage-6.5.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:723e8130d4ecc8f56e9a611e73b31219595baa3bb252d539206f7bbbab6ffc1f"}, - {file = "coverage-6.5.0-cp39-cp39-win32.whl", hash = "sha256:d9ecf0829c6a62b9b573c7bb6d4dcd6ba8b6f80be9ba4fc7ed50bf4ac9aecd72"}, - {file = "coverage-6.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:fc2af30ed0d5ae0b1abdb4ebdce598eafd5b35397d4d75deb341a614d333d987"}, - {file = "coverage-6.5.0-pp36.pp37.pp38-none-any.whl", hash = "sha256:1431986dac3923c5945271f169f59c45b8802a114c8f548d611f2015133df77a"}, - {file = "coverage-6.5.0.tar.gz", hash = "sha256:f642e90754ee3e06b0e7e51bce3379590e76b7f76b708e1a71ff043f87025c84"}, + {file = "coverage-7.2.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:883123d0bbe1c136f76b56276074b0c79b5817dd4238097ffa64ac67257f4b6c"}, + {file = "coverage-7.2.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d2fbc2a127e857d2f8898aaabcc34c37771bf78a4d5e17d3e1f5c30cd0cbc62a"}, + {file = "coverage-7.2.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f3671662dc4b422b15776cdca89c041a6349b4864a43aa2350b6b0b03bbcc7f"}, + {file = "coverage-7.2.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780551e47d62095e088f251f5db428473c26db7829884323e56d9c0c3118791a"}, + {file = "coverage-7.2.5-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:066b44897c493e0dcbc9e6a6d9f8bbb6607ef82367cf6810d387c09f0cd4fe9a"}, + {file = "coverage-7.2.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b9a4ee55174b04f6af539218f9f8083140f61a46eabcaa4234f3c2a452c4ed11"}, + {file = "coverage-7.2.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:706ec567267c96717ab9363904d846ec009a48d5f832140b6ad08aad3791b1f5"}, + {file = "coverage-7.2.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ae453f655640157d76209f42c62c64c4d4f2c7f97256d3567e3b439bd5c9b06c"}, + {file = "coverage-7.2.5-cp310-cp310-win32.whl", hash = "sha256:f81c9b4bd8aa747d417407a7f6f0b1469a43b36a85748145e144ac4e8d303cb5"}, + {file = "coverage-7.2.5-cp310-cp310-win_amd64.whl", hash = "sha256:dc945064a8783b86fcce9a0a705abd7db2117d95e340df8a4333f00be5efb64c"}, + {file = "coverage-7.2.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:40cc0f91c6cde033da493227797be2826cbf8f388eaa36a0271a97a332bfd7ce"}, + {file = "coverage-7.2.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a66e055254a26c82aead7ff420d9fa8dc2da10c82679ea850d8feebf11074d88"}, + {file = "coverage-7.2.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c10fbc8a64aa0f3ed136b0b086b6b577bc64d67d5581acd7cc129af52654384e"}, + {file = "coverage-7.2.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a22cbb5ede6fade0482111fa7f01115ff04039795d7092ed0db43522431b4f2"}, + {file = "coverage-7.2.5-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:292300f76440651529b8ceec283a9370532f4ecba9ad67d120617021bb5ef139"}, + {file = "coverage-7.2.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7ff8f3fb38233035028dbc93715551d81eadc110199e14bbbfa01c5c4a43f8d8"}, + {file = "coverage-7.2.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:a08c7401d0b24e8c2982f4e307124b671c6736d40d1c39e09d7a8687bddf83ed"}, + {file = "coverage-7.2.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ef9659d1cda9ce9ac9585c045aaa1e59223b143f2407db0eaee0b61a4f266fb6"}, + {file = "coverage-7.2.5-cp311-cp311-win32.whl", hash = "sha256:30dcaf05adfa69c2a7b9f7dfd9f60bc8e36b282d7ed25c308ef9e114de7fc23b"}, + {file = "coverage-7.2.5-cp311-cp311-win_amd64.whl", hash = "sha256:97072cc90f1009386c8a5b7de9d4fc1a9f91ba5ef2146c55c1f005e7b5c5e068"}, + {file = "coverage-7.2.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:bebea5f5ed41f618797ce3ffb4606c64a5de92e9c3f26d26c2e0aae292f015c1"}, + {file = "coverage-7.2.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828189fcdda99aae0d6bf718ea766b2e715eabc1868670a0a07bf8404bf58c33"}, + {file = "coverage-7.2.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e8a95f243d01ba572341c52f89f3acb98a3b6d1d5d830efba86033dd3687ade"}, + {file = "coverage-7.2.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8834e5f17d89e05697c3c043d3e58a8b19682bf365048837383abfe39adaed5"}, + {file = "coverage-7.2.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d1f25ee9de21a39b3a8516f2c5feb8de248f17da7eead089c2e04aa097936b47"}, + {file = "coverage-7.2.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:1637253b11a18f453e34013c665d8bf15904c9e3c44fbda34c643fbdc9d452cd"}, + {file = "coverage-7.2.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8e575a59315a91ccd00c7757127f6b2488c2f914096077c745c2f1ba5b8c0969"}, + {file = "coverage-7.2.5-cp37-cp37m-win32.whl", hash = "sha256:509ecd8334c380000d259dc66feb191dd0a93b21f2453faa75f7f9cdcefc0718"}, + {file = "coverage-7.2.5-cp37-cp37m-win_amd64.whl", hash = "sha256:12580845917b1e59f8a1c2ffa6af6d0908cb39220f3019e36c110c943dc875b0"}, + {file = "coverage-7.2.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b5016e331b75310610c2cf955d9f58a9749943ed5f7b8cfc0bb89c6134ab0a84"}, + {file = "coverage-7.2.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:373ea34dca98f2fdb3e5cb33d83b6d801007a8074f992b80311fc589d3e6b790"}, + {file = "coverage-7.2.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a063aad9f7b4c9f9da7b2550eae0a582ffc7623dca1c925e50c3fbde7a579771"}, + {file = "coverage-7.2.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38c0a497a000d50491055805313ed83ddba069353d102ece8aef5d11b5faf045"}, + {file = "coverage-7.2.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2b3b05e22a77bb0ae1a3125126a4e08535961c946b62f30985535ed40e26614"}, + {file = "coverage-7.2.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0342a28617e63ad15d96dca0f7ae9479a37b7d8a295f749c14f3436ea59fdcb3"}, + {file = "coverage-7.2.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:cf97ed82ca986e5c637ea286ba2793c85325b30f869bf64d3009ccc1a31ae3fd"}, + {file = "coverage-7.2.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c2c41c1b1866b670573657d584de413df701f482574bad7e28214a2362cb1fd1"}, + {file = "coverage-7.2.5-cp38-cp38-win32.whl", hash = "sha256:10b15394c13544fce02382360cab54e51a9e0fd1bd61ae9ce012c0d1e103c813"}, + {file = "coverage-7.2.5-cp38-cp38-win_amd64.whl", hash = "sha256:a0b273fe6dc655b110e8dc89b8ec7f1a778d78c9fd9b4bda7c384c8906072212"}, + {file = "coverage-7.2.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5c587f52c81211d4530fa6857884d37f514bcf9453bdeee0ff93eaaf906a5c1b"}, + {file = "coverage-7.2.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4436cc9ba5414c2c998eaedee5343f49c02ca93b21769c5fdfa4f9d799e84200"}, + {file = "coverage-7.2.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6599bf92f33ab041e36e06d25890afbdf12078aacfe1f1d08c713906e49a3fe5"}, + {file = "coverage-7.2.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:857abe2fa6a4973f8663e039ead8d22215d31db613ace76e4a98f52ec919068e"}, + {file = "coverage-7.2.5-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6f5cab2d7f0c12f8187a376cc6582c477d2df91d63f75341307fcdcb5d60303"}, + {file = "coverage-7.2.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:aa387bd7489f3e1787ff82068b295bcaafbf6f79c3dad3cbc82ef88ce3f48ad3"}, + {file = "coverage-7.2.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:156192e5fd3dbbcb11cd777cc469cf010a294f4c736a2b2c891c77618cb1379a"}, + {file = "coverage-7.2.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bd3b4b8175c1db502adf209d06136c000df4d245105c8839e9d0be71c94aefe1"}, + {file = "coverage-7.2.5-cp39-cp39-win32.whl", hash = "sha256:ddc5a54edb653e9e215f75de377354e2455376f416c4378e1d43b08ec50acc31"}, + {file = "coverage-7.2.5-cp39-cp39-win_amd64.whl", hash = "sha256:338aa9d9883aaaad53695cb14ccdeb36d4060485bb9388446330bef9c361c252"}, + {file = "coverage-7.2.5-pp37.pp38.pp39-none-any.whl", hash = "sha256:8877d9b437b35a85c18e3c6499b23674684bf690f5d96c1006a1ef61f9fdf0f3"}, + {file = "coverage-7.2.5.tar.gz", hash = "sha256:f99ef080288f09ffc687423b8d60978cf3a465d3f404a18d1a05474bd8575a47"}, ] debugpy = [ {file = "debugpy-1.6.3-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:c4b2bd5c245eeb49824bf7e539f95fb17f9a756186e51c3e513e32999d8846f3"}, @@ -1752,6 +1967,10 @@ distlib = [ {file = "distlib-0.3.6-py2.py3-none-any.whl", hash = "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"}, {file = "distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"}, ] +docutils = [ + {file = "docutils-0.19-py3-none-any.whl", hash = "sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc"}, + {file = "docutils-0.19.tar.gz", hash = "sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6"}, +] dparse = [ {file = "dparse-0.6.2-py3-none-any.whl", hash = "sha256:8097076f1dd26c377f30d4745e6ec18fef42f3bf493933b842ac5bafad8c345f"}, {file = "dparse-0.6.2.tar.gz", hash = "sha256:d45255bda21f998bc7ddf2afd5e62505ba6134756ba2d42a84c56b0826614dfe"}, @@ -1796,6 +2015,10 @@ idna = [ {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, ] +imagesize = [ + {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, + {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, +] importlib-metadata = [ {file = "importlib_metadata-5.0.0-py3-none-any.whl", hash = "sha256:ddb0e35065e8938f867ed4928d0ae5bf2a53b7773871bfe6bcc7e4fcdc7dea43"}, {file = "importlib_metadata-5.0.0.tar.gz", hash = "sha256:da31db32b304314d044d3c12c79bd59e307889b287ad12ff387b3500835fc2ab"}, @@ -1849,7 +2072,10 @@ jupyter-console = [ {file = "jupyter_console-6.4.4-py3-none-any.whl", hash = "sha256:756df7f4f60c986e7bc0172e4493d3830a7e6e75c08750bbe59c0a5403ad6dee"}, {file = "jupyter_console-6.4.4.tar.gz", hash = "sha256:172f5335e31d600df61613a97b7f0352f2c8250bbd1092ef2d658f77249f89fb"}, ] -jupyter-core = [] +jupyter-core = [ + {file = "jupyter_core-4.11.1-py3-none-any.whl", hash = "sha256:715e22bb6cc7db3718fddfac1f69f1c7e899ca00e42bdfd4bf3705452b9fd84a"}, + {file = "jupyter_core-4.11.1.tar.gz", hash = "sha256:2e5f244d44894c4154d06aeae3419dd7f1b0ef4494dc5584929b398c61cfd314"}, +] jupyterlab-pygments = [ {file = "jupyterlab_pygments-0.2.2-py2.py3-none-any.whl", hash = "sha256:2405800db07c9f770863bcf8049a529c3dd4d3e28536638bd7c1c01d2748309f"}, {file = "jupyterlab_pygments-0.2.2.tar.gz", hash = "sha256:7405d7fde60819d905a9fa8ce89e4cd830e318cdad22a0030f7a901da705585d"}, @@ -2000,7 +2226,10 @@ nodeenv = [ {file = "nodeenv-1.7.0-py2.py3-none-any.whl", hash = "sha256:27083a7b96a25f2f5e1d8cb4b6317ee8aeda3bdd121394e5ac54e498028a042e"}, {file = "nodeenv-1.7.0.tar.gz", hash = "sha256:e0e7f7dfb85fc5394c6fe1e8fa98131a2473e04311a45afb6508f7cf1836fa2b"}, ] -notebook = [] +notebook = [ + {file = "notebook-6.4.12-py3-none-any.whl", hash = "sha256:8c07a3bb7640e371f8a609bdbb2366a1976c6a2589da8ef917f761a61e3ad8b1"}, + {file = "notebook-6.4.12.tar.gz", hash = "sha256:6268c9ec9048cff7a45405c990c29ac9ca40b0bc3ec29263d218c5e01f2b4e86"}, +] numpy = [ {file = "numpy-1.23.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c9f707b5bb73bf277d812ded9896f9512a43edff72712f31667d0a8c2f8e71ee"}, {file = "numpy-1.23.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ffcf105ecdd9396e05a8e58e81faaaf34d3f9875f137c7372450baa5d77c9a54"}, @@ -2118,18 +2347,28 @@ psutil = [ {file = "psutil-5.9.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:614337922702e9be37a39954d67fdb9e855981624d8011a9927b8f2d3c9625d9"}, {file = "psutil-5.9.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:39ec06dc6c934fb53df10c1672e299145ce609ff0611b569e75a88f313634969"}, {file = "psutil-5.9.2-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3ac2c0375ef498e74b9b4ec56df3c88be43fe56cac465627572dbfb21c4be34"}, + {file = "psutil-5.9.2-cp310-cp310-win32.whl", hash = "sha256:e4c4a7636ffc47b7141864f1c5e7d649f42c54e49da2dd3cceb1c5f5d29bfc85"}, + {file = "psutil-5.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:f4cb67215c10d4657e320037109939b1c1d2fd70ca3d76301992f89fe2edb1f1"}, {file = "psutil-5.9.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:dc9bda7d5ced744622f157cc8d8bdd51735dafcecff807e928ff26bdb0ff097d"}, {file = "psutil-5.9.2-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d75291912b945a7351d45df682f9644540d564d62115d4a20d45fa17dc2d48f8"}, {file = "psutil-5.9.2-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4018d5f9b6651f9896c7a7c2c9f4652e4eea53f10751c4e7d08a9093ab587ec"}, + {file = "psutil-5.9.2-cp36-cp36m-win32.whl", hash = "sha256:f40ba362fefc11d6bea4403f070078d60053ed422255bd838cd86a40674364c9"}, + {file = "psutil-5.9.2-cp36-cp36m-win_amd64.whl", hash = "sha256:9770c1d25aee91417eba7869139d629d6328a9422ce1cdd112bd56377ca98444"}, {file = "psutil-5.9.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:42638876b7f5ef43cef8dcf640d3401b27a51ee3fa137cb2aa2e72e188414c32"}, {file = "psutil-5.9.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:91aa0dac0c64688667b4285fa29354acfb3e834e1fd98b535b9986c883c2ce1d"}, {file = "psutil-5.9.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4fb54941aac044a61db9d8eb56fc5bee207db3bc58645d657249030e15ba3727"}, + {file = "psutil-5.9.2-cp37-cp37m-win32.whl", hash = "sha256:7cbb795dcd8ed8fd238bc9e9f64ab188f3f4096d2e811b5a82da53d164b84c3f"}, + {file = "psutil-5.9.2-cp37-cp37m-win_amd64.whl", hash = "sha256:5d39e3a2d5c40efa977c9a8dd4f679763c43c6c255b1340a56489955dbca767c"}, {file = "psutil-5.9.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:fd331866628d18223a4265371fd255774affd86244fc307ef66eaf00de0633d5"}, {file = "psutil-5.9.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b315febaebae813326296872fdb4be92ad3ce10d1d742a6b0c49fb619481ed0b"}, {file = "psutil-5.9.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7929a516125f62399d6e8e026129c8835f6c5a3aab88c3fff1a05ee8feb840d"}, + {file = "psutil-5.9.2-cp38-cp38-win32.whl", hash = "sha256:561dec454853846d1dd0247b44c2e66a0a0c490f937086930ec4b8f83bf44f06"}, + {file = "psutil-5.9.2-cp38-cp38-win_amd64.whl", hash = "sha256:67b33f27fc0427483b61563a16c90d9f3b547eeb7af0ef1b9fe024cdc9b3a6ea"}, {file = "psutil-5.9.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b3591616fa07b15050b2f87e1cdefd06a554382e72866fcc0ab2be9d116486c8"}, {file = "psutil-5.9.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:14b29f581b5edab1f133563272a6011925401804d52d603c5c606936b49c8b97"}, {file = "psutil-5.9.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4642fd93785a29353d6917a23e2ac6177308ef5e8be5cc17008d885cb9f70f12"}, + {file = "psutil-5.9.2-cp39-cp39-win32.whl", hash = "sha256:ed29ea0b9a372c5188cdb2ad39f937900a10fb5478dc077283bf86eeac678ef1"}, + {file = "psutil-5.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:68b35cbff92d1f7103d8f1db77c977e72f49fcefae3d3d2b91c76b0e7aef48b8"}, {file = "psutil-5.9.2.tar.gz", hash = "sha256:feb861a10b6c3bb00701063b37e4afc754f8217f0f09c42280586bd6ac712b5c"}, ] ptyprocess = [ @@ -2168,7 +2407,10 @@ pylint = [ {file = "pylint-2.15.3-py3-none-any.whl", hash = "sha256:7f6aad1d8d50807f7bc64f89ac75256a9baf8e6ed491cc9bc65592bc3f462cf1"}, {file = "pylint-2.15.3.tar.gz", hash = "sha256:5fdfd44af182866999e6123139d265334267339f29961f00c89783155eacc60b"}, ] -pyparsing = [] +pyparsing = [ + {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, + {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, +] pyrsistent = [ {file = "pyrsistent-0.18.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:df46c854f490f81210870e509818b729db4488e1f30f2a1ce1698b2295a878d1"}, {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d45866ececf4a5fff8742c25722da6d4c9e180daa7b405dc0a2a2790d668c26"}, @@ -2354,7 +2596,10 @@ qtpy = [ {file = "QtPy-2.2.1-py3-none-any.whl", hash = "sha256:268cf5328f41353be1b127e04a81bc74ec9a9b54c9ac75dd8fe0ff48d8ad6ead"}, {file = "QtPy-2.2.1.tar.gz", hash = "sha256:7d5231133b772e40b4ee514b6673aca558331e4b88ca038b26c9e16c5c95524f"}, ] -requests = [] +requests = [ + {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"}, + {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"}, +] "ruamel.yaml" = [ {file = "ruamel.yaml-0.17.21-py3-none-any.whl", hash = "sha256:742b35d3d665023981bd6d16b3d24248ce5df75fdb4e2924e93a05c1f8b61ca7"}, {file = "ruamel.yaml-0.17.21.tar.gz", hash = "sha256:8b7ce697a2f212752a35c1ac414471dc16c424c9573be4926b56ff3f5d23b7af"}, @@ -2415,6 +2660,34 @@ soupsieve = [ {file = "soupsieve-2.3.2.post1-py3-none-any.whl", hash = "sha256:3b2503d3c7084a42b1ebd08116e5f81aadfaea95863628c80a3b774a11b7c759"}, {file = "soupsieve-2.3.2.post1.tar.gz", hash = "sha256:fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d"}, ] +sphinx = [ + {file = "Sphinx-7.0.0.tar.gz", hash = "sha256:283c44aa28922bb4223777b44ac0d59af50a279ac7690dfe945bb2b9575dc41b"}, + {file = "sphinx-7.0.0-py3-none-any.whl", hash = "sha256:3cfc1c6756ef1b132687b813ec6ea2214cb7a7e5d1dcb2772006cb895a0fa469"}, +] +sphinxcontrib-applehelp = [ + {file = "sphinxcontrib-applehelp-1.0.4.tar.gz", hash = "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e"}, + {file = "sphinxcontrib_applehelp-1.0.4-py3-none-any.whl", hash = "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228"}, +] +sphinxcontrib-devhelp = [ + {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, + {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, +] +sphinxcontrib-htmlhelp = [ + {file = "sphinxcontrib-htmlhelp-2.0.1.tar.gz", hash = "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff"}, + {file = "sphinxcontrib_htmlhelp-2.0.1-py3-none-any.whl", hash = "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903"}, +] +sphinxcontrib-jsmath = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] +sphinxcontrib-qthelp = [ + {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, + {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, +] +sphinxcontrib-serializinghtml = [ + {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, + {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, +] stack-data = [ {file = "stack_data-0.5.1-py3-none-any.whl", hash = "sha256:5120731a18ba4c82cefcf84a945f6f3e62319ef413bfc210e32aca3a69310ba2"}, {file = "stack_data-0.5.1.tar.gz", hash = "sha256:95eb784942e861a3d80efd549ff9af6cf847d88343a12eb681d7157cfcb6e32b"}, @@ -2448,7 +2721,19 @@ tomlkit = [ {file = "tomlkit-0.11.5-py3-none-any.whl", hash = "sha256:f2ef9da9cef846ee027947dc99a45d6b68a63b0ebc21944649505bf2e8bc5fe7"}, {file = "tomlkit-0.11.5.tar.gz", hash = "sha256:571854ebbb5eac89abcb4a2e47d7ea27b89bf29e09c35395da6f03dd4ae23d1c"}, ] -tornado = [] +tornado = [ + {file = "tornado-6.2-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:20f638fd8cc85f3cbae3c732326e96addff0a15e22d80f049e00121651e82e72"}, + {file = "tornado-6.2-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:87dcafae3e884462f90c90ecc200defe5e580a7fbbb4365eda7c7c1eb809ebc9"}, + {file = "tornado-6.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba09ef14ca9893954244fd872798b4ccb2367c165946ce2dd7376aebdde8e3ac"}, + {file = "tornado-6.2-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8150f721c101abdef99073bf66d3903e292d851bee51910839831caba341a75"}, + {file = "tornado-6.2-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e"}, + {file = "tornado-6.2-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:5f8c52d219d4995388119af7ccaa0bcec289535747620116a58d830e7c25d8a8"}, + {file = "tornado-6.2-cp37-abi3-musllinux_1_1_i686.whl", hash = "sha256:6fdfabffd8dfcb6cf887428849d30cf19a3ea34c2c248461e1f7d718ad30b66b"}, + {file = "tornado-6.2-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:1d54d13ab8414ed44de07efecb97d4ef7c39f7438cf5e976ccd356bebb1b5fca"}, + {file = "tornado-6.2-cp37-abi3-win32.whl", hash = "sha256:5c87076709343557ef8032934ce5f637dbb552efa7b21d08e89ae7619ed0eb23"}, + {file = "tornado-6.2-cp37-abi3-win_amd64.whl", hash = "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b"}, + {file = "tornado-6.2.tar.gz", hash = "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13"}, +] traitlets = [ {file = "traitlets-5.4.0-py3-none-any.whl", hash = "sha256:93663cc8236093d48150e2af5e2ed30fc7904a11a6195e21bab0408af4e6d6c8"}, {file = "traitlets-5.4.0.tar.gz", hash = "sha256:3f2c4e435e271592fe4390f1746ea56836e3a080f84e7833f0f801d9613fec39"}, diff --git a/pyproject.toml b/pyproject.toml index 6368a70..52547fd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -54,6 +54,7 @@ safety = "^2.0.0" flake8 = "^4.0.1" jupyter = "^1.0.0" pytest-mock = "^3.8.2" +Sphinx = "^7.0.0" [tool.black] line-length = 80 From b35dc8a6f9e25885cc09790d7c300cadd50e4654 Mon Sep 17 00:00:00 2001 From: MarcoHuebner <57489799+MarcoHuebner@users.noreply.github.com> Date: Sun, 14 May 2023 12:54:54 +0200 Subject: [PATCH 02/27] Added Logo, updated theme, updated GitHub workflow, fixed docstrings in cache and cube. Hosting on ReadTheDocs has to be done by Owner/ CorrelAid (but can be requested and triggered that way). --- .github/workflows/run-tests.yaml | 36 ++- README.md | 1 - docs/source/_static/pystatis_logo.ico | Bin 0 -> 256670 bytes docs/source/_static/pystatis_logo.png | Bin 0 -> 50744 bytes docs/source/conf.py | 18 +- docs/source/index.rst | 13 +- docs/source/modules.rst | 7 - docs/source/pystatis.rst | 3 +- docs/source/roadmap.rst | 1 - docs/source/use.rst | 2 +- poetry.lock | 356 +++++++++++++++++++++++++- pyproject.toml | 4 +- src/pystatis/cache.py | 2 +- src/pystatis/cube.py | 7 +- 14 files changed, 405 insertions(+), 45 deletions(-) create mode 100644 docs/source/_static/pystatis_logo.ico create mode 100644 docs/source/_static/pystatis_logo.png delete mode 100644 docs/source/modules.rst diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index 85edd1a..3328dba 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -22,7 +22,8 @@ jobs: fail-fast: false matrix: python-version: ["3.9", "3.10"] - os: [ubuntu-18.04, macOS-latest, windows-latest] + poetry-version: [1.1.14] + os: [ubuntu-latest, macOS-latest, windows-latest] steps: - uses: actions/checkout@v3 @@ -33,7 +34,7 @@ jobs: - name: Run poetry image uses: abatilo/actions-poetry@v2.0.0 with: - poetry-version: 1.1.13 + poetry-version: ${{ matrix.poetry-version }} - name: Install dependencies run: | poetry install @@ -44,8 +45,8 @@ jobs: strategy: fail-fast: false matrix: - python-version: [3.10.2] - poetry-version: [1.1.13] + python-version: ["3.10"] + poetry-version: [1.1.14] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: @@ -73,3 +74,30 @@ jobs: run: poetry run safety check - name: Run mypy run: poetry run mypy src + sphinx-documentation: + runs-on: ${{ matrix.os }} + timeout-minutes: 10 + strategy: + fail-fast: false + matrix: + python-version: ["3.9", "3.10"] + poetry-version: [1.1.14] + os: [ubuntu-latest, macOS-latest, windows-latest] + + steps: + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + - name: Run poetry image + uses: abatilo/actions-poetry@v2.0.0 + with: + poetry-version: ${{ matrix.poetry-version }} + - name: Install dependencies + run: | + poetry install + - name: Build documentation + run: | + cd docs + make html diff --git a/README.md b/README.md index 40ffd60..8b45820 100644 --- a/README.md +++ b/README.md @@ -138,7 +138,6 @@ Distributed under the MIT License. See `LICENSE.txt` for more information. A few ideas we should implement in the maybe-near future: - Improve Table parsing. Right now, the parsing is really simple and we should align the cube and table format so that the data frame for tables is more convenient to use. -- Create a source code documentation with Sphinx or similar tools. - Mechanism to download data that is newer than the cached version. Right now, once data is cached, it is always retrieved from cache no matter if there is a newer version online. However, this could be quite challenging as the GENESIS API is really bad in providing a good and consistent field for the last update datetime. - Improve Table and Cube metadata so the user can look up the variables contained in the dataset and for each variable the values that this variable can have. - Understand and support time series. diff --git a/docs/source/_static/pystatis_logo.ico b/docs/source/_static/pystatis_logo.ico new file mode 100644 index 0000000000000000000000000000000000000000..73d3b2286d0f48d8634ac6cf55f9f76fccdc4493 GIT binary patch literal 256670 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 literal 0 HcmV?d00001 diff --git a/docs/source/_static/pystatis_logo.png b/docs/source/_static/pystatis_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..35f1a8c0c133d1e4ed6b00f4471dccde79f05ffe GIT binary patch literal 50744 zcmZs?cTiK`8||%vfHb8@FCro;LXaw;fOJGan)F0Knl$N13DSEPLJ?4;2q>X<5(r&D znizWTHS`wXZoa>{^WHyRXEF|&Ip?s?-p_v4XRRIfT1}CHl!^4pl`9m=N^+W4u3Sw7 zA3u_7;9of4bu-|vtInE=GFOWJu&jU|2rXZzzPNIwB!&!cavl79)z)^sU2WZqB6;{eAC{{U>F6~_J5}H5l`yq6QnpC`{kwl8uk{}jR3@uD zUD;B1YQsSpcGS{h%eT&9MbPc|#>*akU0$`|J*_W~YF|2*W@XN5_XmY1aGcTRh4X2D zA@2|GL9*+9u`f}f=N`;{$~w2&+A01}t-adCQ9w0(@JSK$RqhDBc4XE?J?F6)=fWgc z-Y@+~9v76;_dSO@twVM~yOAUJfbS z+}^EVgwDPr%gKuh_EQrPPxl>;I39hVAo@XI>7T7!xQfu-R_~8zqgK0X#B_NQRtFxg zYjxWB&z|VNY~9{m7>-43(!c)bZ=)q|oY$=4=}0-~E584}q+fp~YgifI+7ZMk@~7vAq69Q=cX0Tq5i>E*CN^>;%mzXtQv*Op2Pes^^( zXj17G?ZmaVZ~pr0`E;VrK;9(PFFJanfr^Iu`%RbIY|nMyjg&U<>i(4V5z1=pD&9^m zE!o2%N!hQdl{`&?kBleOc*R{M8(_|dw!fMfqR?$Uos@_)W&b``vT z|9)1yRa&Uz=xcB>X97>gn+d~@=r_gXRSJYqZW!OkjWg0NIz9-;lVFvosEBz>hbWI7 z$vmnb>&w~l>FD2RO30aozRp0X(&+ZLaaAMqoya#@KCfH*MbP$oC;o_L?oH$2RVSQ5 ziD_$F6!WpU!potStb?!!aqUAWUWh83X=?e3L3BNuF%jhTHx{dnQEN z31!(d*%*f8;kx=mHw-u>bC@)uWJd!?qN$e8@wuT4*Z}&d2YAmrWiOaRvZ?lObua3o z7Zh-*>!mmu4AMHxyugdTfW-W+GTnB~>J@cWJ_#AiPc}tlkQQGBdHJZ`3E^*F%}uEy zC9@elT&T^e<+!+56*y~I>dE1%Di4@5s}yZoD2GBv6Ntl21CvOh#9O^%bTj^O2%#+8 zn(oT}+^%(t8*emGA682#4c2hGDwy6MwzrYL9nogKmF-nX7}%uBv0i+l@1zufeU!f( zj+0>sZ8H~+>K&9Ro(;HTYr0}0&&ON-#i$tTI>Ut*5H>ALlE+w?-)c?xsLi0E(-LOCX0|V(YmYkv44;)3mz*+ z_=Zv1c5-JP!<~_FdNjC$9~ckLX7g%SF*guW5AdGM$HLSMRkpc@j2Y2JvD#x z-K&vo1^-e{T*Nu;TDckN)a8irG_6%&p@wLSc>7b@$1mf@$Y?Yy`5g1C(pYUPzk0nguqiuChew!0%7Pt z7-9c=QeSirl5K%50PEm;I_A3e?*>|d`(J`dl=2wf%Cth;<)()TCsA-nNK81AIbH5> z@+pU_tn{mbg5_B-UOGk#TUIRm{b?F&UK6-0$b=VXmFl7X#V<4Lnkr?qU5}s>W2|Dtk{@6AjHZmUX5)GzpRCUfKG34ED z;nXZ4#2+%PGn0W6xR!u`!9Vt-3UhF9!~|zc(N?^ERLfY;XHv-f7BG!}?V9Kh8r@ z)Gv>*px+M_eEs@$g9w))GP?^|)&|QgZUW7)_DdoAsm5MK%ttY}2aX zTjO|52iq@nNz^6M&&_7wI2jT22_F%9&l=KxdXn@0h5sFTBOMtB=a9V&yVbGAwHyT0 z^Za;8Ecu(^qguZDSd*_}wJljo8D5kg@^W%N!i&fu;Y|=ftitq=K$S`FmoL-_M{i>*qtnUqx$9%Krtb59bD&9ncDi0ROUIWDoe3gm z?)fC?dyXF|vuti|-v7;)bv|SME}Ge3vB)Mv3+?QtfI>hAUH1Z}gTTtv@VtR4w?@WC z6FW04Kf*BeCgmN&GU2lG(x3EaA2pFHcVG69 zxZg$4=1r>zv{%$E{j^U_jHUhxzP&MCqvcR@wQEtAy|oFs*`&J!wkcu(taDcq1Xe_h zqWd?~98&W)idl5^*MxDy!G>kV$6!=?Vxqi!!5VjIu@wp5{z_ivzh45K)4J-?>=JH~ z2Fo=(Zy=|&e_bsWgT>-hUiMB$bUXG$>sJ_Bv~Ztl^$#(Z_>SOLe?4$Y?>}&i6~?H) zD(ZVv#v}IhTk(b;d4)=Asd?AAIoC>bpYa*4iyUJ1CbWBdZ)LDr!yg*Viqk=d`&-7imAvQTvUC@2^>`ibgTYahIPK-W= z78NUF)ZVPmJove|t~0O9pX5<~b7_7x(6iQ0)1u&bmY3oAQdB*`oCA$j~lhLMbb@-bm7~ zTu1M%t(&A>4x&tW>2;pS{^D-+#1)RwN4E_YjFz9R*KU-(vCnvctEk@W{GsPSCSr<= ze!sgGf?%81)Y>1lZTQV-e)_XjeT`X%wnDwbfibhp+4f}7HwH#cMWtbEe0GLgx$J$; zb5}0Tr!IJ)rf!rIkn??r6R`n3-1@nJvS&q&8FMeq7jaio(&V_>f0=7o4-* zzN?P~r7aZn)*RPq;9?y^MWoi8CfGKS+aEjKqix)}izdX)^yl_|pXBH8WQOWZTgNG^ zul!h4kP|_}->%$-QaY{Fty`r%{UO{RLHX)|6>Dalmu*|+lg>3?Dq|`pCIbzP?RE~V zd+K@iO0VzvF6?{3oMMW_gTR#P+LMTBm&beRZQcH#;96A7kT*0-eG)MMhyadG$*P z`4EYTGc>~;TPMUf6J2(NQYZq8U9J!en%=>*fpurfxyay>luRb>FkVf?jQy!!=DEK* zIy!or=go%?IyytMtr6Q^f;jyg35&h(sy(fO_? zgJm-J*5mVwbPShB>Z|2XdP)nrqdFL5-8%JbuK-P`{O5tn%g=16svoMA zVZ=~&Uwp|46k9O6qpA7V(<=*1S_m3HAkFaSDyFX~fY{N;>A{V<_BG8Fv1Bs>hAnf<)oP85TC^?Zy zJB&i&m`Nj9G9P`oLc;V!STH%zaU!F}#=S?s=A)Zt0VPCNUs5`d9e%ctRp1=(ruM(= zzgEbg5v*%7k6oU7EG#SxVX?biMaFfK7kK9v$@k))68q_Sc}e(qffj0@sZV zzY`*be{qZGdz1t3t#Zkn|pb9#g4Qnjs_VU}KD)j;`|k&?9URz2qabFRqFB4!MHw z=|+`5e+xflv5c&&*v|S$+3nl!(`|sv%=Lkm_WSDCb({-c4ap!AKhf;ihK0B_ZS5Brt`aX$yf|Idf{sHv$5yi}lQvr+Jf@LH#Z-(Fh{#NRvbZo^CBU@uiv0{s0+$;k2-!g17a zleZ%Sjf-Ze(?3V<&lKryU}Q4?{jNN?#q>m^3FyxtLLp;gW1*~;{>V}W8B*)r!kF1j zoJ?u|MKA?($n-eN|?rMrOy;(3ySq=&184k2wm4GuXvGEYs(JF*huV z!O+O)m8U!}7$1bF==dVTXIxN8S8;6qsOk!6!!bypb&TshsCvJ830C(v-{?QiL7_5y zbF$VjUDMb#B>KE=>Worh?kq5cAv9$?B|H1x`x?IbN^y}BNdC^$YNxOTVPwaAzrswC~ax2(ZL1<5%k$+QEFFOZ}hcOgc;8>1EYXv_N3&AO+= z&%YSO2bh@|n_*Mn(?R_F0s=cjy08Y973xU%#o6JL*S1Dw78Dh;G(S*nguGfu7rRmyX1iV5_FNv{ z_Sdj;CwuQGr==Vzvx;|@dh00apojb8N-< z(b)#ugg9=ji zEU(=|LCZhYH1+V)u_@EH9v(-|z0ccyrXeh4P75#J*AUk~Xw^9%PKK?Pp+53)=xK#4 zEuKNGQ#J`8?-sFJz89xb_?eq9pZ&xhh}H@PG@IpK($46(J*d2|LfQv< z?XN)Q|5o|Y6NBCT{=IvFPzsW9B521aEO@Wvmx}cUukrSTf*?RpD>$e1VLiRgfT)z~ zy9m+R)wLI*pL>v~2yh{{s1vuc9n(q)Oa!Xu>b*!%igFzgNlCSPGzWLNnXf}xZhj>o zAn5Aq%3pxv45kD`(cK{muX<9p2GoZSA(y%_0CrN2sJ!BGtd;OmVha#NBAkrEl*lz2 zeQL{v--*>I6)6*l0J)GNg5_e|x%c|@>zy>6*aVN56=y|`M4*G;~vaz{?6F8|PyuWAn(ON${vjY>qwtfThZrCcC z&)g2~NB^=nl2`xBy9LZ`r*zR^-8xi!LFL5ydbbSZBZiI2VpX)OAbt)1;y)Svpn(uJ zTCS_y9v~LAs#X{68AQKY=#cr`ON5(S5xIVM^)^(AT!qY16_Aif3)jY~zcX=6R}#&y6Oxnw_o0?%mnyPDmr2_NSZxnfD;irOna{Mk z@lJ#==YQ*8jO$!2yh}%yr?{BnCR=hQ_hgJk(4L>yny{T-LvCg2>W?G@O6I2nF_pvu z|4he#68%f5`Y%>8s82Se&S7usUI1**j??+G4^B{U=>1uGdin{mo^-A9^A^{;6WN;r zN9Gx$;J;aWv$IOrXN&30EPeB?VO~q&AA9*G=1#_x(W1X(OUSe11w1RRLh>#(RNS|J^_8F3 zB$TU)Z^BdTTu4!beWgKMPX3{;zbTF@_P^%Es%*e>pW`aNnM0dFH{#X}tueRg30^4) zgKN8lDU=`Ye~*afRea)xM~dg8+#X8^Lj{P67XDB?#LsPeF?9*I6J(a~(vPS-0jMMF9(_JrO$Xnku00 zWnrp$tVN?D!A+Y#ZDafI;FJcTsG#ug@81sr!Fm_V-!7J7M^s$UA8hw-qW36&DU-dV zt-p69a3T_x*k7fksaZ@_)hFdalEZAF37*J)27MmnN0K?%Gx%#}M~34qygfA+&bXzJgMs!T7GfMOcl;Edf&(aIx+4L(}Um1{kz ze#v>>5wz-H0^gV6<6YMrgc{6O=sm{?mmEz8`d4m?NwnuW93K)^l)Z6v6+X0L*cVm3 z&`t1&9Fc0_4TMESMJ+;k1xg>y@zem1gxN>p$rCE(t10Iu&G(uWerXw10cFV$+9I8u zhJ7wf1ifaJa*QdOsB<^FBfihxtgj|Pl!1&ul@MB27`Iw{B>N5DX(+44O`lX z(EXfk`X`AdCMJoAiQ~C51DV2S3lQJqHQ2>_TN?{E%9R-lxH3{fVfcFeyO(1fES;i< zTT|*&(J?XYZIzWGXS>0&&+T09R(MDe-Q^~TD%U_Ep8B3YOPR~p%3J1OWo6~%Tamkx{0YbaN}5Zz3xdNH;QYl`SDvHlmXDwy;$ z?G5UrGs`?CNdAv|qC&Y4dPfMJXb=T!h*$CbtD-ur&gZ*2<8OC!!R{l!*Bn908k-W# z*>~VKtPT5&PUn*$EghXe<;{rYlu*9#1RsV7KWPfdKb=B0=w7BHkw-=I*q2?m7HX^p!HFFkQlp$M^ER&9E ze%&SgzS(zv?pGTW7|vl`o$N-rX%61EU(~WX7p^@oTwR0|rR&yu+dJ;B<68yGA}j-g zy$oxpdZHiUYpwgp@1g~&9>Q-|7)HVxFl0{FNK4tGQ##gI)(d0#&dyG9m!~0q{O=YK z{UuSwV0mv@)P=ikj&}kvXiq6(&XmFC4;E_BpLoIF(HDH#0hZ0$Pw)FBC#jL51)OA> z=y35!CT3O>Y=PZL^hHtDP@(SJ51?86?{sV8vjRE}w+`3v@7-`~$-+lN^!4S%Hku=s zl90G zScTzI2Zs8eZ_F>G!sizq;&_bj&hBphZPXnLZ>Q$!pBr<#hick*@t;RJL&D>DCx3)l zr3!|xXlL>+7ECOcjZtClK%kX>84}lYml>B=b^Qtt000%IRzFot#oj7CPwSR0;T|23 z^KbIcvpnoKUY$tyGI_(p5J^`KImO{MQWLMtH$=IXA-1*&?qx%3QU8fN`49wILt0d% z0&QTYG?^7c;FYNPWCE;u7jg|39$o{1uOtI|qSPIrn-o3o51J!Xx1NmSSDB&jbyzBj z1J|0mNSfXu^aU}aV`H3m?=mqlEe|)Uh#&Y75ChS}^XBKYrM!IWQl@Wo)Z*1IsHi9p zw)t6)kD`W2doo4WkbfgTkfLqvDK@<&^)~h|NWtYA4)Gc}2FEr`~{=GgY_4}SNQ z8B;=Me+-1aUX1a@&%w&0{tyZ^{{giwYbzq3CB51WATmd>y8E=1s*hLh@N!CNRqHu1 zd6E;OftOjCyqYb~SO16-eaGy(?aE|z1+EZTF*rwMt8dwAPcM;JVLGQcQujp}s zh51Gul41DypFK0e@X2(QS@tqTSXSSv7uneT-L3O%w2#GQ+Gu))-aqr)73i)Zqu~tB znc?JkD!F0#KYD2AgK$;88n$o!p&p>aJoNPi_~4U*OtHxlsCS17i80}Z!uLNm%*}-P zye}Ep$-8fp0BdeR0*7-lpg9N2Iqxoas(jccnC-PSRuzLX*45>{d24+NJtdFjq{Tvb zd4&&7+S|5Jr|GI(1r5u#il!&rZ;vo%DKF}JTN%8$e<$p2VqjprfEU7B+=|o2OF<5 zmE^D}xl{%QYHFE39w&R&*dPRsj2SC*T;Y=6aDJmHqxP25I@Uyj@{u%m?g@4yxxstx zG1mCi5JMo)X{=7yWr`ipXGv669>?a5Jmelhx1&Oh1RhnoxeU}^nvM(WUtaf(I`7z6 z9WMYGS^m5h$YZe1w5~qQ$Z3&k(s_#R_VEM{vv+n&bn_e zxk-jmy0=zYU{{{MJOE642oVRUhaoE|c|S$0 z8$wUSCgwy)Kt@Vh9Cy*8z#o+YG*c4rev!Pyi+Pqj@S(q6_LEC5NGeaQ*>6>T9~6B! z#5x^B4xh;pV%NWhKam3Tk^BiT5mRr)y6V2|fBtQO^KRh{lmgek7-ehiE%Jp;Hl)So zO{EFC^H?ut=!u+YJ_(5I97fPX z{{8#+QeN~EJr^$zA#)+N+rc)y3c!PCwQEnd%3q24(F+{yk4>E)xT8-ee9y4HXNRC% z-P-N?L|^5(*bUl7we%-uZGeR>^`tGWtgOt<%`Gj_GcYi)u&^+&eRMEclWRrh-Pe7; zt-EjSqrdnf673m)*p4lbXd+XdYGbyF#Nj?9?+>Uz`Ww_Uo~@|iFpYoI_HSvcsr@PI zl~f@Kj_P8Sum>t#Wb06=i?ppRT!#&Gf%fA|B_%@%k1l;@VDDps$U-7u1R=UsR#w0! zCJ;-zpBOJC=?cMX!X)4C!U8&whSX3O3w*|y4|r_gaYp}hN@KlfZJfd{ih}-)AvrP8 z^K2nBe|LAUudX`P(3ho8o8weM5N1qDtD=H420xZqmG5YqEU;eG1243ej#VB8) z>4o8PjV2YZCu7g2gCbFO!SrI^pEcLGZ$T08KV)Hk9mN`N5{J>gQX;u|c?bkTMP4)j zdy-V6oPSlw)MUXH>w`i0QqZH1bOq}H%sCCg0#+6t9!`rEz^WQm`)YQ6Q(ln8;TxJD z&z(R25-q1M16x4{$*ZTIL_C1CynXuh>m9HHfS4ypof{h+<$sM*lLydH5d8`9n`J2e z>1ykGAniqCV`DYpVIVydAH373_$p-JGipG=j~=RPWYoR?EEeS^^CFG3={HH!UMm^# z(wUuLJqc2rT5K?pt5GdKvnfK@#IH(x7q;fVa)d3&~1bjmxyM7r+Pbx7NObI46*+-$&!KRt>Y zf1>k#;t0QZLw)RNu?T2TLWQRNtANC*VNJzRL24Z~PpCLDq(v+0w z?k3%1t=G;n8mD`-6`xsk^Lfo|tm7t~@`cJKpWe4Nt}~oU>edjk%cdLXH8tt<2<=^Y zfE*@|UJ@g)4zuBglx z&UiJK5O!@DcwQP*;tX}GhLs=Ue(1te5)?U)3Z{g;TnB$Hq~$8|zTT#ZTT#s3$9=v=bqc+YW`{U+W%S+-$ErK*qC*pw4@t*^9@PgHJ`+=|~Vr&6tk10CsO zx!<8OCi|l#YTAYk+~b*l6DGKUB;1 zrwdC}(vHPvho5+1%a7#8nIez#gaH{*uGLCD%5hz?7Z9(cN@nmmoo)(X2;I9`{0SKF z)C4{F0Sdv+(E7-AhTa6$GIO6qjHZtYb_U|31=PDA?{{0V>2F&{Xa}g-+PJIN(odbV zKYxr+)(Se!e>;>a&Iwr!(P7QJ4GXX0736-)@N5^BmO7oC><1cyMS6O;C7KYCaaU|E z%>kv{-5LV=m^v_7R`4e)hrTZN5pVv=nn#0x3jvIVZWF;;me)oHK#H4-3*PK$wwsBI z(wMzYzV1aM022e@cWd%GmdAvGy}1-|ToM+bb-qaucOECp1K>_K(cK9VRR$}ZiYT(q z&-DANF%`E+ve~_I){(13bdSTIc{wtKudhHB#?2e{ehUP^3PsY6a|RT`yGIItSsE_c z^@&IqjySM$aefZ8xzV3LB`axpEwl=9auoHP-(x< zA2+==-iC0R=OKw2E7IDCm_<$-8;pcxl~K z5!=m-D=kB>NAkX|qZFXQ)b4gYnK8G0J|+^A<>p}fCSn9@pI-CR(Q{$+VZ<9rHafPz zC>N2lO3Gh*_gOxDH;9F~y1M@Q^(%yu6=U*&nMjHyOv|{|<%Uxn?~Z<^_f97TedZv9^VcnKH$^pS}W*Adesa z{Pk<2SC+>>eot3*%J<^z!s_%iB7z}(97hg+a>OP28QOD}Q^J)K|06Kk?p<_Cr_fk5 zs|5e874~O=1H9`!3f$pgQ69WRvn-}}sF_=(Z}7G%q*N}wA^EDJqVj~_(quSnirjkT z#I9Q7Z{;vj@r%>+E9v{Rg4ar%5ft!ahWYp#5KK{grp6aGq^r~X3 z!rX5-+K?~BZufkkoWaI%Dt_sZ_x;n;GqhIc|L2PsLF*U(s3N19yLf?R@|up&FkqXc z?)@(M`g!jMaFMB^sUmJ*Xj^GJ=xCEnvt|*JLkoAXsT;ckr80XbMR$S~SSmm~;UT;; zBFgAdGuxRw%H*CptyAZHolD!1or#T&jhUGTXS%*l3|;1))!o9a4w&+F(%tmRw%V>$ z2@^336(oK*(6C@Aa*an^WIjHhPqX#Q7nX+Hh#$4Jsd3{tIKdzWIXi3mtt@u!cqwzL z(k>0e;mYS?!&^yO_FQ(df{P>KFvvvahJ}ec9ToPy<3nSMzvHR-?pez@YQIPxI;sF( zmKp;+z2a{f-x*{xD<6&S>$gWY9m*EMWn)Id9bte+dOd?xu`tIF51gr=6E7`_6{ zViFoogab}f%eZHC;_K)y=XZ6s^ahewQkdf$Ll*^Q_{F5R)(HNocR~EM%iGV!J#>um;e zRW&1fv({_>WFAkH-4R9$~{A`G0Ys7cOiHeE%$4o!8V=SME9&{gh#a3 zP0T|~c-DQ&hnwIRmH#$U>A$D%08fAT5g2pMi{0Be91i4k1b=0`tn5JFoxaV^?z=Ou zoNjpEiQ~-W`QF^o5KsNzKn})AD^BSbV=Cdt5>Q|93Az)OG?DsCKqf zD4%<~MI=ZN#|e!A5a1|5U9w3cYzA2ER5OfE-@xH0@8;!roWYmcJMz49WsVMgO_l-C z^$a^8YElRPPTiS+ER=p+rSvPPE*lO%Q$qwIv^e40t@PyOZQ(+JZviFqqi^TD#nGUBuaD-PSB$X%~9i z^`;chqel$lB*8JP5{uzDjP$m~&r5gu0v96HArv?qN;17NR?UPPt#(bBqe)B2-w{kfdegD@&_}qFoS> zke`*Z&I7HS$}?FM`%HAi(~RY+{QQSJJQ17#94dK#UPQPHlL(f?T{R+a8REYsRL4@E zMebpZ&!SpO!yBldus@~$aCE)2Bi0N}nGm0d{D(0vcgcAC9h`s=U@9pu|E%!Yn92IZ z1GDVdYx7UJkkKVgm zdvGw_=;Rym2=;D0-N(Y5rx+J-4Ae(||7u^trCXBWeq3B!4yfbYz?9%929Fucb@Ep) zU&e>?-9YB7Xmmaq)~jl*Iz-I!#-(z9rEQ%bU5XC^4}1<7yz zJ^_+`Zv|2@BfP+Lh3ncIvkDB5_f;OFfRb2JqC#o7dJ~B;$421k{@q-{@?L?A1}n%2 zm`*c}yQIe6i{OZcs|_ktAE|X!-yx!-r-#*hY^S?VHYwf^EYTppH_9y%7tTk3T;9YL zDAT})?Ds}o|JGG>Rh`*Nx0k(0?f$ADXrhUz>rPf`=y za8g@xl3(i zW^C->WI%@L5=^}#^ru|>YYQk@qYbciKn8OS#LNbg{NMl^EXx_OEj>Z?h!(xh*k$m( zG`&k9S*FTfLyo$s8;8cu$`}W0)tL~rBZ#mi87~s>5SM!&5 z!0U>572ejC>e<_K`i!K>O=@G%d)yraEDSEg9E|w8jV7PXy}8bag=BldU{Fv{T(*)C zPZvRCnGp7+C0TKC=UuQ`yyBdga0;4T2tHwo!!YAcLqkIW*U!KO`sR4;x&y94gn^KE zcXiFZeHKYY&22XPIeha9k}Dq|;QyCD0Z`X4C@?_??U=?oR78~mymJjw`|87o4@ycT zhtEI`Pf{{tt+%72qqFlHGHxDtrzGfkF+)K#k>Gjl{&bLNAJNRrj2t@fEq)0^9A4di zR7+f69EyV;?SoK(31`OW`1s@7;08naRAFRREtg#B@Q;p-O1WpQ#gAX2;{?!-Fc^_l za6GuNxAp%&>@tJ@m3;ho9VF=mj)b*$VfMtxj46@uNR(=K(3EpsZ^m;T$qD3^>knPvSsL2Wp!FG%Kg?XA~!(OGkO$&5ilfi0zEVX~5$UwoLbMPTL{c@(NRQ z9{m<9jT?)(na@7%w1m+BXjBNIKlOd!5QGzM`UQFS@87EcGVMDs_uw^g2JuW9>D15^ z7CQQ{sGP2)qG2J!H;Es(J-)%E1qty2i}jWE6Qsq_hr??ZVCT^)V?Q>a+o?2enVK1(3c$Gr1_!Yqy?J|r0(x8dTglA- z1D80_)iTjk9SGD- zmnZ#n-N%qYrVr;gQc_a1U8Fo5pS^&;e*Id;e^i`fW{+2nQ@ujG5 zlyLQ0wM(QdU<<-1f!kohbDhVBZ(fJo_6|zo4*uLmtWdCp`H}qj%RD%40g41IJ^d0P zWIQs!E9jC0iMy`;1=wAk#NwGeht^vR1S5V%O7zojyDRzNk(NZp^Neo?q3#^}r2pL# zB#9a$G-U9TL4T#{zg#(6FY6T%5m^;BmTSO7m@XnR#Q4<6A4c4K6h;xDO>@AP%}xjr z`hmYD4H{5MNy+o`^T1WSrH98;u{%rmc1FPoMsTX3uD13Qy;@M(J^^GLnVlUNo}F?T zHxg@Gx!v(%9zlw_=WK*8Pd#|_J~K{Jo|Rq`>6i~ra5!f(cCc8-Byg)=-v5e0RY4s& zv)45y?m?cq@R#xF9bBzqNAcZ`8b*zn<H<1FRHubw=j1vxs(mM{07stK6Y}D`+f8_QtFW^s+@eFWI^dPzl`JcD|HjC|EB!fa8+AA+t2C-T7NrL3&{_WC`*4Ml{7JEJf5Jk9n!CAB9h zleqW+NrFH4y0X3w@^_+Q=YVqy=HiG`VE1Bfw{x#}oo&s1wZ8FQkWzFSQR4us{?N2M z1|)RWe?X2R5XN9d$ceDi;t?PLaVL?JT!O5syy$H>r->wHHX2%kNwWk#3JKPi6N29f$L z!SnbrW)a)7%friS2byY}5?w-UafH1;#IZY(NB5oaLnUn(Y)Y#BDO8$(5CW}#ppr_0%s3X8-g(Mrb6V~pe0zxvFVKEJ{@FlPSi=7Xn_vm?OvHpRd1&Z8#H4Bl@o|Tz z_`#?s1j8fPvWShD(FN)FXIYRA?S^i*8MQ#;am^Im34XU1TV%XO2x;Y2o%M54yGjvv z6@Seew^oQmF;TaDW_MOb zthL}M*v_9=vmN;1@E)(0*+dk0-Z}P;#aRgnDOqsXsE3-GU#CSe6b=f~*LKE;vlMIZ-FpXpJFTS#s*QhJQ3J z%4dmagH(Jf9m91!teT}`<}tbCu|$6$b7Z7MIy=`6=Mmn=dbbu5SS@zfa*w&lRA^~w zr}-l{fiD@)T5xZD77xxXd@`~EyQBw}VkRg!0k%4GW1~|i3YInz4->kLpH;Gd@=Jy{ zJF^vY@&fM(9w-X(U_1#nnou}7V#1aWLO;Pk22@v96A)AOK^iGUam_cS=DSPx-kOLuuA|-|Pp+j%`J$?-sxmWS zU?)*h3hj1dj6=L73(E`JquGzWeKbUbZp$9Qm&Str<;xhz0_2dh*k9VbHvb;$6O3Z9 zx^$mJrdzLq7!dWxuo%Vx^}lJh@QFz95yua(qpFTwweSK1Z6N8?RsKAqSxk!GZtV=1B11J3%~)8&&10z@`NIn!WO{OD_TaEe&a0lTdaJFX8u(Wh3F-ra6zPjmnBD?fkc z3pmzyLIBQ@q{a1sOr;2V@B3-&RU|mE(m7aAO={fC;tg<+JCW5>?ypT1;HwG$?^nGN z8oTsv)D{*-L`%n1|IZvZZyy1s`aiw3k!b|fxAAhYN{`KVFH4EbO-9^kxi!tZ8CxJ^ zav;+p4h{QsP1w9lIH`GLkftv_A{?CKNw$T9;W^G>pD-q>XJTeP1d${6HqqtlJBYuG_fZEhz0Wbp_PtvZQz$S1|<#jc(iavFLT2L*kLoW+iq?* zm7BI=?D8VN{<{bvxJX=F90&u0Q%|drjDi-u8N4wCCr3v|$H!pUzJ2>E@t=xE%7N2jFz&z|93jBM<0BfrvD?RRCa) zWGOf~0}|tQqviSe`C-0^`y{}sNnb=i7WQ>$v{7?8NdDXAs6W=eRQ2kyB!B*T$2@5o zEcJ4q6G4OFi3QE(i2Fg`H`#VoiE}Ni^L5DT=uASiiyzfRT^& zkL^!*<&faRB?%|wDe@zd>Py;$JlINAr3 z$QLO8QjOU4M7!&7MqDauilo5*4Npi90(AGvI_Er|kLTm@xZiKr z+wGy#HX5(zlGcSdoQd8lQajsK@W119Vn5tJ+~RYUiFru7MllKcM0}X7m(ko|$INU7 zsm*yF?$_GwZb`Z!PqIGehNkVTHw<$L5+sU31C?=?x`ruP(vBMSb#ytvy#`qvCm!Q^OP$pjB0BkllcuX%75 z@BgPBZfS;MtFk#|o$CCj$X;>({o*ibA#C^LB1wb7j(~vK79=+0Aa(!qpcn%`y?*Tq z5cTfvE`XSYF)3QJT~)iAa~-hA{=pxbm&!xaE`P}TMQ-DS+N9a2+fEQ6;5RlAx%Td6 z6d)KDv)?cB?S)-1&vKX)I&|y!`2-J~3A*N2FMrvc);H$(g&Wwyk6vsixv#X8l>1bj z9~31?CH3`B*8O0ivd-2($8{s>;~C9~cV`bNmrfR?-W)txMkEgZlQl%<4LR4!n5zvK0Em zV2%0oU?cr8FZNSXtoCVRwtcWN*wp*)qL0?lDu+8mM>FB`RhU>bU0EQs)wdYt@vOq= z^h)ncc`%#Npoj_@ANGpvUho>T{eiw!!VpUy}B_+X&0v z2!7&Q`1>o!J9v9bmXe>m`In{1L(Pbz5u9cFr+k2M|u8D}?w~6IJ zkBc^>{`(6Vo31>I5}msX8Aur^DK%05fMbk$;N}`Yu|3onz&i-eJuyk24+0UtW)Zpv z_1pc5Ol{$9t*s<=+}zw8y;CGl`7_uD%=0c^u_d#E4d_2B*uvr>OAhg7hp6}af7p4@~;V6#UZp7W*gb#ipn($-c&4dJ+PFQ2n+yV;nk-Le$ioysuWypL$>$4rxJ^Ld^vmI|U*QpT zo(%g0@a?AucduW+9uN=!xYN8kEFr`-Nm$}R_&1JAZULH8aGFURrak5PR`UU1P_XzIQ8csBYZ(qJ@(APKD-W^Ex#nf-<1{>Vd z8`Ih&b`H6~Yr_R!MkBNXF|L(|BB7v2Tayw^2|A?>1&jimWuS8wC3u$v(ff>yA?UHG zqRME+QHB*7^Y!|1ENjR2o$c)w(&q&Q|IYoYQAiN4+ZF0gt5UPV`J0Px^CArw)VWm! zKBV(b(7}A1oNQul?nKo<;;MU2&i44|uvMB!Vv?vZ*iCJomXZUFscmg-1r+hkn>RSz zLzNITUE0;FSKnGzoGi?h^PJ6c&TFz*$!uJM>JX5LE|(2sn;A=Wo%E;GZC?{rfFuh& z;h=u$Qa8A9Hi<#B7diX2aX&nk==A9p0N}VOzzqKEx#Fg9m58{{MJ56gcK6-Yk+ICY zJeVu+jv{C^&e?;MoOIGL?w1UxbV0a{4g?XZ#T1o{5}Wc_Buav$I; z#uKF`=F!*^hcfq2r2ip-8wMNx=i(H|lv2{tG(u!Ga@Q>^80{DrsSP}w{D|fY5>=W5 zpm-hJUlRy`y7Dw%mjznIPJKy$QbE%~&9@C~Cum!bb24U{gk&{V)25 zU}ii{6FN9g{HAHn0vrc(WPW#`WLml4cZNMlkk+dnx79;L$B3}OqkxV0;Edn=7WqS_Se6Lk|AY0n4c$pX% z^X5`~9P&{-DJf~#jY3|_j{$pkP!jwmpDD4>dxfpFz48>I0n2@O?QHomI3mFe5*>v; z{B;+zc6^9F-YW|_)OTHRX2zp0nuk^7e+^tBKOK_DsrAR&I%xF0P}6Oh!)IXMxIYne zUAfJl97BG_wmKm$j@~!;g6U>`c9i?S`G2@g{-8ip3HmCgxI9 zdpp<+iSM%{e`ryQc!2Ue1LwHrEC8&Q_gh6iyTsDaz6D%TU#W*SG-y;N`@Ivct+*!W z_z0T6)C$z9>Y~MA3`zJ&zcv30I_vG5DGUUNuH=C53{R^k$eNE7XuNJ(cZ)Qbk)1WM zL!OBl>*5;+BUZu*2pdJ=U5l$%2@v~E-Q^}z;vOz2t*b=@2zMeIO`FD8?N)6HOKo4)yti&S;;E`^B}-;J=uAf2 z&$|#(!>THcwO?e!ygP@6`Ab~a`}uyCeR->OCI*a_7jLpiDJkWSWwmq)!_==`!17^c z6QSL9<)uN^f9ePrs~#>?hO=TaeuOMg7ln_a^821BGO`vK<~WVX!OB^IA14#&=wh#X zcwnH5s>cJqTlNCThY*toDc`|54T`;6=f$ZDZhhI`UV;_ACp2cOY8AN66`XkjTKC?< zCwkf^z$eoALAjGvz6OyOO>55uq~71o<522aodFb`;pGPxwyFaB>$s;ZMJ-T_E?7QBt-sU}TqCczmuJJdya=hY9G4G)@d zEII41!Tq@Sal(;y6U5U=k@fQqCub8|9jjF$@r!Oc9X!5d1LlonWk{7lxRiLt#Kguf z^=7q*_1lSdl&vLO`1bNlWhG)6l+Ie>G;i&v(pmDt$J8< z^51j$A~5|}Wuu4@e13~cn6SqQ84z*DT3QHMnLo=9zQ>M`*M(flqqw2O_s)Mj#Bs>M zyf^CA6PkLTJYz8#75O0^xz^pU`Phq?*QKTWwxC%4nNKzLH<~%4h#wWQq@m8$&ndX> zKZ!W@Bm0xHRgJMng7fMu@6&dMc3%=~x_N=ujFH_7^yIWh_n$9<;ZSk{20=qzjnB%iNDO!GSf6I}L=0Qh*lCpBi>(?Is zRQLH%k9i-2W}u17%41$7>(kfRyE(Uy_QjO!Zk;KjDf+zIa2SkvO3ipZsF~E}9fuDR z(_Escs2F|i)+K5UlHZ_l_VCabCV}!yXj4&9vGb|B`;tO|(nDj+`<^OY;v2MHT`qlN zv@1nx8meJP@;%5*>+=-tKqL>E#AD6@HyFG+JN*k4HqcaRwC3&0{da)yww5v2Ia)>cBX}wBofOihxEm}BH0Gwd^3SG5Pru>BYhW%e zE^yT1sZ18&64T84z&G*O;z_mHW#P4;E*DDBoh=9#7=spmv@iW)&Z)U=Wi5VBt%asX z7=cLC*LqhYn$qZB5}e? z!+#DQ?eajq&&b2~A!)KRV9~m0C}1&Vl?9g~NntI!$cWzj0mfZut|WeTCn+MS5CiZ#VI|`bqwWZvCMHU<+{vd&40{lWbVcLs}2?|Di zc|z#nKYQ6!7f2Z0rXJZp1CPQJPb0h&^!(kgyu?ksaiy#yGYiWtQ3S^rMxI`3B0E}F~oM3qlssS6V)pfQw3qUXmg zx3byT+CezWxtEx=w!&ll%9gZipSr}FZlC7-12~F2J1twWRI6S^hN6a(3maSSCQewE zWwa@n#8_9O^F!1)MRH3)b8~Y@$jKv8LYmvJf>ys=qTr37W&P;>Eku~^MUUDZ#KWG#=Js$78`}6u-TjJ&`G&s?ck~RLp(cgv+Kxaj zae&cDdBmQ7>h3Y$x>`_CN`0HBXK`9>>2v;)=uo{pE%F)n9pwk>*4JDk@(^nkQZh35 zGI1{7cb3#WE-`Ub_1-PVIzElp69WSTPntxZz1WN=B4nSUsCz`ut|%qtGx6azJfq+@ zL>aRm-XPIaunME>vMmLOxAvg5HTX*$Q_+$Cu#@MA;B(wFQJbu^)AjE-w)#<>vU_&u zhs~m1?E>mOMVe-Y*UO;}G9t2BQ#NI&yQNw7C@SEk)08~lT7rP&hA+2axNTyqan{`F z@Mx(vg|J|w_~p5|%D_MO5BsT}5syV3Hug+2-g+r8H^Sy_5Zpz7gzp|$xVo+asCcuK zIhHpmZJNBfyX0gp8LBH_u{AohyDT+TIKl0TZDbYHbn4|08K^BF9T#&$+P-Npp!r_d z_g^{N%M`nBFtE8rlQ7Lk+MLVpkCyd7EEjKuG0wP^t&z=~m6P4esE%{EN&0XyDit~t zGY9XUQ{jU`1&+Jo^Q7I*%FsUR6riea)t+QwWiG98@@po)8!#6y8@HhIh>`dt;y~ay zCKz_II^PJ5=L)!!J=Ky-a*nGzI`vmLfA_E^q#Q>fn|O{+*{%&V+H*15 zWgNT~_iyX19;u`o?Kk{3om{ITrexD3EVh;B^6i09U%j_$f_moJkng{54G#MqiPgS* z*)B#6cvxrbGb8j{4PkE{ytxm{6_!%=xR3_UVn-r4?&A49d^SnP(QGUNY&*nt%Z!sZ ztK;q&H8C#jg9NmoZ(5_CRmeJzEjdU_SATt8?6LZ5YWKadxZ4m$r~?j~n78aSr<#Ry zh!|AGI|4xF_cefik6(9rRDZOvT3~rweG6B0rBqGtSH-u&M0Gazqc}vlm^7dI&C3%; z(BPatz65a|+Ia-h?!Eo}UsdnQ@ygKZ+3~bUTO`EV(m#7)uo}44B>>$Z8gvKI`lGSV z?~U4|P0Q_K*(CH*4m@AEP|#;?ZDg)oRH8{Dl#6(w#8J1rIc;jH75=t7=KRdnB>m>n zYnyJ1ywbgfw|8{EpMdGM@wAv`$ZI`2{lQX|((V=VraPnRxpQxf>~x{rcaRlfN=C$g1>+;?qS<2df@VRFv4Cc!cQ7ijDR#;Y6Dyf{ zQ8Eo045wU+ZXqVR3tm&uQY2wB(P&lA(q4x~$2l(PIsL(=L|F3JxW;CpwSLi&jSq*~ zW*It|c5#o!N8b?dkxg@>Bq4da<$-eeH6NFES|P5TZ8vy+9)P|d)$8a& zH68vV>iU=8I3vkvBPbS{U0 zLo2@u^3(mdSmlCzJ04Z>FKi*fGED4@i~=$#+FdV`w(B1{X+1Vhyhb1$@eEUAl|@r& zDlUA7;oI|r6micB^QLwdFhy6WaOtFrRA zq`3X0TFwxsuna|wWhNz^qnmGeo)<5e;Ce^%WIE8K%uks`p>6=3ZQgaiD@vCnAIMs; z*k@#P*d`)L>*OAZ@~??_3C%Dv%2(rR?{=*Olo-3>1{=afRx+zSeqihB!8DxEHzpzK z@~iHtuD{}_PRCQk0BsAmij~jq>eWoG*CZd9x;;qzI@poo)8WSFtk?&1qe|foG#8VQ zy!EAiWehw5KWgs@Q#J+-`fkx2=up+n4~bLHtlQ7&a0Y5xM-Rb3#aDlSl!2|c<2iN- zvkl8)Q!Amt^gLj%W;tG2W0aFEjSzD-Z!Tw0xgqT4EFhgEB;@`=%2j-Hai96RvZTyu zEnfSliH&Z=7@@j=cJ6!gZG+6p>1!5e|!6#jSW8gN9m|f}BuZyEi&2>fCQ1|Ieghlmuv9uJ?Dj z-e1E-ljGH)xSns)Dz^)qEk&BRCKt5n=FVB!Tk_^7oH$#mMwB4yQ8}&5wU(1`FZ|Yt z7J;PI$?WM2pS$W}5+cN|2aC`dv^Mn*!mY4AFno}T;3jF1<>_MnW3ZMx3E*~GZF+mavsoNn)R zPqMH*E}Uj~)3SDl(&oYEFk~x|o|+i#C5>|I-J*IyL#oRhTu4Jo_B3Kr<1i2Z98Ag} zQF>mlNW1V95HYK#r9%4C-NGDBqmDa|)y8h_(zk7P zIqD3DzG*w%&RAv8>$(+faBd|&A%VYYW}Qbnaptjgy9F|^O}Ux1dWEQD((oiD26^QQ z&y#Bp)d>tVn1VDX{Yj0(kUn>Dc{vI3Acf>!F)9rj6w@muh>oXl9E*~5A1fy)>dR(yw{BWx;DrtI^(t$Zm#lk(AypnbPFXK-l*g&bz zj5%?jar+yhIDVv^=S^s?s_4LWN7uNzLMk~})(h3ItnUK(L(=f(6{rruywhzjBuH4P zf?K(;T5ID9Xx^at`}y+T5!Qrj#g?X~&-43Jn(^mm?X=6fIV{2aVwB8z%;my3OWj&6mc!S$4m z&@3TXtJ1F-|E(>q()}KY(%mTgE?tc4?(gUCpKWI9Ut!##IU=?3FoLvNts4h4@1fG! z%=>WlMVdu+sHyCy;`ewO=29tdrYh5~Ae9Rnv3Wj8`&wJY*n4IiP5F7& z!IUtXMABz1OigJsx&uAENHlOa?CBtoia78Sa07p3nX6V--S=kMx)=U@py5n8kvdJT zM%Vrq&$3G%P@!>AzO?F*ac8te%j=bDeuhJPx=C%5eh`t!^?)N`J~^|^f7NL0nr6Ms z^QkKVLr=G2zevl;W#$hI3~Y|Cj@SxIO42C-_vlGs(`qS44OwlJn=Inl)=O~Y>$%rW z&-CC?5IY;n<#Ui>sV^8BW}^8{3($WsGB(xM0if^*;$04k!rK;@tw#edrdo=ky`AI7 zG!JAnVyZZ2Da=14yS1=Z8(Eq3(nJUA9u4K5)5n~8>gMM5YMC`lMaH9Eh`{_p@LG+o z=hq5h65Xg6hebm`6#2VU2wyJbM!t=!0;J*+Ugxkb0jB#yC* z_g{ckdjBSX4Wy^u!b!m>*5ck|1ah&#aI4c$$z%G&U#Sjy($PO`dHQ(?`11q^_-|WW zxuSu`@yHs&kS-rp(|smdJe!`m9;)Xc4+aR+b7cTe>q)-=Lh>EJxnKW!K$ru`+7$9U zCcplS!=)fn)Awv9CMpE#}U@m}Kf z;(tb#!Iw zUPmm}LZ#D^GB_X1UyU%;D>?BKoOzjbd@)g@6R|y?;c^%Nv>Q#%mygD|au;KaUK{^K zp=!YyO2mwsvC|F_S=0GMhu)F>_`a)bg2ND(<#2fGzrPZ4!#ZPsEbJp3KCBVmmJWlO z4F?L2kcbGx)Y18RQU*4W@3xfTY0%JKgu`*dq%zx**Pk=rlaSi(+<~87ya@mMsHHtn zT|_^?Va<236yIiN1$wp4!q{l?w{A#9P-GwCaG5~g2ttBlOHLsCPbc`aRTOW)5#Ap% zgN#-7HK*Y~sP$v!B&G`7*+8iE|0$}OK1w{?E^&5$2Uhfds@jQtK2ix>3aLu_2-)pp zt_O1&{=dXEa_SO~zlD-p-#M15U%=033+Vh8u(xo0C-SW?dVAQlKhqETg}Ip-JqHI> zovyVFMjR=dWpzE@uym!PueiA@exAi3)4&i%)s%c08h#3Hc|LE`!@Fkb51qQF* zX=H)01)=@%Pv5{~;X{_I!;SFUH~_~fmp73O&Jb{Vjsc8%N z{qx!12Y+}D)zw0`bt-&fOFzJC1OQ0rzgt|obm_{K)cqWtgH8YrFJ-{tRflK6HM`Z@or+t!IheOVzaWUfs+*Z@DGlXve+`6?434M$GPu5meT_ag|g7SsgYw4KTw;eTiv{_m~m>~a0=enPmifI*JT$!vJe^ZK_tD6g&8K-rEb z$ZY=~g6ytD3v5A;>AIU~eG_ONG9!e@@Mzl139y;`zi3(~1>#{IM|?nMOELI)P|$jX z9?=}4iqcb_t0^N32|6H<40uTH-#2*xAjI(SFx21|(;{ko!p0<>oMH(Z9!%RT=2&d%Luv9-)b(d?Lo47Knp>+-P5t6}^H2s1#& z;R-*9g~Ht2>h~9>Gr`yCHw`biq^#`6@^a83eZkO$cPUj^e0V%p_GiXo@x!KH9~Fwd za{tAD=_G(bC8il@X(b%H(;$GgFH_tBWTx%KzU{3oKz<=&F*G!E#>&r6elr8pGqw!r zRT5uo4zx^vjrG2SR6PM96uUX@^(vm#>7i{~v_Jwu34(cMrsehPpCB3xu(_F4Il{ne zUn3yr#>~e@3Ilnqp~&1{ZXGtqxfsr4Y^2h$Bc2fR=l$Sg;5zp=ed;>@S_uh{OXTy>~krvb-J1-!m#)E5qU!~7f4CosC zi@p~(ms{Vfxmf@1ho#-t)%2T5JW^oehSxzucBKqjs8L1xbT$wxM>X-kCtEDQ#)FqRr$H$Znr9z_7o^hy1iVptMMNHr>f)}8x zzbGpDSXD(qgpcJEiZr1qs`cM}{XhH~o;6#Di?V(mg1^RNC1Dox158BH~kdvx_$RvD^vYfo(_{7s52p1e1JxVc|Q#BWH>|MJKQQH9x6H zFd`Y=We$p-8i6{mn>$+rq;BnnQVBiorpBlX!znt_ejBDhW+^eMYfq8ucDnAqykPHdw zr?N60U<0#1{+m8)?QWy)%(Q=x-G(dcL1fzBFduQDXDFCKV
|K^71b=;KpMs&?} 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%0DeF>0T@Y{1>$cZ3OK`Qb*VUeF zVmsrtKAlyJ)FafI_PE_Fp-4}X-j|R!LR-&hOVgkIu9X?3(q-=|!8fB@ShOV?O)7w* zYJEBo&Hv0aidL7bu6Tz)KC!>y3g0tsu}QPyfOTr`dM7#=HkfNSj+8>>y|M1)h`qr! zf+4YIaI+73N%P~*!F#;yl|0nAO>8UXu#@k5H~T_A1*-!K8=?4xXl?5mQn9RwcU?nW zg`1kJqP1B&Ia;H+T#+j%)cvn#?V_(Uq7qA0buP8tPwxpmZMo1NMnT$XgB|)f|M6-m zeLN%AnJ?Y$Lpll{i_^)Axkb~GI^R>pr)N6eQlLUvF)8;^=!x4zeZ?qn*|^?{V~LcD zWf;NiI>SRmm$L5sb*f+?|A+ z?Tcm|#B-cg6cVGX`@&w0^pXgerwcp9*(i!_F`}}&?p!UEIc1&9VuSMJ5I6rI{(}#> zL}RwsXXjtPp%t2LJ}EeC^&~qkJtr$d%tfft#dqaZt>{HA#)>e@$hS1FI+Kmb-NT66r%eoKj>{ zyTHPR%9gIpY|W^7=;~@mB9OwYV^JJ)v3(#WM1l`B`0-lK>(L#W(3(VM9TYl;YIATX zhQo^MxdrZuujn75SO)OSyeSQ68)Q!~m9c9~-WP2UOt|I7ZA@tpawV+g=b4Pq&mMMb zB=$k{QVOf%hKU!)(V2h5SmFcrGzmcnF)TJOZbK;@@BnwI$d+cLJq`1ioITA=HnYHm zhGD2dhN84mB{rJOxKLJu7fj#hAbYQtG6&q}fAR}i6(yKXg}#3Dk zvTfaQ(KkS_XnX0~yQ}`En0!t!!~~{NI11(Cdob8_<@PZ+**qKQEo|Z~=FCTn7*=s; z*h(9#^XhXHM4_53=Lz|uJvMCOdQ44Qz7=$do>t`&rj@iSe!^u^remx4sHMi??We-W zTqYiRw&I*h&O1+|Y#Nq$BAO9j-Bt%)E3BS~a$M27QlK$qj&YkM)wUgfyJ^#Ku5u^1 zVXu>rkEO&|m#2yXPvAki@C~~e&I-MSzG{i;2I!KrX5Q3Tnz>clWu;hcu;jY(9Vsct zs_&>sAUuZ5(q?K-8*_?79f+o-Z_KB", "Ariz Weber ", @@ -20,11 +22,16 @@ maintainers = [ "Michael Aydinbas " ] +release = pystatis.__version__ +version = release + # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration -extensions = ['sphinx.ext.autodoc'] +extensions = ['sphinx.ext.autodoc', + 'sphinx.ext.autosummary', # used to generate overview tables +] templates_path = ['_templates'] exclude_patterns = [] @@ -34,5 +41,10 @@ # -- Options for HTML output ------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output -html_theme = 'alabaster' +html_theme = 'sphinx_rtd_theme' html_static_path = ['_static'] + +html_title = "pystatis" +html_short_title = "pystatis documentation" +html_logo = "_static/pystatis_logo.png" +html_favicon = "_static/pystatis_logo.ico" diff --git a/docs/source/index.rst b/docs/source/index.rst index dbbc5e0..5305e60 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -3,7 +3,7 @@ You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. -Welcome to pystatis's documentation! +pystatis ==================================== ```pystatis``` is a Python wrapper for the GENESIS web service interface (API). It simplifies accessing the data from the German statistical federal office. @@ -19,18 +19,21 @@ The main features are: To learn more about GENESIS refer to the official documentation `here `_. -Contents --------- - .. toctree:: :maxdepth: 2 + :caption: Contents - Home install start use roadmap +.. toctree:: + :maxdepth: 2 + :caption: Modules + + pystatis + Indices and tables ------------------ diff --git a/docs/source/modules.rst b/docs/source/modules.rst deleted file mode 100644 index 839c33f..0000000 --- a/docs/source/modules.rst +++ /dev/null @@ -1,7 +0,0 @@ -src -=== - -.. toctree:: - :maxdepth: 4 - - pystatis diff --git a/docs/source/pystatis.rst b/docs/source/pystatis.rst index ecbce97..deef29d 100644 --- a/docs/source/pystatis.rst +++ b/docs/source/pystatis.rst @@ -1,8 +1,7 @@ pystatis package ================ -Submodules ----------- +Below you find all pystatis submodules. pystatis.cache module --------------------- diff --git a/docs/source/roadmap.rst b/docs/source/roadmap.rst index 6dd3107..df2e75b 100644 --- a/docs/source/roadmap.rst +++ b/docs/source/roadmap.rst @@ -4,7 +4,6 @@ Roadmap A few ideas we should implement in the maybe-near future: - Improve Table parsing. Right now, the parsing is really simple and we should align the cube and table format so that the data frame for tables is more convenient to use. -- Create a source code documentation with Sphinx or similar tools. - Mechanism to download data that is newer than the cached version. Right now, once data is cached, it is always retrieved from cache no matter if there is a newer version online. However, this could be quite challenging as the GENESIS API is really bad in providing a good and consistent field for the last update datetime. - Improve Table and Cube metadata so the user can look up the variables contained in the dataset and for each variable the values that this variable can have. - Understand and support time series. \ No newline at end of file diff --git a/docs/source/use.rst b/docs/source/use.rst index 756b4bd..c9f1b45 100644 --- a/docs/source/use.rst +++ b/docs/source/use.rst @@ -1,4 +1,4 @@ -How to use +Usage ========== The GENESIS data model diff --git a/poetry.lock b/poetry.lock index 58cee76..dbc288b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -293,11 +293,11 @@ python-versions = "*" [[package]] name = "docutils" -version = "0.19" +version = "0.18.1" description = "Docutils -- Python Documentation Utilities" category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [[package]] name = "dparse" @@ -404,6 +404,18 @@ python-versions = ">=3.7" [package.dependencies] gitdb = ">=4.0.1,<5" +[[package]] +name = "greenlet" +version = "2.0.2" +description = "Lightweight in-process concurrent programming" +category = "dev" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" + +[package.extras] +docs = ["sphinx", "docutils (<0.18)"] +test = ["objgraph", "psutil"] + [[package]] name = "identify" version = "2.5.6" @@ -615,6 +627,30 @@ nbconvert = "*" notebook = "*" qtconsole = "*" +[[package]] +name = "jupyter-cache" +version = "0.6.1" +description = "A defined interface for working with a cache of jupyter notebooks." +category = "dev" +optional = false +python-versions = "~=3.8" + +[package.dependencies] +attrs = "*" +click = "*" +importlib-metadata = "*" +nbclient = ">=0.2,<0.8" +nbformat = "*" +pyyaml = "*" +sqlalchemy = ">=1.3.12,<3" +tabulate = "*" + +[package.extras] +cli = ["click-log"] +code_style = ["pre-commit (>=2.12,<4.0)"] +rtd = ["nbdime", "ipykernel", "jupytext", "myst-nb", "sphinx-book-theme", "sphinx-copybutton"] +testing = ["nbdime", "coverage", "ipykernel", "jupytext", "matplotlib", "nbformat (>=5.1)", "numpy", "pandas", "pytest (>=6,<8)", "pytest-cov", "pytest-regressions", "sympy"] + [[package]] name = "jupyter-client" version = "7.3.5" @@ -693,6 +729,27 @@ category = "dev" optional = false python-versions = ">=3.6" +[[package]] +name = "markdown-it-py" +version = "2.2.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +category = "dev" +optional = false +python-versions = ">=3.7" + +[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 = ["attrs", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx-book-theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + [[package]] name = "markupsafe" version = "2.1.1" @@ -720,6 +777,30 @@ category = "dev" optional = false python-versions = "*" +[[package]] +name = "mdit-py-plugins" +version = "0.3.5" +description = "Collection of plugins for markdown-it-py" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +markdown-it-py = ">=1.0.0,<3.0.0" + +[package.extras] +code_style = ["pre-commit"] +rtd = ["attrs", "myst-parser (>=0.16.1,<0.17.0)", "sphinx-book-theme (>=0.1.0,<0.2.0)"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +category = "dev" +optional = false +python-versions = ">=3.7" + [[package]] name = "mistune" version = "2.0.4" @@ -754,6 +835,54 @@ category = "dev" optional = false python-versions = "*" +[[package]] +name = "myst-nb" +version = "0.17.2" +description = "A Jupyter Notebook Sphinx reader built on top of the MyST markdown parser." +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +importlib_metadata = "*" +ipykernel = "*" +ipython = "*" +jupyter-cache = ">=0.5,<0.7" +myst-parser = ">=0.18.0,<0.19.0" +nbclient = "*" +nbformat = ">=5.0,<6.0" +pyyaml = "*" +sphinx = ">=4,<6" +typing-extensions = "*" + +[package.extras] +code_style = ["pre-commit"] +rtd = ["alabaster", "altair", "bokeh", "coconut (>=1.4.3,<2.3.0)", "ipykernel (>=5.5,<6.0)", "ipywidgets", "jupytext (>=1.11.2,<1.12.0)", "matplotlib", "numpy", "pandas", "plotly", "sphinx-book-theme (>=0.3.0,<0.4.0)", "sphinx-copybutton", "sphinx-design (>=0.4.0,<0.5.0)", "sphinxcontrib-bibtex", "sympy"] +testing = ["coverage (>=6.4,<8.0)", "beautifulsoup4", "ipykernel (>=5.5,<6.0)", "ipython (!=8.1.0,<8.5)", "ipywidgets (>=8)", "jupytext (>=1.11.2,<1.12.0)", "matplotlib (>=3.5.3,<3.6)", "nbdime", "numpy", "pandas", "pytest (>=7.1,<8.0)", "pytest-cov (>=3,<5)", "pytest-regressions", "pytest-param-files (>=0.3.3,<0.4.0)", "sympy (>=1.10.1)"] + +[[package]] +name = "myst-parser" +version = "0.18.1" +description = "An extended commonmark compliant parser, with bridges to docutils & sphinx." +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +docutils = ">=0.15,<0.20" +jinja2 = "*" +markdown-it-py = ">=1.0.0,<3.0.0" +mdit-py-plugins = ">=0.3.1,<0.4.0" +pyyaml = "*" +sphinx = ">=4,<6" +typing-extensions = "*" + +[package.extras] +code_style = ["pre-commit (>=2.12,<3.0)"] +linkify = ["linkify-it-py (>=1.0,<2.0)"] +rtd = ["ipython", "sphinx-book-theme", "sphinx-design", "sphinxext-rediraffe (>=0.2.7,<0.3.0)", "sphinxcontrib.mermaid (>=0.7.1,<0.8.0)", "sphinxext-opengraph (>=0.6.3,<0.7.0)"] +testing = ["beautifulsoup4", "coverage", "pytest (>=6,<7)", "pytest-cov", "pytest-regressions", "pytest-param-files (>=0.3.4,<0.4.0)", "sphinx-pytest", "sphinx (<5.2)"] + [[package]] name = "nbclient" version = "0.7.0" @@ -1401,23 +1530,23 @@ python-versions = ">=3.6" [[package]] name = "sphinx" -version = "7.0.0" +version = "5.3.0" description = "Python documentation generator" category = "dev" optional = false -python-versions = ">=3.8" +python-versions = ">=3.6" [package.dependencies] alabaster = ">=0.7,<0.8" babel = ">=2.9" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} -docutils = ">=0.18.1,<0.20" +docutils = ">=0.14,<0.20" imagesize = ">=1.3" importlib-metadata = {version = ">=4.8", markers = "python_version < \"3.10\""} Jinja2 = ">=3.0" packaging = ">=21.0" -Pygments = ">=2.13" -requests = ">=2.25.0" +Pygments = ">=2.12" +requests = ">=2.5.0" snowballstemmer = ">=2.0" sphinxcontrib-applehelp = "*" sphinxcontrib-devhelp = "*" @@ -1428,8 +1557,24 @@ sphinxcontrib-serializinghtml = ">=1.1.5" [package.extras] docs = ["sphinxcontrib-websupport"] -lint = ["flake8 (>=3.5.0)", "flake8-simplify", "isort", "ruff", "mypy (>=0.990)", "sphinx-lint", "docutils-stubs", "types-requests"] -test = ["pytest (>=4.6)", "html5lib", "cython", "filelock"] +lint = ["flake8 (>=3.5.0)", "flake8-comprehensions", "flake8-bugbear", "flake8-simplify", "isort", "mypy (>=0.981)", "sphinx-lint", "docutils-stubs", "types-typed-ast", "types-requests"] +test = ["pytest (>=4.6)", "html5lib", "typed-ast", "cython"] + +[[package]] +name = "sphinx-rtd-theme" +version = "1.2.0" +description = "Read the Docs theme for Sphinx" +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" + +[package.dependencies] +docutils = "<0.19" +sphinx = ">=1.6,<7" +sphinxcontrib-jquery = {version = ">=2.0.0,<3.0.0 || >3.0.0", markers = "python_version > \"3\""} + +[package.extras] +dev = ["transifex-client", "sphinxcontrib-httpdomain", "bump2version", "wheel"] [[package]] name = "sphinxcontrib-applehelp" @@ -1467,6 +1612,17 @@ python-versions = ">=3.8" lint = ["flake8", "mypy", "docutils-stubs"] test = ["pytest", "html5lib"] +[[package]] +name = "sphinxcontrib-jquery" +version = "4.1" +description = "Extension to include jQuery on newer Sphinx releases" +category = "dev" +optional = false +python-versions = ">=2.7" + +[package.dependencies] +Sphinx = ">=1.8" + [[package]] name = "sphinxcontrib-jsmath" version = "1.0.1" @@ -1502,6 +1658,41 @@ python-versions = ">=3.5" lint = ["flake8", "mypy", "docutils-stubs"] test = ["pytest"] +[[package]] +name = "sqlalchemy" +version = "2.0.13" +description = "Database Abstraction Library" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +greenlet = {version = "!=0.4.17", markers = "platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\""} +typing-extensions = ">=4.2.0" + +[package.extras] +aiomysql = ["greenlet (!=0.4.17)", "aiomysql"] +aiosqlite = ["greenlet (!=0.4.17)", "aiosqlite", "typing-extensions (!=3.10.0.1)"] +asyncio = ["greenlet (!=0.4.17)"] +asyncmy = ["greenlet (!=0.4.17)", "asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)"] +mariadb_connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5)"] +mssql = ["pyodbc"] +mssql_pymssql = ["pymssql"] +mssql_pyodbc = ["pyodbc"] +mypy = ["mypy (>=0.910)"] +mysql = ["mysqlclient (>=1.4.0)"] +mysql_connector = ["mysql-connector-python"] +oracle = ["cx-oracle (>=7)"] +oracle_oracledb = ["oracledb (>=1.0.1)"] +postgresql = ["psycopg2 (>=2.7)"] +postgresql_asyncpg = ["greenlet (!=0.4.17)", "asyncpg"] +postgresql_pg8000 = ["pg8000 (>=1.29.1)"] +postgresql_psycopg = ["psycopg (>=3.0.7)"] +postgresql_psycopg2binary = ["psycopg2-binary"] +postgresql_psycopg2cffi = ["psycopg2cffi"] +pymysql = ["pymysql"] +sqlcipher = ["sqlcipher3-binary"] + [[package]] name = "stack-data" version = "0.5.1" @@ -1699,7 +1890,7 @@ testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "flake8 [metadata] lock-version = "1.1" python-versions = "^3.9" -content-hash = "77879bb0b3dddb846ed8c0416a2184db5a272ecd0a2793b127175ec6314bce76" +content-hash = "00525ff4612cff5338458e39c47248cb6c4bd872500b2e48d7f1eb88d4a10b21" [metadata.files] alabaster = [ @@ -1968,8 +2159,8 @@ distlib = [ {file = "distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"}, ] docutils = [ - {file = "docutils-0.19-py3-none-any.whl", hash = "sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc"}, - {file = "docutils-0.19.tar.gz", hash = "sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6"}, + {file = "docutils-0.18.1-py2.py3-none-any.whl", hash = "sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c"}, + {file = "docutils-0.18.1.tar.gz", hash = "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"}, ] dparse = [ {file = "dparse-0.6.2-py3-none-any.whl", hash = "sha256:8097076f1dd26c377f30d4745e6ec18fef42f3bf493933b842ac5bafad8c345f"}, @@ -2007,6 +2198,68 @@ gitpython = [ {file = "GitPython-3.1.28-py3-none-any.whl", hash = "sha256:77bfbd299d8709f6af7e0c70840ef26e7aff7cf0c1ed53b42dd7fc3a310fcb02"}, {file = "GitPython-3.1.28.tar.gz", hash = "sha256:6bd3451b8271132f099ceeaf581392eaf6c274af74bb06144307870479d0697c"}, ] +greenlet = [ + {file = "greenlet-2.0.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:bdfea8c661e80d3c1c99ad7c3ff74e6e87184895bbaca6ee8cc61209f8b9b85d"}, + {file = "greenlet-2.0.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:9d14b83fab60d5e8abe587d51c75b252bcc21683f24699ada8fb275d7712f5a9"}, + {file = "greenlet-2.0.2-cp27-cp27m-win32.whl", hash = "sha256:6c3acb79b0bfd4fe733dff8bc62695283b57949ebcca05ae5c129eb606ff2d74"}, + {file = "greenlet-2.0.2-cp27-cp27m-win_amd64.whl", hash = "sha256:283737e0da3f08bd637b5ad058507e578dd462db259f7f6e4c5c365ba4ee9343"}, + {file = "greenlet-2.0.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:d27ec7509b9c18b6d73f2f5ede2622441de812e7b1a80bbd446cb0633bd3d5ae"}, + {file = "greenlet-2.0.2-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:30bcf80dda7f15ac77ba5af2b961bdd9dbc77fd4ac6105cee85b0d0a5fcf74df"}, + {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26fbfce90728d82bc9e6c38ea4d038cba20b7faf8a0ca53a9c07b67318d46088"}, + {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9190f09060ea4debddd24665d6804b995a9c122ef5917ab26e1566dcc712ceeb"}, + {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d75209eed723105f9596807495d58d10b3470fa6732dd6756595e89925ce2470"}, + {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3a51c9751078733d88e013587b108f1b7a1fb106d402fb390740f002b6f6551a"}, + {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:76ae285c8104046b3a7f06b42f29c7b73f77683df18c49ab5af7983994c2dd91"}, + {file = "greenlet-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:2d4686f195e32d36b4d7cf2d166857dbd0ee9f3d20ae349b6bf8afc8485b3645"}, + {file = "greenlet-2.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c4302695ad8027363e96311df24ee28978162cdcdd2006476c43970b384a244c"}, + {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c48f54ef8e05f04d6eff74b8233f6063cb1ed960243eacc474ee73a2ea8573ca"}, + {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a1846f1b999e78e13837c93c778dcfc3365902cfb8d1bdb7dd73ead37059f0d0"}, + {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a06ad5312349fec0ab944664b01d26f8d1f05009566339ac6f63f56589bc1a2"}, + {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:eff4eb9b7eb3e4d0cae3d28c283dc16d9bed6b193c2e1ace3ed86ce48ea8df19"}, + {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5454276c07d27a740c5892f4907c86327b632127dd9abec42ee62e12427ff7e3"}, + {file = "greenlet-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:7cafd1208fdbe93b67c7086876f061f660cfddc44f404279c1585bbf3cdc64c5"}, + {file = "greenlet-2.0.2-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:910841381caba4f744a44bf81bfd573c94e10b3045ee00de0cbf436fe50673a6"}, + {file = "greenlet-2.0.2-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:18a7f18b82b52ee85322d7a7874e676f34ab319b9f8cce5de06067384aa8ff43"}, + {file = "greenlet-2.0.2-cp35-cp35m-win32.whl", hash = "sha256:03a8f4f3430c3b3ff8d10a2a86028c660355ab637cee9333d63d66b56f09d52a"}, + {file = "greenlet-2.0.2-cp35-cp35m-win_amd64.whl", hash = "sha256:4b58adb399c4d61d912c4c331984d60eb66565175cdf4a34792cd9600f21b394"}, + {file = "greenlet-2.0.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:703f18f3fda276b9a916f0934d2fb6d989bf0b4fb5a64825260eb9bfd52d78f0"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:32e5b64b148966d9cccc2c8d35a671409e45f195864560829f395a54226408d3"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dd11f291565a81d71dab10b7033395b7a3a5456e637cf997a6f33ebdf06f8db"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0f72c9ddb8cd28532185f54cc1453f2c16fb417a08b53a855c4e6a418edd099"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd021c754b162c0fb55ad5d6b9d960db667faad0fa2ff25bb6e1301b0b6e6a75"}, + {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:3c9b12575734155d0c09d6c3e10dbd81665d5c18e1a7c6597df72fd05990c8cf"}, + {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b9ec052b06a0524f0e35bd8790686a1da006bd911dd1ef7d50b77bfbad74e292"}, + {file = "greenlet-2.0.2-cp36-cp36m-win32.whl", hash = "sha256:dbfcfc0218093a19c252ca8eb9aee3d29cfdcb586df21049b9d777fd32c14fd9"}, + {file = "greenlet-2.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:9f35ec95538f50292f6d8f2c9c9f8a3c6540bbfec21c9e5b4b751e0a7c20864f"}, + {file = "greenlet-2.0.2-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:d5508f0b173e6aa47273bdc0a0b5ba055b59662ba7c7ee5119528f466585526b"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:f82d4d717d8ef19188687aa32b8363e96062911e63ba22a0cff7802a8e58e5f1"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9c59a2120b55788e800d82dfa99b9e156ff8f2227f07c5e3012a45a399620b7"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2780572ec463d44c1d3ae850239508dbeb9fed38e294c68d19a24d925d9223ca"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:937e9020b514ceedb9c830c55d5c9872abc90f4b5862f89c0887033ae33c6f73"}, + {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:36abbf031e1c0f79dd5d596bfaf8e921c41df2bdf54ee1eed921ce1f52999a86"}, + {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:18e98fb3de7dba1c0a852731c3070cf022d14f0d68b4c87a19cc1016f3bb8b33"}, + {file = "greenlet-2.0.2-cp37-cp37m-win32.whl", hash = "sha256:3f6ea9bd35eb450837a3d80e77b517ea5bc56b4647f5502cd28de13675ee12f7"}, + {file = "greenlet-2.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:7492e2b7bd7c9b9916388d9df23fa49d9b88ac0640db0a5b4ecc2b653bf451e3"}, + {file = "greenlet-2.0.2-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:b864ba53912b6c3ab6bcb2beb19f19edd01a6bfcbdfe1f37ddd1778abfe75a30"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:ba2956617f1c42598a308a84c6cf021a90ff3862eddafd20c3333d50f0edb45b"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc3a569657468b6f3fb60587e48356fe512c1754ca05a564f11366ac9e306526"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8eab883b3b2a38cc1e050819ef06a7e6344d4a990d24d45bc6f2cf959045a45b"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acd2162a36d3de67ee896c43effcd5ee3de247eb00354db411feb025aa319857"}, + {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0bf60faf0bc2468089bdc5edd10555bab6e85152191df713e2ab1fcc86382b5a"}, + {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b0ef99cdbe2b682b9ccbb964743a6aca37905fda5e0452e5ee239b1654d37f2a"}, + {file = "greenlet-2.0.2-cp38-cp38-win32.whl", hash = "sha256:b80f600eddddce72320dbbc8e3784d16bd3fb7b517e82476d8da921f27d4b249"}, + {file = "greenlet-2.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:4d2e11331fc0c02b6e84b0d28ece3a36e0548ee1a1ce9ddde03752d9b79bba40"}, + {file = "greenlet-2.0.2-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:88d9ab96491d38a5ab7c56dd7a3cc37d83336ecc564e4e8816dbed12e5aaefc8"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:561091a7be172ab497a3527602d467e2b3fbe75f9e783d8b8ce403fa414f71a6"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:971ce5e14dc5e73715755d0ca2975ac88cfdaefcaab078a284fea6cfabf866df"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be4ed120b52ae4d974aa40215fcdfde9194d63541c7ded40ee12eb4dda57b76b"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94c817e84245513926588caf1152e3b559ff794d505555211ca041f032abbb6b"}, + {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1a819eef4b0e0b96bb0d98d797bef17dc1b4a10e8d7446be32d1da33e095dbb8"}, + {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7efde645ca1cc441d6dc4b48c0f7101e8d86b54c8530141b09fd31cef5149ec9"}, + {file = "greenlet-2.0.2-cp39-cp39-win32.whl", hash = "sha256:ea9872c80c132f4663822dd2a08d404073a5a9b5ba6155bea72fb2a79d1093b5"}, + {file = "greenlet-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:db1a39669102a1d8d12b57de2bb7e2ec9066a6f2b3da35ae511ff93b01b5d564"}, + {file = "greenlet-2.0.2.tar.gz", hash = "sha256:e7c8dc13af7db097bed64a051d2dd49e9f0af495c26995c00a9ee842690d34c0"}, +] identify = [ {file = "identify-2.5.6-py2.py3-none-any.whl", hash = "sha256:b276db7ec52d7e89f5bc4653380e33054ddc803d25875952ad90b0f012cbcdaa"}, {file = "identify-2.5.6.tar.gz", hash = "sha256:6c32dbd747aa4ceee1df33f25fed0b0f6e0d65721b15bd151307ff7056d50245"}, @@ -2064,6 +2317,10 @@ jupyter = [ {file = "jupyter-1.0.0.tar.gz", hash = "sha256:d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f"}, {file = "jupyter-1.0.0.zip", hash = "sha256:3e1f86076bbb7c8c207829390305a2b1fe836d471ed54be66a3b8c41e7f46cc7"}, ] +jupyter-cache = [ + {file = "jupyter-cache-0.6.1.tar.gz", hash = "sha256:26f83901143edf4af2f3ff5a91e2d2ad298e46e2cee03c8071d37a23a63ccbfc"}, + {file = "jupyter_cache-0.6.1-py3-none-any.whl", hash = "sha256:2fce7d4975805c77f75bdfc1bc2e82bc538b8e5b1af27f2f5e06d55b9f996a82"}, +] jupyter-client = [ {file = "jupyter_client-7.3.5-py3-none-any.whl", hash = "sha256:b33222bdc9dd1714228bd286af006533a0abe2bbc093e8f3d29dc0b91bdc2be4"}, {file = "jupyter_client-7.3.5.tar.gz", hash = "sha256:3c58466a1b8d55dba0bf3ce0834e4f5b7760baf98d1d73db0add6f19de9ecd1d"}, @@ -2123,6 +2380,10 @@ lazy-object-proxy = [ {file = "lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61"}, {file = "lazy_object_proxy-1.7.1-pp37.pp38-none-any.whl", hash = "sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84"}, ] +markdown-it-py = [ + {file = "markdown-it-py-2.2.0.tar.gz", hash = "sha256:7c9a5e412688bc771c67432cbfebcdd686c93ce6484913dccf06cb5a0bea35a1"}, + {file = "markdown_it_py-2.2.0-py3-none-any.whl", hash = "sha256:5a35f8d1870171d9acc47b99612dc146129b631baf04970128b568f190d0cc30"}, +] markupsafe = [ {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812"}, {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a"}, @@ -2173,6 +2434,14 @@ mccabe = [ {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, ] +mdit-py-plugins = [ + {file = "mdit-py-plugins-0.3.5.tar.gz", hash = "sha256:eee0adc7195e5827e17e02d2a258a2ba159944a0748f59c5099a4a27f78fcf6a"}, + {file = "mdit_py_plugins-0.3.5-py3-none-any.whl", hash = "sha256:ca9a0714ea59a24b2b044a1831f48d817dd0c817e84339f20e7889f392d77c4e"}, +] +mdurl = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] mistune = [ {file = "mistune-2.0.4-py2.py3-none-any.whl", hash = "sha256:182cc5ee6f8ed1b807de6b7bb50155df7b66495412836b9a74c8fbdfc75fe36d"}, {file = "mistune-2.0.4.tar.gz", hash = "sha256:9ee0a66053e2267aba772c71e06891fa8f1af6d4b01d5e84e267b4570d4d9808"}, @@ -2206,6 +2475,14 @@ mypy-extensions = [ {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, ] +myst-nb = [ + {file = "myst-nb-0.17.2.tar.gz", hash = "sha256:0f61386515fab07c73646adca97fff2f69f41e90d313a260217c5bbe419d858b"}, + {file = "myst_nb-0.17.2-py3-none-any.whl", hash = "sha256:132ca4d0f5c308fdd4b6fdaba077712e28e119ccdafd04d6e41b51aac5483494"}, +] +myst-parser = [ + {file = "myst-parser-0.18.1.tar.gz", hash = "sha256:79317f4bb2c13053dd6e64f9da1ba1da6cd9c40c8a430c447a7b146a594c246d"}, + {file = "myst_parser-0.18.1-py3-none-any.whl", hash = "sha256:61b275b85d9f58aa327f370913ae1bec26ebad372cc99f3ab85c8ec3ee8d9fb8"}, +] nbclient = [ {file = "nbclient-0.7.0-py3-none-any.whl", hash = "sha256:434c91385cf3e53084185334d675a0d33c615108b391e260915d1aa8e86661b8"}, {file = "nbclient-0.7.0.tar.gz", hash = "sha256:a1d844efd6da9bc39d2209bf996dbd8e07bf0f36b796edfabaa8f8a9ab77c3aa"}, @@ -2661,8 +2938,12 @@ soupsieve = [ {file = "soupsieve-2.3.2.post1.tar.gz", hash = "sha256:fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d"}, ] sphinx = [ - {file = "Sphinx-7.0.0.tar.gz", hash = "sha256:283c44aa28922bb4223777b44ac0d59af50a279ac7690dfe945bb2b9575dc41b"}, - {file = "sphinx-7.0.0-py3-none-any.whl", hash = "sha256:3cfc1c6756ef1b132687b813ec6ea2214cb7a7e5d1dcb2772006cb895a0fa469"}, + {file = "Sphinx-5.3.0.tar.gz", hash = "sha256:51026de0a9ff9fc13c05d74913ad66047e104f56a129ff73e174eb5c3ee794b5"}, + {file = "sphinx-5.3.0-py3-none-any.whl", hash = "sha256:060ca5c9f7ba57a08a1219e547b269fadf125ae25b06b9fa7f66768efb652d6d"}, +] +sphinx-rtd-theme = [ + {file = "sphinx_rtd_theme-1.2.0-py2.py3-none-any.whl", hash = "sha256:f823f7e71890abe0ac6aaa6013361ea2696fc8d3e1fa798f463e82bdb77eeff2"}, + {file = "sphinx_rtd_theme-1.2.0.tar.gz", hash = "sha256:a0d8bd1a2ed52e0b338cbe19c4b2eef3c5e7a048769753dac6a9f059c7b641b8"}, ] sphinxcontrib-applehelp = [ {file = "sphinxcontrib-applehelp-1.0.4.tar.gz", hash = "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e"}, @@ -2676,6 +2957,10 @@ sphinxcontrib-htmlhelp = [ {file = "sphinxcontrib-htmlhelp-2.0.1.tar.gz", hash = "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff"}, {file = "sphinxcontrib_htmlhelp-2.0.1-py3-none-any.whl", hash = "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903"}, ] +sphinxcontrib-jquery = [ + {file = "sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a"}, + {file = "sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae"}, +] sphinxcontrib-jsmath = [ {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, @@ -2688,6 +2973,49 @@ sphinxcontrib-serializinghtml = [ {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, ] +sqlalchemy = [ + {file = "SQLAlchemy-2.0.13-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7ad24c85f2a1caf0cd1ae8c2fdb668777a51a02246d9039420f94bd7dbfd37ed"}, + {file = "SQLAlchemy-2.0.13-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:db24d2738add6db19d66ca820479d2f8f96d3f5a13c223f27fa28dd2f268a4bd"}, + {file = "SQLAlchemy-2.0.13-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:72746ec17a7d9c5acf2c57a6e6190ceba3dad7127cd85bb17f24e90acc0e8e3f"}, + {file = "SQLAlchemy-2.0.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:755f653d693f9b8f4286d987aec0d4279821bf8d179a9de8e8a5c685e77e57d6"}, + {file = "SQLAlchemy-2.0.13-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e0d20f27edfd6f35b388da2bdcd7769e4ffa374fef8994980ced26eb287e033a"}, + {file = "SQLAlchemy-2.0.13-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:37de4010f53f452e94e5ed6684480432cfe6a7a8914307ef819cd028b05b98d5"}, + {file = "SQLAlchemy-2.0.13-cp310-cp310-win32.whl", hash = "sha256:31f72bb300eed7bfdb373c7c046121d84fa0ae6f383089db9505ff553ac27cef"}, + {file = "SQLAlchemy-2.0.13-cp310-cp310-win_amd64.whl", hash = "sha256:ec2f525273528425ed2f51861b7b88955160cb95dddb17af0914077040aff4a5"}, + {file = "SQLAlchemy-2.0.13-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2424a84f131901fbb20a99844d47b38b517174c6e964c8efb15ea6bb9ced8c2b"}, + {file = "SQLAlchemy-2.0.13-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4f9832815257969b3ca9bf0501351e4c02c8d60cbd3ec9f9070d5b0f8852900e"}, + {file = "SQLAlchemy-2.0.13-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a30e4db983faa5145e00ef6eaf894a2d503b3221dbf40a595f3011930d3d0bac"}, + {file = "SQLAlchemy-2.0.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f717944aee40e9f48776cf85b523bb376aa2d9255a268d6d643c57ab387e7264"}, + {file = "SQLAlchemy-2.0.13-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9119795d2405eb23bf7e6707e228fe38124df029494c1b3576459aa3202ea432"}, + {file = "SQLAlchemy-2.0.13-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2ad9688debf1f0ae9c6e0706a4e2d33b1a01281317cee9bd1d7eef8020c5baac"}, + {file = "SQLAlchemy-2.0.13-cp311-cp311-win32.whl", hash = "sha256:c61b89803a87a3b2a394089a7dadb79a6c64c89f2e8930cc187fec43b319f8d2"}, + {file = "SQLAlchemy-2.0.13-cp311-cp311-win_amd64.whl", hash = "sha256:0aa2cbde85a6eab9263ab480f19e8882d022d30ebcdc14d69e6a8d7c07b0a871"}, + {file = "SQLAlchemy-2.0.13-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:9ad883ac4f5225999747f0849643c4d0ec809d9ffe0ddc81a81dd3e68d0af463"}, + {file = "SQLAlchemy-2.0.13-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e481e54db8cec1457ee7c05f6d2329e3298a304a70d3b5e2e82e77170850b385"}, + {file = "SQLAlchemy-2.0.13-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4e08e3831671008888bad5d160d757ef35ce34dbb73b78c3998d16aa1334c97"}, + {file = "SQLAlchemy-2.0.13-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:f234ba3bb339ad17803009c8251f5ee65dcf283a380817fe486823b08b26383d"}, + {file = "SQLAlchemy-2.0.13-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:375b7ba88f261dbd79d044f20cbcd919d88befb63f26af9d084614f10cdf97a6"}, + {file = "SQLAlchemy-2.0.13-cp37-cp37m-win32.whl", hash = "sha256:9136d596111c742d061c0f99bab95c5370016c4101a32e72c2b634ad5e0757e6"}, + {file = "SQLAlchemy-2.0.13-cp37-cp37m-win_amd64.whl", hash = "sha256:7612a7366a0855a04430363fb4ab392dc6818aaece0b2e325ff30ee77af9b21f"}, + {file = "SQLAlchemy-2.0.13-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:49c138856035cb97f0053e5e57ba90ec936b28a0b8b0020d44965c7b0c0bf03a"}, + {file = "SQLAlchemy-2.0.13-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a5e9e78332a5d841422b88b8c490dfd7f761e64b3430249b66c05d02f72ceab0"}, + {file = "SQLAlchemy-2.0.13-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd0febae872a4042da44e972c070f0fd49a85a0a7727ab6b85425f74348be14e"}, + {file = "SQLAlchemy-2.0.13-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:566a0ac347cf4632f551e7b28bbd0d215af82e6ffaa2556f565a3b6b51dc3f81"}, + {file = "SQLAlchemy-2.0.13-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e5e5dc300a0ca8755ada1569f5caccfcdca28607dfb98b86a54996b288a8ebd3"}, + {file = "SQLAlchemy-2.0.13-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a25b4c4fdd633501233924f873e6f6cd8970732859ecfe4ecfb60635881f70be"}, + {file = "SQLAlchemy-2.0.13-cp38-cp38-win32.whl", hash = "sha256:6777673d346071451bf7cccf8d0499024f1bd6a835fc90b4fe7af50373d92ce6"}, + {file = "SQLAlchemy-2.0.13-cp38-cp38-win_amd64.whl", hash = "sha256:2f0a355264af0952570f18457102984e1f79510f856e5e0ae652e63316d1ca23"}, + {file = "SQLAlchemy-2.0.13-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d93ebbff3dcf05274843ad8cf650b48ee634626e752c5d73614e5ec9df45f0ce"}, + {file = "SQLAlchemy-2.0.13-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fec56c7d1b6a22c8f01557de3975d962ee40270b81b60d1cfdadf2a105d10e84"}, + {file = "SQLAlchemy-2.0.13-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0eb14a386a5b610305bec6639b35540b47f408b0a59f75999199aed5b3d40079"}, + {file = "SQLAlchemy-2.0.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2f3b5236079bc3e318a92bab2cc3f669cc32127075ab03ff61cacbae1c392b8"}, + {file = "SQLAlchemy-2.0.13-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bf1aae95e80acea02a0a622e1c12d3fefc52ffd0fe7bda70a30d070373fbb6c3"}, + {file = "SQLAlchemy-2.0.13-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cdf80359b641185ae7e580afb9f88cf560298f309a38182972091165bfe1225d"}, + {file = "SQLAlchemy-2.0.13-cp39-cp39-win32.whl", hash = "sha256:f463598f9e51ccc04f0fe08500f9a0c3251a7086765350be418598b753b5561d"}, + {file = "SQLAlchemy-2.0.13-cp39-cp39-win_amd64.whl", hash = "sha256:881cc388dded44ae6e17a1666364b98bd76bcdc71b869014ae725f06ba298e0e"}, + {file = "SQLAlchemy-2.0.13-py3-none-any.whl", hash = "sha256:0d6979c9707f8b82366ba34b38b5a6fe32f75766b2e901f9820e271e95384070"}, + {file = "SQLAlchemy-2.0.13.tar.gz", hash = "sha256:8d97b37b4e60073c38bcf94e289e3be09ef9be870de88d163f16e08f2b9ded1a"}, +] stack-data = [ {file = "stack_data-0.5.1-py3-none-any.whl", hash = "sha256:5120731a18ba4c82cefcf84a945f6f3e62319ef413bfc210e32aca3a69310ba2"}, {file = "stack_data-0.5.1.tar.gz", hash = "sha256:95eb784942e861a3d80efd549ff9af6cf847d88343a12eb681d7157cfcb6e32b"}, diff --git a/pyproject.toml b/pyproject.toml index 52547fd..6755f84 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -54,7 +54,9 @@ safety = "^2.0.0" flake8 = "^4.0.1" jupyter = "^1.0.0" pytest-mock = "^3.8.2" -Sphinx = "^7.0.0" +Sphinx = "<6" +sphinx-rtd-theme = "^1.2.0" +myst-nb = "^0.17.2" [tool.black] line-length = 80 diff --git a/src/pystatis/cache.py b/src/pystatis/cache.py index 1c0f0ec..e0ac830 100644 --- a/src/pystatis/cache.py +++ b/src/pystatis/cache.py @@ -24,7 +24,7 @@ def cache_data( """Compress and archive data within the configured cache directory. Data will be stored in a zip file within the cache directory. - The folder structure will be `///. + The folder structure will be `///`. This allows to cache different results for different params. Args: diff --git a/src/pystatis/cube.py b/src/pystatis/cube.py index ba52689..6b73a1b 100644 --- a/src/pystatis/cube.py +++ b/src/pystatis/cube.py @@ -103,11 +103,8 @@ def rename_axes( """Rename the generic axes of a cubefile with the names found in the metadata. Args: - cube (dict): A dictionary holding the cube data as returned by `parse_cube()`. - rename_classifying_variables (bool, optional): If True, rename classifying variables. - Defaults to True. - rename_time_variable (bool, optional): If True, rename the time variable. - Defaults to True. + cube (dict): A dictionary holding the cube data as returned by `parse_cube()`. rename_classifying_variables (bool, optional): If True, rename classifying variables. Defaults to True. + rename_time_variable (bool, optional): If True, rename the time variable. Defaults to True. Returns: dict: Same dict as cube but with renamed axes for QEI. From 130d670114311bf83020664276123caa590e2e95 Mon Sep 17 00:00:00 2001 From: MarcoHuebner <57489799+MarcoHuebner@users.noreply.github.com> Date: Sun, 14 May 2023 13:09:18 +0200 Subject: [PATCH 03/27] Updated urllib3 version, but everything <2.0.0 (deprecating `strict`) should be fine... --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index dbc288b..dadb110 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1815,11 +1815,11 @@ python-versions = ">=3.7" [[package]] name = "urllib3" -version = "1.26.12" +version = "1.26.15" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" [package.extras] brotli = ["brotlicffi (>=0.8.0)", "brotli (>=1.0.9)", "brotlipy (>=0.6.0)"] @@ -3071,8 +3071,8 @@ typing-extensions = [ {file = "typing_extensions-4.4.0.tar.gz", hash = "sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa"}, ] urllib3 = [ - {file = "urllib3-1.26.12-py2.py3-none-any.whl", hash = "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"}, - {file = "urllib3-1.26.12.tar.gz", hash = "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e"}, + {file = "urllib3-1.26.15-py2.py3-none-any.whl", hash = "sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42"}, + {file = "urllib3-1.26.15.tar.gz", hash = "sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305"}, ] virtualenv = [ {file = "virtualenv-20.16.5-py3-none-any.whl", hash = "sha256:d07dfc5df5e4e0dbc92862350ad87a36ed505b978f6c39609dc489eadd5b0d27"}, From cd73ac79360a0873c3b55fd20bfa6d3734a3748f Mon Sep 17 00:00:00 2001 From: MarcoHuebner <57489799+MarcoHuebner@users.noreply.github.com> Date: Sun, 14 May 2023 15:26:25 +0200 Subject: [PATCH 04/27] Updated poetry as recommended in cachecontrol issue report. --- .github/workflows/run-tests.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index 3328dba..d7ad07c 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -22,7 +22,7 @@ jobs: fail-fast: false matrix: python-version: ["3.9", "3.10"] - poetry-version: [1.1.14] + poetry-version: [1.4.2] os: [ubuntu-latest, macOS-latest, windows-latest] steps: @@ -46,7 +46,7 @@ jobs: fail-fast: false matrix: python-version: ["3.10"] - poetry-version: [1.1.14] + poetry-version: [1.4.2] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: @@ -81,7 +81,7 @@ jobs: fail-fast: false matrix: python-version: ["3.9", "3.10"] - poetry-version: [1.1.14] + poetry-version: [1.4.2] os: [ubuntu-latest, macOS-latest, windows-latest] steps: From 00301164d61bd0316654abf3a2b5ca0a1a4f6379 Mon Sep 17 00:00:00 2001 From: MarcoHuebner <57489799+MarcoHuebner@users.noreply.github.com> Date: Sun, 14 May 2023 15:48:53 +0200 Subject: [PATCH 05/27] Fixed black formatting, fixed make docs (is now ran by poetry). --- .github/workflows/run-tests.yaml | 2 +- docs/source/conf.py | 22 ++++++++++------------ 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index d7ad07c..6197c21 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -100,4 +100,4 @@ jobs: - name: Build documentation run: | cd docs - make html + poetry run make clean && make html diff --git a/docs/source/conf.py b/docs/source/conf.py index 6490fb7..1b9274c 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -8,8 +8,8 @@ import pystatis -project = 'pystatis' -copyright = '2022, Michael Aydinbas' +project = "pystatis" +copyright = "2022, Michael Aydinbas" authors = [ "Michael Aydinbas ", "Ariz Weber ", @@ -17,11 +17,9 @@ "Daniel Pleus ", "Felix Schmitz ", "Frederik Hering ", - "Marco Hübner " -] -maintainers = [ - "Michael Aydinbas " + "Marco Hübner ", ] +maintainers = ["Michael Aydinbas "] release = pystatis.__version__ version = release @@ -29,20 +27,20 @@ # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration -extensions = ['sphinx.ext.autodoc', - 'sphinx.ext.autosummary', # used to generate overview tables +extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", # used to generate overview tables ] -templates_path = ['_templates'] +templates_path = ["_templates"] exclude_patterns = [] - # -- Options for HTML output ------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output -html_theme = 'sphinx_rtd_theme' -html_static_path = ['_static'] +html_theme = "sphinx_rtd_theme" +html_static_path = ["_static"] html_title = "pystatis" html_short_title = "pystatis documentation" From bc90982e0c185895d09f9f0770f83486bd5d73f8 Mon Sep 17 00:00:00 2001 From: MarcoHuebner <57489799+MarcoHuebner@users.noreply.github.com> Date: Sun, 14 May 2023 16:19:28 +0200 Subject: [PATCH 06/27] Fixed linting issue, updated packages, updated make docs. --- .github/workflows/run-tests.yaml | 3 +- poetry.lock | 3598 +++++++++++++++++------------- src/pystatis/cube.py | 4 +- 3 files changed, 2041 insertions(+), 1564 deletions(-) diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index 6197c21..8610cde 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -100,4 +100,5 @@ jobs: - name: Build documentation run: | cd docs - poetry run make clean && make html + poetry run make clean + poetry run make html diff --git a/poetry.lock b/poetry.lock index dadb110..f7250e7 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,3 +1,5 @@ +# This file is automatically @generated by Poetry 1.4.2 and should not be changed by hand. + [[package]] name = "alabaster" version = "0.7.13" @@ -5,6 +7,31 @@ description = "A configurable sidebar-enabled Sphinx theme" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, + {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, +] + +[[package]] +name = "anyio" +version = "3.6.2" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +category = "dev" +optional = false +python-versions = ">=3.6.2" +files = [ + {file = "anyio-3.6.2-py3-none-any.whl", hash = "sha256:fbbe32bd270d2a2ef3ed1c5d45041250284e31fc0a4df4a5a6071842051a51e3"}, + {file = "anyio-3.6.2.tar.gz", hash = "sha256:25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421"}, +] + +[package.dependencies] +idna = ">=2.8" +sniffio = ">=1.1" + +[package.extras] +doc = ["packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["contextlib2", "coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "mock (>=4)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (<0.15)", "uvloop (>=0.15)"] +trio = ["trio (>=0.16,<0.22)"] [[package]] name = "appnope" @@ -13,6 +40,10 @@ description = "Disable App Nap on macOS >= 10.9" category = "dev" optional = false python-versions = "*" +files = [ + {file = "appnope-0.1.3-py2.py3-none-any.whl", hash = "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"}, + {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, +] [[package]] name = "argon2-cffi" @@ -21,13 +52,17 @@ description = "The secure Argon2 password hashing algorithm." category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "argon2-cffi-21.3.0.tar.gz", hash = "sha256:d384164d944190a7dd7ef22c6aa3ff197da12962bd04b17f64d4e93d934dba5b"}, + {file = "argon2_cffi-21.3.0-py3-none-any.whl", hash = "sha256:8c976986f2c5c0e5000919e6de187906cfd81fb1c72bf9d88c01177e77da7f80"}, +] [package.dependencies] argon2-cffi-bindings = "*" [package.extras] -dev = ["pre-commit", "cogapp", "tomli", "coverage[toml] (>=5.0.2)", "hypothesis", "pytest", "sphinx", "sphinx-notfound-page", "furo"] -docs = ["sphinx", "sphinx-notfound-page", "furo"] +dev = ["cogapp", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "pre-commit", "pytest", "sphinx", "sphinx-notfound-page", "tomli"] +docs = ["furo", "sphinx", "sphinx-notfound-page"] tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pytest"] [[package]] @@ -37,25 +72,67 @@ description = "Low-level CFFI bindings for Argon2" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"}, + {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"}, +] [package.dependencies] cffi = ">=1.0.1" [package.extras] -dev = ["pytest", "cogapp", "pre-commit", "wheel"] +dev = ["cogapp", "pre-commit", "pytest", "wheel"] tests = ["pytest"] +[[package]] +name = "arrow" +version = "1.2.3" +description = "Better dates & times for Python" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "arrow-1.2.3-py3-none-any.whl", hash = "sha256:5a49ab92e3b7b71d96cd6bfcc4df14efefc9dfa96ea19045815914a6ab6b1fe2"}, + {file = "arrow-1.2.3.tar.gz", hash = "sha256:3934b30ca1b9f292376d9db15b19446088d12ec58629bc3f0da28fd55fb633a1"}, +] + +[package.dependencies] +python-dateutil = ">=2.7.0" + [[package]] name = "astroid" -version = "2.12.10" +version = "2.15.4" description = "An abstract syntax tree for Python with inference support." category = "dev" optional = false python-versions = ">=3.7.2" +files = [ + {file = "astroid-2.15.4-py3-none-any.whl", hash = "sha256:a1b8543ef9d36ea777194bc9b17f5f8678d2c56ee6a45b2c2f17eec96f242347"}, + {file = "astroid-2.15.4.tar.gz", hash = "sha256:c81e1c7fbac615037744d067a9bb5f9aeb655edf59b63ee8b59585475d6f80d8"}, +] [package.dependencies] lazy-object-proxy = ">=1.4.0" -typing-extensions = {version = ">=3.10", markers = "python_version < \"3.10\""} +typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} wrapt = [ {version = ">=1.11,<2", markers = "python_version < \"3.11\""}, {version = ">=1.14,<2", markers = "python_version >= \"3.11\""}, @@ -63,31 +140,40 @@ wrapt = [ [[package]] name = "asttokens" -version = "2.0.8" +version = "2.2.1" description = "Annotate AST trees with source code positions" category = "dev" optional = false python-versions = "*" +files = [ + {file = "asttokens-2.2.1-py2.py3-none-any.whl", hash = "sha256:6b0ac9e93fb0335014d382b8fa9b3afa7df546984258005da0b9e7095b3deb1c"}, + {file = "asttokens-2.2.1.tar.gz", hash = "sha256:4622110b2a6f30b77e1473affaa97e711bc2f07d3f10848420ff1898edbe94f3"}, +] [package.dependencies] six = "*" [package.extras] -test = ["astroid (<=2.5.3)", "pytest"] +test = ["astroid", "pytest"] [[package]] name = "attrs" -version = "22.1.0" +version = "23.1.0" description = "Classes Without Boilerplate" category = "dev" optional = false -python-versions = ">=3.5" +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] -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"] -docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] -tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "cloudpickle"] +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" @@ -96,6 +182,10 @@ description = "Internationalization utilities" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "Babel-2.12.1-py3-none-any.whl", hash = "sha256:b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610"}, + {file = "Babel-2.12.1.tar.gz", hash = "sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455"}, +] [[package]] name = "backcall" @@ -104,33 +194,46 @@ description = "Specifications for callback functions passed in to an API" category = "dev" optional = false python-versions = "*" +files = [ + {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, + {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, +] [[package]] name = "bandit" -version = "1.7.4" +version = "1.7.5" description = "Security oriented static analyser for python code." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "bandit-1.7.5-py3-none-any.whl", hash = "sha256:75665181dc1e0096369112541a056c59d1c5f66f9bb74a8d686c3c362b83f549"}, + {file = "bandit-1.7.5.tar.gz", hash = "sha256:bdfc739baa03b880c2d15d0431b31c658ffc348e907fe197e54e0389dd59e11e"}, +] [package.dependencies] colorama = {version = ">=0.3.9", markers = "platform_system == \"Windows\""} GitPython = ">=1.0.1" PyYAML = ">=5.3.1" +rich = "*" stevedore = ">=1.20.0" [package.extras] -test = ["coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)", "toml", "beautifulsoup4 (>=4.8.0)", "pylint (==1.9.4)"] -toml = ["toml"] -yaml = ["pyyaml"] +test = ["beautifulsoup4 (>=4.8.0)", "coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "pylint (==1.9.4)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)", "tomli (>=1.1.0)"] +toml = ["tomli (>=1.1.0)"] +yaml = ["PyYAML"] [[package]] name = "beautifulsoup4" -version = "4.11.1" +version = "4.12.2" description = "Screen-scraping library" category = "dev" 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" @@ -141,11 +244,25 @@ lxml = ["lxml"] [[package]] name = "black" -version = "22.10.0" +version = "22.12.0" description = "The uncompromising code formatter." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "black-22.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9eedd20838bd5d75b80c9f5487dbcb06836a43833a37846cf1d8c1cc01cef59d"}, + {file = "black-22.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:159a46a4947f73387b4d83e87ea006dbb2337eab6c879620a3ba52699b1f4351"}, + {file = "black-22.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d30b212bffeb1e252b31dd269dfae69dd17e06d92b87ad26e23890f3efea366f"}, + {file = "black-22.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:7412e75863aa5c5411886804678b7d083c7c28421210180d67dfd8cf1221e1f4"}, + {file = "black-22.12.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c116eed0efb9ff870ded8b62fe9f28dd61ef6e9ddd28d83d7d264a38417dcee2"}, + {file = "black-22.12.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1f58cbe16dfe8c12b7434e50ff889fa479072096d79f0a7f25e4ab8e94cd8350"}, + {file = "black-22.12.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77d86c9f3db9b1bf6761244bc0b3572a546f5fe37917a044e02f3166d5aafa7d"}, + {file = "black-22.12.0-cp38-cp38-win_amd64.whl", hash = "sha256:82d9fe8fee3401e02e79767016b4907820a7dc28d70d137eb397b92ef3cc5bfc"}, + {file = "black-22.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:101c69b23df9b44247bd88e1d7e90154336ac4992502d4197bdac35dd7ee3320"}, + {file = "black-22.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:559c7a1ba9a006226f09e4916060982fd27334ae1998e7a38b3f33a37f7a2148"}, + {file = "black-22.12.0-py3-none-any.whl", hash = "sha256:436cc9167dd28040ad90d3b404aec22cedf24a6e4d7de221bec2730ec0c97bcf"}, + {file = "black-22.12.0.tar.gz", hash = "sha256:229351e5a18ca30f447bf724d007f890f97e13af070bb6ad4c0a441cd7596a2f"}, +] [package.dependencies] click = ">=8.0.0" @@ -163,11 +280,15 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "bleach" -version = "5.0.1" +version = "6.0.0" description = "An easy safelist-based HTML-sanitizing tool." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "bleach-6.0.0-py3-none-any.whl", hash = "sha256:33c16e3353dbd13028ab4799a0f89a83f113405c766e9c122df8a06f5b85b3f4"}, + {file = "bleach-6.0.0.tar.gz", hash = "sha256:1a1a85c1595e07d8db14c5f09f09e6433502c51c595970edc090551f0db99414"}, +] [package.dependencies] six = ">=1.9.0" @@ -175,15 +296,18 @@ webencodings = "*" [package.extras] css = ["tinycss2 (>=1.1.0,<1.2)"] -dev = ["build (==0.8.0)", "flake8 (==4.0.1)", "hashin (==0.17.0)", "pip-tools (==6.6.2)", "pytest (==7.1.2)", "Sphinx (==4.3.2)", "tox (==3.25.0)", "twine (==4.0.1)", "wheel (==0.37.1)", "black (==22.3.0)", "mypy (==0.961)"] [[package]] name = "certifi" -version = "2022.9.24" +version = "2023.5.7" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "certifi-2023.5.7-py3-none-any.whl", hash = "sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716"}, + {file = "certifi-2023.5.7.tar.gz", hash = "sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7"}, +] [[package]] name = "cffi" @@ -192,6 +316,72 @@ description = "Foreign Function Interface for Python calling C code." category = "dev" optional = false python-versions = "*" +files = [ + {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, + {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, + {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, + {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, + {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, + {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, + {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, + {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, + {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, + {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, + {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, + {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, + {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, + {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, + {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, + {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, + {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, + {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, + {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, + {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, + {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, + {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, + {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, + {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, + {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, + {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, + {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, + {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, + {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, + {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, + {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, + {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, + {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, + {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, + {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, +] [package.dependencies] pycparser = "*" @@ -203,17 +393,95 @@ description = "Validate configuration and produce human readable error messages. category = "dev" optional = false python-versions = ">=3.6.1" +files = [ + {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"}, + {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"}, +] [[package]] name = "charset-normalizer" -version = "2.1.1" +version = "3.1.0" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." category = "main" optional = false -python-versions = ">=3.6.0" - -[package.extras] -unicode_backport = ["unicodedata2"] +python-versions = ">=3.7.0" +files = [ + {file = "charset-normalizer-3.1.0.tar.gz", hash = "sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-win32.whl", hash = "sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448"}, + {file = "charset_normalizer-3.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-win32.whl", hash = "sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909"}, + {file = "charset_normalizer-3.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-win32.whl", hash = "sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974"}, + {file = "charset_normalizer-3.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-win32.whl", hash = "sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0"}, + {file = "charset_normalizer-3.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-win32.whl", hash = "sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1"}, + {file = "charset_normalizer-3.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b"}, + {file = "charset_normalizer-3.1.0-py3-none-any.whl", hash = "sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d"}, +] [[package]] name = "click" @@ -222,17 +490,45 @@ description = "Composable command line interface toolkit" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, + {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, +] [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} [[package]] name = "colorama" -version = "0.4.5" +version = "0.4.6" description = "Cross-platform colored terminal text." category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +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 = "comm" +version = "0.1.3" +description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "comm-0.1.3-py3-none-any.whl", hash = "sha256:16613c6211e20223f215fc6d3b266a247b6e2641bf4e0a3ad34cb1aff2aa3f37"}, + {file = "comm-0.1.3.tar.gz", hash = "sha256:a61efa9daffcfbe66fd643ba966f846a624e4e6d6767eda9cf6e993aadaab93e"}, +] + +[package.dependencies] +traitlets = ">=5.3" + +[package.extras] +lint = ["black (>=22.6.0)", "mdformat (>0.7)", "mdformat-gfm (>=0.3.5)", "ruff (>=0.0.156)"] +test = ["pytest"] +typing = ["mypy (>=0.990)"] [[package]] name = "coverage" @@ -241,6 +537,59 @@ description = "Code coverage measurement for Python" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "coverage-7.2.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:883123d0bbe1c136f76b56276074b0c79b5817dd4238097ffa64ac67257f4b6c"}, + {file = "coverage-7.2.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d2fbc2a127e857d2f8898aaabcc34c37771bf78a4d5e17d3e1f5c30cd0cbc62a"}, + {file = "coverage-7.2.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f3671662dc4b422b15776cdca89c041a6349b4864a43aa2350b6b0b03bbcc7f"}, + {file = "coverage-7.2.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780551e47d62095e088f251f5db428473c26db7829884323e56d9c0c3118791a"}, + {file = "coverage-7.2.5-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:066b44897c493e0dcbc9e6a6d9f8bbb6607ef82367cf6810d387c09f0cd4fe9a"}, + {file = "coverage-7.2.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b9a4ee55174b04f6af539218f9f8083140f61a46eabcaa4234f3c2a452c4ed11"}, + {file = "coverage-7.2.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:706ec567267c96717ab9363904d846ec009a48d5f832140b6ad08aad3791b1f5"}, + {file = "coverage-7.2.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ae453f655640157d76209f42c62c64c4d4f2c7f97256d3567e3b439bd5c9b06c"}, + {file = "coverage-7.2.5-cp310-cp310-win32.whl", hash = "sha256:f81c9b4bd8aa747d417407a7f6f0b1469a43b36a85748145e144ac4e8d303cb5"}, + {file = "coverage-7.2.5-cp310-cp310-win_amd64.whl", hash = "sha256:dc945064a8783b86fcce9a0a705abd7db2117d95e340df8a4333f00be5efb64c"}, + {file = "coverage-7.2.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:40cc0f91c6cde033da493227797be2826cbf8f388eaa36a0271a97a332bfd7ce"}, + {file = "coverage-7.2.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a66e055254a26c82aead7ff420d9fa8dc2da10c82679ea850d8feebf11074d88"}, + {file = "coverage-7.2.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c10fbc8a64aa0f3ed136b0b086b6b577bc64d67d5581acd7cc129af52654384e"}, + {file = "coverage-7.2.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a22cbb5ede6fade0482111fa7f01115ff04039795d7092ed0db43522431b4f2"}, + {file = "coverage-7.2.5-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:292300f76440651529b8ceec283a9370532f4ecba9ad67d120617021bb5ef139"}, + {file = "coverage-7.2.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7ff8f3fb38233035028dbc93715551d81eadc110199e14bbbfa01c5c4a43f8d8"}, + {file = "coverage-7.2.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:a08c7401d0b24e8c2982f4e307124b671c6736d40d1c39e09d7a8687bddf83ed"}, + {file = "coverage-7.2.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ef9659d1cda9ce9ac9585c045aaa1e59223b143f2407db0eaee0b61a4f266fb6"}, + {file = "coverage-7.2.5-cp311-cp311-win32.whl", hash = "sha256:30dcaf05adfa69c2a7b9f7dfd9f60bc8e36b282d7ed25c308ef9e114de7fc23b"}, + {file = "coverage-7.2.5-cp311-cp311-win_amd64.whl", hash = "sha256:97072cc90f1009386c8a5b7de9d4fc1a9f91ba5ef2146c55c1f005e7b5c5e068"}, + {file = "coverage-7.2.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:bebea5f5ed41f618797ce3ffb4606c64a5de92e9c3f26d26c2e0aae292f015c1"}, + {file = "coverage-7.2.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828189fcdda99aae0d6bf718ea766b2e715eabc1868670a0a07bf8404bf58c33"}, + {file = "coverage-7.2.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e8a95f243d01ba572341c52f89f3acb98a3b6d1d5d830efba86033dd3687ade"}, + {file = "coverage-7.2.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8834e5f17d89e05697c3c043d3e58a8b19682bf365048837383abfe39adaed5"}, + {file = "coverage-7.2.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d1f25ee9de21a39b3a8516f2c5feb8de248f17da7eead089c2e04aa097936b47"}, + {file = "coverage-7.2.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:1637253b11a18f453e34013c665d8bf15904c9e3c44fbda34c643fbdc9d452cd"}, + {file = "coverage-7.2.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8e575a59315a91ccd00c7757127f6b2488c2f914096077c745c2f1ba5b8c0969"}, + {file = "coverage-7.2.5-cp37-cp37m-win32.whl", hash = "sha256:509ecd8334c380000d259dc66feb191dd0a93b21f2453faa75f7f9cdcefc0718"}, + {file = "coverage-7.2.5-cp37-cp37m-win_amd64.whl", hash = "sha256:12580845917b1e59f8a1c2ffa6af6d0908cb39220f3019e36c110c943dc875b0"}, + {file = "coverage-7.2.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b5016e331b75310610c2cf955d9f58a9749943ed5f7b8cfc0bb89c6134ab0a84"}, + {file = "coverage-7.2.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:373ea34dca98f2fdb3e5cb33d83b6d801007a8074f992b80311fc589d3e6b790"}, + {file = "coverage-7.2.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a063aad9f7b4c9f9da7b2550eae0a582ffc7623dca1c925e50c3fbde7a579771"}, + {file = "coverage-7.2.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38c0a497a000d50491055805313ed83ddba069353d102ece8aef5d11b5faf045"}, + {file = "coverage-7.2.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2b3b05e22a77bb0ae1a3125126a4e08535961c946b62f30985535ed40e26614"}, + {file = "coverage-7.2.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0342a28617e63ad15d96dca0f7ae9479a37b7d8a295f749c14f3436ea59fdcb3"}, + {file = "coverage-7.2.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:cf97ed82ca986e5c637ea286ba2793c85325b30f869bf64d3009ccc1a31ae3fd"}, + {file = "coverage-7.2.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c2c41c1b1866b670573657d584de413df701f482574bad7e28214a2362cb1fd1"}, + {file = "coverage-7.2.5-cp38-cp38-win32.whl", hash = "sha256:10b15394c13544fce02382360cab54e51a9e0fd1bd61ae9ce012c0d1e103c813"}, + {file = "coverage-7.2.5-cp38-cp38-win_amd64.whl", hash = "sha256:a0b273fe6dc655b110e8dc89b8ec7f1a778d78c9fd9b4bda7c384c8906072212"}, + {file = "coverage-7.2.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5c587f52c81211d4530fa6857884d37f514bcf9453bdeee0ff93eaaf906a5c1b"}, + {file = "coverage-7.2.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4436cc9ba5414c2c998eaedee5343f49c02ca93b21769c5fdfa4f9d799e84200"}, + {file = "coverage-7.2.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6599bf92f33ab041e36e06d25890afbdf12078aacfe1f1d08c713906e49a3fe5"}, + {file = "coverage-7.2.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:857abe2fa6a4973f8663e039ead8d22215d31db613ace76e4a98f52ec919068e"}, + {file = "coverage-7.2.5-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6f5cab2d7f0c12f8187a376cc6582c477d2df91d63f75341307fcdcb5d60303"}, + {file = "coverage-7.2.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:aa387bd7489f3e1787ff82068b295bcaafbf6f79c3dad3cbc82ef88ce3f48ad3"}, + {file = "coverage-7.2.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:156192e5fd3dbbcb11cd777cc469cf010a294f4c736a2b2c891c77618cb1379a"}, + {file = "coverage-7.2.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bd3b4b8175c1db502adf209d06136c000df4d245105c8839e9d0be71c94aefe1"}, + {file = "coverage-7.2.5-cp39-cp39-win32.whl", hash = "sha256:ddc5a54edb653e9e215f75de377354e2455376f416c4378e1d43b08ec50acc31"}, + {file = "coverage-7.2.5-cp39-cp39-win_amd64.whl", hash = "sha256:338aa9d9883aaaad53695cb14ccdeb36d4060485bb9388446330bef9c361c252"}, + {file = "coverage-7.2.5-pp37.pp38.pp39-none-any.whl", hash = "sha256:8877d9b437b35a85c18e3c6499b23674684bf690f5d96c1006a1ef61f9fdf0f3"}, + {file = "coverage-7.2.5.tar.gz", hash = "sha256:f99ef080288f09ffc687423b8d60978cf3a465d3f404a18d1a05474bd8575a47"}, +] [package.dependencies] tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} @@ -250,11 +599,31 @@ toml = ["tomli"] [[package]] name = "debugpy" -version = "1.6.3" +version = "1.6.7" description = "An implementation of the Debug Adapter Protocol for Python" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "debugpy-1.6.7-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:b3e7ac809b991006ad7f857f016fa92014445085711ef111fdc3f74f66144096"}, + {file = "debugpy-1.6.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3876611d114a18aafef6383695dfc3f1217c98a9168c1aaf1a02b01ec7d8d1e"}, + {file = "debugpy-1.6.7-cp310-cp310-win32.whl", hash = "sha256:33edb4afa85c098c24cc361d72ba7c21bb92f501104514d4ffec1fb36e09c01a"}, + {file = "debugpy-1.6.7-cp310-cp310-win_amd64.whl", hash = "sha256:ed6d5413474e209ba50b1a75b2d9eecf64d41e6e4501977991cdc755dc83ab0f"}, + {file = "debugpy-1.6.7-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:38ed626353e7c63f4b11efad659be04c23de2b0d15efff77b60e4740ea685d07"}, + {file = "debugpy-1.6.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:279d64c408c60431c8ee832dfd9ace7c396984fd7341fa3116aee414e7dcd88d"}, + {file = "debugpy-1.6.7-cp37-cp37m-win32.whl", hash = "sha256:dbe04e7568aa69361a5b4c47b4493d5680bfa3a911d1e105fbea1b1f23f3eb45"}, + {file = "debugpy-1.6.7-cp37-cp37m-win_amd64.whl", hash = "sha256:f90a2d4ad9a035cee7331c06a4cf2245e38bd7c89554fe3b616d90ab8aab89cc"}, + {file = "debugpy-1.6.7-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:5224eabbbeddcf1943d4e2821876f3e5d7d383f27390b82da5d9558fd4eb30a9"}, + {file = "debugpy-1.6.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bae1123dff5bfe548ba1683eb972329ba6d646c3a80e6b4c06cd1b1dd0205e9b"}, + {file = "debugpy-1.6.7-cp38-cp38-win32.whl", hash = "sha256:9cd10cf338e0907fdcf9eac9087faa30f150ef5445af5a545d307055141dd7a4"}, + {file = "debugpy-1.6.7-cp38-cp38-win_amd64.whl", hash = "sha256:aaf6da50377ff4056c8ed470da24632b42e4087bc826845daad7af211e00faad"}, + {file = "debugpy-1.6.7-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:0679b7e1e3523bd7d7869447ec67b59728675aadfc038550a63a362b63029d2c"}, + {file = "debugpy-1.6.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de86029696e1b3b4d0d49076b9eba606c226e33ae312a57a46dca14ff370894d"}, + {file = "debugpy-1.6.7-cp39-cp39-win32.whl", hash = "sha256:d71b31117779d9a90b745720c0eab54ae1da76d5b38c8026c654f4a066b0130a"}, + {file = "debugpy-1.6.7-cp39-cp39-win_amd64.whl", hash = "sha256:c0ff93ae90a03b06d85b2c529eca51ab15457868a377c4cc40a23ab0e4e552a3"}, + {file = "debugpy-1.6.7-py2.py3-none-any.whl", hash = "sha256:53f7a456bc50706a0eaabecf2d3ce44c4d5010e46dfc65b6b81a518b42866267"}, + {file = "debugpy-1.6.7.zip", hash = "sha256:c4c2f0810fa25323abfdfa36cbbbb24e5c3b1a42cb762782de64439c575d67f2"}, +] [[package]] name = "decorator" @@ -263,6 +632,10 @@ description = "Decorators for Humans" category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, + {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, +] [[package]] name = "defusedxml" @@ -271,14 +644,22 @@ description = "XML bomb protection for Python stdlib modules" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, + {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, +] [[package]] name = "dill" -version = "0.3.5.1" +version = "0.3.6" description = "serialize all of python" category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" +python-versions = ">=3.7" +files = [ + {file = "dill-0.3.6-py3-none-any.whl", hash = "sha256:a07ffd2351b8c678dfc4a856a3005f8067aea51d6ba6c700796a4d9e280f39f0"}, + {file = "dill-0.3.6.tar.gz", hash = "sha256:e5db55f3687856d8fbdab002ed78544e1c4559a130302693d839dfe8f93f2373"}, +] [package.extras] graph = ["objgraph (>=1.7.2)"] @@ -290,6 +671,10 @@ description = "Distribution utilities" category = "dev" optional = false python-versions = "*" +files = [ + {file = "distlib-0.3.6-py2.py3-none-any.whl", hash = "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"}, + {file = "distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"}, +] [[package]] name = "docutils" @@ -298,6 +683,10 @@ description = "Docutils -- Python Documentation Utilities" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "docutils-0.18.1-py2.py3-none-any.whl", hash = "sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c"}, + {file = "docutils-0.18.1.tar.gz", hash = "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"}, +] [[package]] name = "dparse" @@ -306,6 +695,10 @@ description = "A parser for Python dependency files" category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "dparse-0.6.2-py3-none-any.whl", hash = "sha256:8097076f1dd26c377f30d4745e6ec18fef42f3bf493933b842ac5bafad8c345f"}, + {file = "dparse-0.6.2.tar.gz", hash = "sha256:d45255bda21f998bc7ddf2afd5e62505ba6134756ba2d42a84c56b0826614dfe"}, +] [package.dependencies] packaging = "*" @@ -316,46 +709,65 @@ conda = ["pyyaml"] pipenv = ["pipenv"] [[package]] -name = "entrypoints" -version = "0.4" -description = "Discover and load entry points from installed packages." +name = "exceptiongroup" +version = "1.1.1" +description = "Backport of PEP 654 (exception groups)" category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.1.1-py3-none-any.whl", hash = "sha256:232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e"}, + {file = "exceptiongroup-1.1.1.tar.gz", hash = "sha256:d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785"}, +] + +[package.extras] +test = ["pytest (>=6)"] [[package]] name = "executing" -version = "1.1.1" +version = "1.2.0" description = "Get the currently executing AST node of a frame, and other information" category = "dev" optional = false python-versions = "*" +files = [ + {file = "executing-1.2.0-py2.py3-none-any.whl", hash = "sha256:0314a69e37426e3608aada02473b4161d4caf5a4b244d1d0c48072b8fee7bacc"}, + {file = "executing-1.2.0.tar.gz", hash = "sha256:19da64c18d2d851112f09c287f8d3dbbdf725ab0e569077efb6cdcbd3497c107"}, +] [package.extras] -tests = ["asttokens", "pytest", "littleutils", "rich"] +tests = ["asttokens", "littleutils", "pytest", "rich"] [[package]] name = "fastjsonschema" -version = "2.16.2" +version = "2.16.3" description = "Fastest Python implementation of JSON schema" category = "dev" optional = false python-versions = "*" +files = [ + {file = "fastjsonschema-2.16.3-py3-none-any.whl", hash = "sha256:04fbecc94300436f628517b05741b7ea009506ce8f946d40996567c669318490"}, + {file = "fastjsonschema-2.16.3.tar.gz", hash = "sha256:4a30d6315a68c253cfa8f963b9697246315aa3db89f98b97235e345dedfb0b8e"}, +] [package.extras] -devel = ["colorama", "jsonschema", "json-spec", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] +devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] [[package]] name = "filelock" -version = "3.8.0" +version = "3.12.0" description = "A platform independent file lock." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "filelock-3.12.0-py3-none-any.whl", hash = "sha256:ad98852315c2ab702aeb628412cbf7e95b7ce8c3bf9565670b4eaecf1db370a9"}, + {file = "filelock-3.12.0.tar.gz", hash = "sha256:fc03ae43288c013d2ea83c8597001b1129db351aad9c57fe2409327916b8e718"}, +] [package.extras] -docs = ["furo (>=2022.6.21)", "sphinx (>=5.1.1)", "sphinx-autodoc-typehints (>=1.19.1)"] -testing = ["covdefaults (>=2.2)", "coverage (>=6.4.2)", "pytest (>=7.1.2)", "pytest-cov (>=3)", "pytest-timeout (>=2.1)"] +docs = ["furo (>=2023.3.27)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.2.3)", "diff-cover (>=7.5)", "pytest (>=7.3.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)", "pytest-timeout (>=2.1)"] [[package]] name = "flake8" @@ -364,6 +776,10 @@ description = "the modular source code checker: pep8 pyflakes and co" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "flake8-4.0.1-py2.py3-none-any.whl", hash = "sha256:479b1304f72536a55948cb40a32dce8bb0ffe3501e26eaf292c7e60eb5e0428d"}, + {file = "flake8-4.0.1.tar.gz", hash = "sha256:806e034dda44114815e23c16ef92f95c91e4c71100ff52813adf7132a6ad870d"}, +] [package.dependencies] mccabe = ">=0.6.0,<0.7.0" @@ -372,34 +788,58 @@ pyflakes = ">=2.4.0,<2.5.0" [[package]] name = "flake8-docstrings" -version = "1.6.0" +version = "1.7.0" description = "Extension for flake8 which uses pydocstyle to check docstrings" category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.7" +files = [ + {file = "flake8_docstrings-1.7.0-py2.py3-none-any.whl", hash = "sha256:51f2344026da083fc084166a9353f5082b01f72901df422f74b4d953ae88ac75"}, + {file = "flake8_docstrings-1.7.0.tar.gz", hash = "sha256:4c8cc748dc16e6869728699e5d0d685da9a10b0ea718e090b1ba088e67a941af"}, +] [package.dependencies] flake8 = ">=3" pydocstyle = ">=2.1" +[[package]] +name = "fqdn" +version = "1.5.1" +description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" +files = [ + {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"}, + {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, +] + [[package]] name = "gitdb" -version = "4.0.9" +version = "4.0.10" description = "Git Object Database" category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" +files = [ + {file = "gitdb-4.0.10-py3-none-any.whl", hash = "sha256:c286cf298426064079ed96a9e4a9d39e7f3e9bf15ba60701e95f5492f28415c7"}, + {file = "gitdb-4.0.10.tar.gz", hash = "sha256:6eb990b69df4e15bad899ea868dc46572c3f75339735663b81de79b06f17eb9a"}, +] [package.dependencies] smmap = ">=3.0.1,<6" [[package]] name = "gitpython" -version = "3.1.28" -description = "GitPython is a python library used to interact with Git repositories" +version = "3.1.31" +description = "GitPython is a Python library used to interact with Git repositories" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "GitPython-3.1.31-py3-none-any.whl", hash = "sha256:f04893614f6aa713a60cbbe1e6a97403ef633103cdd0ef5eb6efe0deb98dbe8d"}, + {file = "GitPython-3.1.31.tar.gz", hash = "sha256:8ce3bcf69adfdf7c7d503e78fd3b1c492af782d58893b650adb2ac8912ddd573"}, +] [package.dependencies] gitdb = ">=4.0.1,<5" @@ -411,18 +851,84 @@ description = "Lightweight in-process concurrent programming" category = "dev" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" - +files = [ + {file = "greenlet-2.0.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:bdfea8c661e80d3c1c99ad7c3ff74e6e87184895bbaca6ee8cc61209f8b9b85d"}, + {file = "greenlet-2.0.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:9d14b83fab60d5e8abe587d51c75b252bcc21683f24699ada8fb275d7712f5a9"}, + {file = "greenlet-2.0.2-cp27-cp27m-win32.whl", hash = "sha256:6c3acb79b0bfd4fe733dff8bc62695283b57949ebcca05ae5c129eb606ff2d74"}, + {file = "greenlet-2.0.2-cp27-cp27m-win_amd64.whl", hash = "sha256:283737e0da3f08bd637b5ad058507e578dd462db259f7f6e4c5c365ba4ee9343"}, + {file = "greenlet-2.0.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:d27ec7509b9c18b6d73f2f5ede2622441de812e7b1a80bbd446cb0633bd3d5ae"}, + {file = "greenlet-2.0.2-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:30bcf80dda7f15ac77ba5af2b961bdd9dbc77fd4ac6105cee85b0d0a5fcf74df"}, + {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26fbfce90728d82bc9e6c38ea4d038cba20b7faf8a0ca53a9c07b67318d46088"}, + {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9190f09060ea4debddd24665d6804b995a9c122ef5917ab26e1566dcc712ceeb"}, + {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d75209eed723105f9596807495d58d10b3470fa6732dd6756595e89925ce2470"}, + {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3a51c9751078733d88e013587b108f1b7a1fb106d402fb390740f002b6f6551a"}, + {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:76ae285c8104046b3a7f06b42f29c7b73f77683df18c49ab5af7983994c2dd91"}, + {file = "greenlet-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:2d4686f195e32d36b4d7cf2d166857dbd0ee9f3d20ae349b6bf8afc8485b3645"}, + {file = "greenlet-2.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c4302695ad8027363e96311df24ee28978162cdcdd2006476c43970b384a244c"}, + {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c48f54ef8e05f04d6eff74b8233f6063cb1ed960243eacc474ee73a2ea8573ca"}, + {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a1846f1b999e78e13837c93c778dcfc3365902cfb8d1bdb7dd73ead37059f0d0"}, + {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a06ad5312349fec0ab944664b01d26f8d1f05009566339ac6f63f56589bc1a2"}, + {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:eff4eb9b7eb3e4d0cae3d28c283dc16d9bed6b193c2e1ace3ed86ce48ea8df19"}, + {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5454276c07d27a740c5892f4907c86327b632127dd9abec42ee62e12427ff7e3"}, + {file = "greenlet-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:7cafd1208fdbe93b67c7086876f061f660cfddc44f404279c1585bbf3cdc64c5"}, + {file = "greenlet-2.0.2-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:910841381caba4f744a44bf81bfd573c94e10b3045ee00de0cbf436fe50673a6"}, + {file = "greenlet-2.0.2-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:18a7f18b82b52ee85322d7a7874e676f34ab319b9f8cce5de06067384aa8ff43"}, + {file = "greenlet-2.0.2-cp35-cp35m-win32.whl", hash = "sha256:03a8f4f3430c3b3ff8d10a2a86028c660355ab637cee9333d63d66b56f09d52a"}, + {file = "greenlet-2.0.2-cp35-cp35m-win_amd64.whl", hash = "sha256:4b58adb399c4d61d912c4c331984d60eb66565175cdf4a34792cd9600f21b394"}, + {file = "greenlet-2.0.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:703f18f3fda276b9a916f0934d2fb6d989bf0b4fb5a64825260eb9bfd52d78f0"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:32e5b64b148966d9cccc2c8d35a671409e45f195864560829f395a54226408d3"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dd11f291565a81d71dab10b7033395b7a3a5456e637cf997a6f33ebdf06f8db"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0f72c9ddb8cd28532185f54cc1453f2c16fb417a08b53a855c4e6a418edd099"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd021c754b162c0fb55ad5d6b9d960db667faad0fa2ff25bb6e1301b0b6e6a75"}, + {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:3c9b12575734155d0c09d6c3e10dbd81665d5c18e1a7c6597df72fd05990c8cf"}, + {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b9ec052b06a0524f0e35bd8790686a1da006bd911dd1ef7d50b77bfbad74e292"}, + {file = "greenlet-2.0.2-cp36-cp36m-win32.whl", hash = "sha256:dbfcfc0218093a19c252ca8eb9aee3d29cfdcb586df21049b9d777fd32c14fd9"}, + {file = "greenlet-2.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:9f35ec95538f50292f6d8f2c9c9f8a3c6540bbfec21c9e5b4b751e0a7c20864f"}, + {file = "greenlet-2.0.2-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:d5508f0b173e6aa47273bdc0a0b5ba055b59662ba7c7ee5119528f466585526b"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:f82d4d717d8ef19188687aa32b8363e96062911e63ba22a0cff7802a8e58e5f1"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9c59a2120b55788e800d82dfa99b9e156ff8f2227f07c5e3012a45a399620b7"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2780572ec463d44c1d3ae850239508dbeb9fed38e294c68d19a24d925d9223ca"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:937e9020b514ceedb9c830c55d5c9872abc90f4b5862f89c0887033ae33c6f73"}, + {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:36abbf031e1c0f79dd5d596bfaf8e921c41df2bdf54ee1eed921ce1f52999a86"}, + {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:18e98fb3de7dba1c0a852731c3070cf022d14f0d68b4c87a19cc1016f3bb8b33"}, + {file = "greenlet-2.0.2-cp37-cp37m-win32.whl", hash = "sha256:3f6ea9bd35eb450837a3d80e77b517ea5bc56b4647f5502cd28de13675ee12f7"}, + {file = "greenlet-2.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:7492e2b7bd7c9b9916388d9df23fa49d9b88ac0640db0a5b4ecc2b653bf451e3"}, + {file = "greenlet-2.0.2-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:b864ba53912b6c3ab6bcb2beb19f19edd01a6bfcbdfe1f37ddd1778abfe75a30"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:ba2956617f1c42598a308a84c6cf021a90ff3862eddafd20c3333d50f0edb45b"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc3a569657468b6f3fb60587e48356fe512c1754ca05a564f11366ac9e306526"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8eab883b3b2a38cc1e050819ef06a7e6344d4a990d24d45bc6f2cf959045a45b"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acd2162a36d3de67ee896c43effcd5ee3de247eb00354db411feb025aa319857"}, + {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0bf60faf0bc2468089bdc5edd10555bab6e85152191df713e2ab1fcc86382b5a"}, + {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b0ef99cdbe2b682b9ccbb964743a6aca37905fda5e0452e5ee239b1654d37f2a"}, + {file = "greenlet-2.0.2-cp38-cp38-win32.whl", hash = "sha256:b80f600eddddce72320dbbc8e3784d16bd3fb7b517e82476d8da921f27d4b249"}, + {file = "greenlet-2.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:4d2e11331fc0c02b6e84b0d28ece3a36e0548ee1a1ce9ddde03752d9b79bba40"}, + {file = "greenlet-2.0.2-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:88d9ab96491d38a5ab7c56dd7a3cc37d83336ecc564e4e8816dbed12e5aaefc8"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:561091a7be172ab497a3527602d467e2b3fbe75f9e783d8b8ce403fa414f71a6"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:971ce5e14dc5e73715755d0ca2975ac88cfdaefcaab078a284fea6cfabf866df"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be4ed120b52ae4d974aa40215fcdfde9194d63541c7ded40ee12eb4dda57b76b"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94c817e84245513926588caf1152e3b559ff794d505555211ca041f032abbb6b"}, + {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1a819eef4b0e0b96bb0d98d797bef17dc1b4a10e8d7446be32d1da33e095dbb8"}, + {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7efde645ca1cc441d6dc4b48c0f7101e8d86b54c8530141b09fd31cef5149ec9"}, + {file = "greenlet-2.0.2-cp39-cp39-win32.whl", hash = "sha256:ea9872c80c132f4663822dd2a08d404073a5a9b5ba6155bea72fb2a79d1093b5"}, + {file = "greenlet-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:db1a39669102a1d8d12b57de2bb7e2ec9066a6f2b3da35ae511ff93b01b5d564"}, + {file = "greenlet-2.0.2.tar.gz", hash = "sha256:e7c8dc13af7db097bed64a051d2dd49e9f0af495c26995c00a9ee842690d34c0"}, +] + [package.extras] -docs = ["sphinx", "docutils (<0.18)"] +docs = ["Sphinx", "docutils (<0.18)"] test = ["objgraph", "psutil"] [[package]] name = "identify" -version = "2.5.6" +version = "2.5.24" description = "File identification library for Python" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "identify-2.5.24-py2.py3-none-any.whl", hash = "sha256:986dbfb38b1140e763e413e6feb44cd731faf72d1909543178aa79b0e258265d"}, + {file = "identify-2.5.24.tar.gz", hash = "sha256:0aac67d5b4812498056d28a9a512a483f5085cc28640b02b258a59dac34301d4"}, +] [package.extras] license = ["ukkonen"] @@ -434,6 +940,10 @@ description = "Internationalized Domain Names in Applications (IDNA)" category = "main" 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 = "imagesize" @@ -442,62 +952,88 @@ description = "Getting image size from png/jpeg/jpeg2000/gif file" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, + {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, +] [[package]] name = "importlib-metadata" -version = "5.0.0" +version = "6.6.0" description = "Read metadata from Python packages" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "importlib_metadata-6.6.0-py3-none-any.whl", hash = "sha256:43dd286a2cd8995d5eaef7fee2066340423b818ed3fd70adf0bad5f1fac53fed"}, + {file = "importlib_metadata-6.6.0.tar.gz", hash = "sha256:92501cdf9cc66ebd3e612f1b4f0c0765dfa42f0fa38ffb319b6bd84dd675d705"}, +] [package.dependencies] zipp = ">=0.5" [package.extras] -docs = ["sphinx (>=3.5)", "jaraco.packaging (>=9)", "rst.linker (>=1.9)", "furo", "jaraco.tidelift (>=1.4)"] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] perf = ["ipython"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "flake8 (<5)", "pytest-cov", "pytest-enabler (>=1.3)", "packaging", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)", "importlib-resources (>=1.3)"] +testing = ["flake8 (<5)", "flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)"] [[package]] name = "iniconfig" -version = "1.1.1" -description = "iniconfig: brain-dead simple config-ini parsing" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" category = "dev" optional = false -python-versions = "*" +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 = "ipykernel" -version = "6.16.0" +version = "6.23.0" description = "IPython Kernel for Jupyter" category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "ipykernel-6.23.0-py3-none-any.whl", hash = "sha256:fc886f1dcdc0ec17f277e4d21fd071c857d381adcb04f3f3735d25325ca323c6"}, + {file = "ipykernel-6.23.0.tar.gz", hash = "sha256:bd6f487d9e2744c84f6e667d46462d7647a4c862e70e08282f05a52b9d4b705f"}, +] [package.dependencies] appnope = {version = "*", markers = "platform_system == \"Darwin\""} -debugpy = ">=1.0" +comm = ">=0.1.1" +debugpy = ">=1.6.5" ipython = ">=7.23.1" jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" matplotlib-inline = ">=0.1" nest-asyncio = "*" packaging = "*" psutil = "*" -pyzmq = ">=17" +pyzmq = ">=20" tornado = ">=6.1" -traitlets = ">=5.1.0" +traitlets = ">=5.4.0" [package.extras] -test = ["flaky", "ipyparallel", "pre-commit", "pytest-cov", "pytest-timeout", "pytest (>=6.0)"] +cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] +pyqt5 = ["pyqt5"] +pyside6 = ["pyside6"] +test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio", "pytest-cov", "pytest-timeout"] [[package]] name = "ipython" -version = "8.5.0" +version = "8.13.2" description = "IPython: Productive Interactive Computing" category = "dev" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +files = [ + {file = "ipython-8.13.2-py3-none-any.whl", hash = "sha256:ffca270240fbd21b06b2974e14a86494d6d29290184e788275f55e0b55914926"}, + {file = "ipython-8.13.2.tar.gz", hash = "sha256:7dff3fad32b97f6488e02f87b970f309d082f758d7b7fc252e3b19ee0e432dbb"}, +] [package.dependencies] appnope = {version = "*", markers = "sys_platform == \"darwin\""} @@ -508,15 +1044,16 @@ jedi = ">=0.16" matplotlib-inline = "*" pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} pickleshare = "*" -prompt-toolkit = ">3.0.1,<3.1.0" +prompt-toolkit = ">=3.0.30,<3.0.37 || >3.0.37,<3.1.0" pygments = ">=2.4.0" stack-data = "*" traitlets = ">=5" +typing-extensions = {version = "*", markers = "python_version < \"3.10\""} [package.extras] -all = ["black", "Sphinx (>=1.3)", "ipykernel", "nbconvert", "nbformat", "ipywidgets", "notebook", "ipyparallel", "qtconsole", "pytest (<7.1)", "pytest-asyncio", "testpath", "curio", "matplotlib (!=3.2.0)", "numpy (>=1.19)", "pandas", "trio"] +all = ["black", "curio", "docrepr", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.21)", "pandas", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"] black = ["black"] -doc = ["Sphinx (>=1.3)"] +doc = ["docrepr", "ipykernel", "matplotlib", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "typing-extensions"] kernel = ["ipykernel"] nbconvert = ["nbconvert"] nbformat = ["nbformat"] @@ -524,7 +1061,7 @@ notebook = ["ipywidgets", "notebook"] parallel = ["ipyparallel"] qtconsole = ["qtconsole"] test = ["pytest (<7.1)", "pytest-asyncio", "testpath"] -test_extra = ["pytest (<7.1)", "pytest-asyncio", "testpath", "curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.19)", "pandas", "trio"] +test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pandas", "pytest (<7.1)", "pytest-asyncio", "testpath", "trio"] [[package]] name = "ipython-genutils" @@ -533,53 +1070,85 @@ description = "Vestigial utilities from IPython" category = "dev" optional = false python-versions = "*" +files = [ + {file = "ipython_genutils-0.2.0-py2.py3-none-any.whl", hash = "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8"}, + {file = "ipython_genutils-0.2.0.tar.gz", hash = "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"}, +] [[package]] name = "ipywidgets" -version = "8.0.2" +version = "8.0.6" description = "Jupyter interactive widgets" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "ipywidgets-8.0.6-py3-none-any.whl", hash = "sha256:a60bf8d2528997e05ac83fd19ea2fbe65f2e79fbe1b2b35779bdfc46c2941dcc"}, + {file = "ipywidgets-8.0.6.tar.gz", hash = "sha256:de7d779f2045d60de9f6c25f653fdae2dba57898e6a1284494b3ba20b6893bb8"}, +] [package.dependencies] ipykernel = ">=4.5.1" ipython = ">=6.1.0" -jupyterlab-widgets = ">=3.0,<4.0" +jupyterlab-widgets = ">=3.0.7,<3.1.0" traitlets = ">=4.3.1" -widgetsnbextension = ">=4.0,<5.0" +widgetsnbextension = ">=4.0.7,<4.1.0" [package.extras] -test = ["jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] +test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] + +[[package]] +name = "isoduration" +version = "20.11.0" +description = "Operations with ISO 8601 durations" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"}, + {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"}, +] + +[package.dependencies] +arrow = ">=0.15.0" [[package]] name = "isort" -version = "5.10.1" +version = "5.12.0" description = "A Python utility / library to sort Python imports." category = "dev" optional = false -python-versions = ">=3.6.1,<4.0" +python-versions = ">=3.8.0" +files = [ + {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, + {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, +] [package.extras] -pipfile_deprecated_finder = ["pipreqs", "requirementslib"] -requirements_deprecated_finder = ["pipreqs", "pip-api"] -colors = ["colorama (>=0.4.3,<0.5.0)"] +colors = ["colorama (>=0.4.3)"] +pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib"] plugins = ["setuptools"] +requirements-deprecated-finder = ["pip-api", "pipreqs"] [[package]] name = "jedi" -version = "0.18.1" +version = "0.18.2" description = "An autocompletion tool for Python that can be used for text editors." category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "jedi-0.18.2-py2.py3-none-any.whl", hash = "sha256:203c1fd9d969ab8f2119ec0a3342e0b49910045abe6af0a3ae83a5764d54639e"}, + {file = "jedi-0.18.2.tar.gz", hash = "sha256:bae794c30d07f6d910d32a7048af09b5a39ed740918da923c6b780790ebac612"}, +] [package.dependencies] parso = ">=0.8.0,<0.9.0" [package.extras] +docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] -testing = ["Django (<3.1)", "colorama", "docopt", "pytest (<7.0.0)"] +testing = ["Django (<3.1)", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] [[package]] name = "jinja2" @@ -588,6 +1157,10 @@ description = "A very fast and expressive template engine." category = "dev" 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" @@ -595,17 +1168,41 @@ MarkupSafe = ">=2.0" [package.extras] i18n = ["Babel (>=2.7)"] +[[package]] +name = "jsonpointer" +version = "2.3" +description = "Identify specific nodes in a JSON document (RFC 6901)" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "jsonpointer-2.3-py2.py3-none-any.whl", hash = "sha256:51801e558539b4e9cd268638c078c6c5746c9ac96bc38152d443400e4f3793e9"}, + {file = "jsonpointer-2.3.tar.gz", hash = "sha256:97cba51526c829282218feb99dab1b1e6bdf8efd1c43dc9d57be093c0d69c99a"}, +] + [[package]] name = "jsonschema" -version = "4.16.0" +version = "4.17.3" description = "An implementation of JSON Schema validation for Python" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "jsonschema-4.17.3-py3-none-any.whl", hash = "sha256:a870ad254da1a8ca84b6a2905cac29d265f805acc57af304784962a2aa6508f6"}, + {file = "jsonschema-4.17.3.tar.gz", hash = "sha256:0f864437ab8b6076ba6707453ef8f98a6a0d512a80e93f8abdb676f737ecb60d"}, +] [package.dependencies] attrs = ">=17.4.0" +fqdn = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +idna = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +isoduration = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format-nongpl\""} pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2" +rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} +uri-template = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +webcolors = {version = ">=1.11", optional = true, markers = "extra == \"format-nongpl\""} [package.extras] format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] @@ -618,6 +1215,11 @@ description = "Jupyter metapackage. Install all the Jupyter components in one go category = "dev" optional = false python-versions = "*" +files = [ + {file = "jupyter-1.0.0-py2.py3-none-any.whl", hash = "sha256:5b290f93b98ffbc21c0c7e749f054b3267782166d72fa5e3ed1ed4eaf34a2b78"}, + {file = "jupyter-1.0.0.tar.gz", hash = "sha256:d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f"}, + {file = "jupyter-1.0.0.zip", hash = "sha256:3e1f86076bbb7c8c207829390305a2b1fe836d471ed54be66a3b8c41e7f46cc7"}, +] [package.dependencies] ipykernel = "*" @@ -634,6 +1236,10 @@ description = "A defined interface for working with a cache of jupyter notebooks category = "dev" optional = false python-versions = "~=3.8" +files = [ + {file = "jupyter-cache-0.6.1.tar.gz", hash = "sha256:26f83901143edf4af2f3ff5a91e2d2ad298e46e2cee03c8071d37a23a63ccbfc"}, + {file = "jupyter_cache-0.6.1-py3-none-any.whl", hash = "sha256:2fce7d4975805c77f75bdfc1bc2e82bc538b8e5b1af27f2f5e06d55b9f996a82"}, +] [package.dependencies] attrs = "*" @@ -647,64 +1253,161 @@ tabulate = "*" [package.extras] cli = ["click-log"] -code_style = ["pre-commit (>=2.12,<4.0)"] -rtd = ["nbdime", "ipykernel", "jupytext", "myst-nb", "sphinx-book-theme", "sphinx-copybutton"] -testing = ["nbdime", "coverage", "ipykernel", "jupytext", "matplotlib", "nbformat (>=5.1)", "numpy", "pandas", "pytest (>=6,<8)", "pytest-cov", "pytest-regressions", "sympy"] +code-style = ["pre-commit (>=2.12,<4.0)"] +rtd = ["ipykernel", "jupytext", "myst-nb", "nbdime", "sphinx-book-theme", "sphinx-copybutton"] +testing = ["coverage", "ipykernel", "jupytext", "matplotlib", "nbdime", "nbformat (>=5.1)", "numpy", "pandas", "pytest (>=6,<8)", "pytest-cov", "pytest-regressions", "sympy"] [[package]] name = "jupyter-client" -version = "7.3.5" +version = "8.2.0" description = "Jupyter protocol implementation and client libraries" category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "jupyter_client-8.2.0-py3-none-any.whl", hash = "sha256:b18219aa695d39e2ad570533e0d71fb7881d35a873051054a84ee2a17c4b7389"}, + {file = "jupyter_client-8.2.0.tar.gz", hash = "sha256:9fe233834edd0e6c0aa5f05ca2ab4bdea1842bfd2d8a932878212fc5301ddaf0"}, +] [package.dependencies] -entrypoints = "*" -jupyter-core = ">=4.9.2" -nest-asyncio = ">=1.5.4" +importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" python-dateutil = ">=2.8.2" pyzmq = ">=23.0" tornado = ">=6.2" -traitlets = "*" +traitlets = ">=5.3" [package.extras] -doc = ["ipykernel", "myst-parser", "sphinx-rtd-theme", "sphinx (>=1.3.6)", "sphinxcontrib-github-alt"] -test = ["codecov", "coverage", "ipykernel (>=6.5)", "ipython", "mypy", "pre-commit", "pytest", "pytest-asyncio (>=0.18)", "pytest-cov", "pytest-timeout"] +docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] [[package]] name = "jupyter-console" -version = "6.4.4" +version = "6.6.3" description = "Jupyter terminal console" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "jupyter_console-6.6.3-py3-none-any.whl", hash = "sha256:309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485"}, + {file = "jupyter_console-6.6.3.tar.gz", hash = "sha256:566a4bf31c87adbfadf22cdf846e3069b59a71ed5da71d6ba4d8aaad14a53539"}, +] [package.dependencies] -ipykernel = "*" +ipykernel = ">=6.14" ipython = "*" jupyter-client = ">=7.0.0" -prompt-toolkit = ">=2.0.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.1.0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +prompt-toolkit = ">=3.0.30" pygments = "*" +pyzmq = ">=17" +traitlets = ">=5.4" [package.extras] -test = ["pexpect"] +test = ["flaky", "pexpect", "pytest"] [[package]] name = "jupyter-core" -version = "4.11.1" +version = "5.3.0" description = "Jupyter core package. A base package on which Jupyter projects rely." category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "jupyter_core-5.3.0-py3-none-any.whl", hash = "sha256:d4201af84559bc8c70cead287e1ab94aeef3c512848dde077b7684b54d67730d"}, + {file = "jupyter_core-5.3.0.tar.gz", hash = "sha256:6db75be0c83edbf1b7c9f91ec266a9a24ef945da630f3120e1a0046dc13713fc"}, +] [package.dependencies] -pywin32 = {version = ">=1.0", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} -traitlets = "*" +platformdirs = ">=2.5" +pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} +traitlets = ">=5.3" [package.extras] +docs = ["myst-parser", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] +[[package]] +name = "jupyter-events" +version = "0.6.3" +description = "Jupyter Event System library" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyter_events-0.6.3-py3-none-any.whl", hash = "sha256:57a2749f87ba387cd1bfd9b22a0875b889237dbf2edc2121ebb22bde47036c17"}, + {file = "jupyter_events-0.6.3.tar.gz", hash = "sha256:9a6e9995f75d1b7146b436ea24d696ce3a35bfa8bfe45e0c33c334c79464d0b3"}, +] + +[package.dependencies] +jsonschema = {version = ">=3.2.0", extras = ["format-nongpl"]} +python-json-logger = ">=2.0.4" +pyyaml = ">=5.3" +rfc3339-validator = "*" +rfc3986-validator = ">=0.1.1" +traitlets = ">=5.3" + +[package.extras] +cli = ["click", "rich"] +docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme", "sphinxcontrib-spelling"] +test = ["click", "coverage", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "pytest-cov", "rich"] + +[[package]] +name = "jupyter-server" +version = "2.5.0" +description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." +category = "dev" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_server-2.5.0-py3-none-any.whl", hash = "sha256:e6bc1e9e96d7c55b9ce9699ff6cb9a910581fe7349e27c40389acb67632e24c0"}, + {file = "jupyter_server-2.5.0.tar.gz", hash = "sha256:9fde612791f716fd34d610cd939704a9639643744751ba66e7ee8fdc9cead07e"}, +] + +[package.dependencies] +anyio = ">=3.1.0" +argon2-cffi = "*" +jinja2 = "*" +jupyter-client = ">=7.4.4" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +jupyter-events = ">=0.4.0" +jupyter-server-terminals = "*" +nbconvert = ">=6.4.4" +nbformat = ">=5.3.0" +packaging = "*" +prometheus-client = "*" +pywinpty = {version = "*", markers = "os_name == \"nt\""} +pyzmq = ">=24" +send2trash = "*" +terminado = ">=0.8.3" +tornado = ">=6.2.0" +traitlets = ">=5.6.0" +websocket-client = "*" + +[package.extras] +docs = ["docutils (<0.20)", "ipykernel", "jinja2", "jupyter-client", "jupyter-server", "mistune (<1.0.0)", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] +test = ["ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.4)", "pytest-timeout", "requests"] + +[[package]] +name = "jupyter-server-terminals" +version = "0.4.4" +description = "A Jupyter Server Extension Providing Terminals." +category = "dev" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_server_terminals-0.4.4-py3-none-any.whl", hash = "sha256:75779164661cec02a8758a5311e18bb8eb70c4e86c6b699403100f1585a12a36"}, + {file = "jupyter_server_terminals-0.4.4.tar.gz", hash = "sha256:57ab779797c25a7ba68e97bcfb5d7740f2b5e8a83b5e8102b10438041a7eac5d"}, +] + +[package.dependencies] +pywinpty = {version = ">=2.0.3", markers = "os_name == \"nt\""} +terminado = ">=0.8.3" + +[package.extras] +docs = ["jinja2", "jupyter-server", "mistune (<3.0)", "myst-parser", "nbformat", "packaging", "pydata-sphinx-theme", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado"] +test = ["coverage", "jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-cov", "pytest-jupyter[server] (>=0.5.3)", "pytest-timeout"] + [[package]] name = "jupyterlab-pygments" version = "0.2.2" @@ -712,22 +1415,68 @@ description = "Pygments theme using JupyterLab CSS variables" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "jupyterlab_pygments-0.2.2-py2.py3-none-any.whl", hash = "sha256:2405800db07c9f770863bcf8049a529c3dd4d3e28536638bd7c1c01d2748309f"}, + {file = "jupyterlab_pygments-0.2.2.tar.gz", hash = "sha256:7405d7fde60819d905a9fa8ce89e4cd830e318cdad22a0030f7a901da705585d"}, +] [[package]] name = "jupyterlab-widgets" -version = "3.0.3" +version = "3.0.7" description = "Jupyter interactive widgets for JupyterLab" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "jupyterlab_widgets-3.0.7-py3-none-any.whl", hash = "sha256:c73f8370338ec19f1bec47254752d6505b03601cbd5a67e6a0b184532f73a459"}, + {file = "jupyterlab_widgets-3.0.7.tar.gz", hash = "sha256:c3a50ed5bf528a0c7a869096503af54702f86dda1db469aee1c92dc0c01b43ca"}, +] [[package]] name = "lazy-object-proxy" -version = "1.7.1" +version = "1.9.0" description = "A fast and thorough lazy object proxy." category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" +files = [ + {file = "lazy-object-proxy-1.9.0.tar.gz", hash = "sha256:659fb5809fa4629b8a1ac5106f669cfc7bef26fbb389dda53b3e010d1ac4ebae"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b40387277b0ed2d0602b8293b94d7257e17d1479e257b4de114ea11a8cb7f2d7"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8c6cfb338b133fbdbc5cfaa10fe3c6aeea827db80c978dbd13bc9dd8526b7d4"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:721532711daa7db0d8b779b0bb0318fa87af1c10d7fe5e52ef30f8eff254d0cd"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:66a3de4a3ec06cd8af3f61b8e1ec67614fbb7c995d02fa224813cb7afefee701"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1aa3de4088c89a1b69f8ec0dcc169aa725b0ff017899ac568fe44ddc1396df46"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-win32.whl", hash = "sha256:f0705c376533ed2a9e5e97aacdbfe04cecd71e0aa84c7c0595d02ef93b6e4455"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:ea806fd4c37bf7e7ad82537b0757999264d5f70c45468447bb2b91afdbe73a6e"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:946d27deaff6cf8452ed0dba83ba38839a87f4f7a9732e8f9fd4107b21e6ff07"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79a31b086e7e68b24b99b23d57723ef7e2c6d81ed21007b6281ebcd1688acb0a"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f699ac1c768270c9e384e4cbd268d6e67aebcfae6cd623b4d7c3bfde5a35db59"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bfb38f9ffb53b942f2b5954e0f610f1e721ccebe9cce9025a38c8ccf4a5183a4"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:189bbd5d41ae7a498397287c408617fe5c48633e7755287b21d741f7db2706a9"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-win32.whl", hash = "sha256:81fc4d08b062b535d95c9ea70dbe8a335c45c04029878e62d744bdced5141586"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:f2457189d8257dd41ae9b434ba33298aec198e30adf2dcdaaa3a28b9994f6adb"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d9e25ef10a39e8afe59a5c348a4dbf29b4868ab76269f81ce1674494e2565a6e"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cbf9b082426036e19c6924a9ce90c740a9861e2bdc27a4834fd0a910742ac1e8"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f5fa4a61ce2438267163891961cfd5e32ec97a2c444e5b842d574251ade27d2"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:8fa02eaab317b1e9e03f69aab1f91e120e7899b392c4fc19807a8278a07a97e8"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e7c21c95cae3c05c14aafffe2865bbd5e377cfc1348c4f7751d9dc9a48ca4bda"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win32.whl", hash = "sha256:f12ad7126ae0c98d601a7ee504c1122bcef553d1d5e0c3bfa77b16b3968d2734"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:edd20c5a55acb67c7ed471fa2b5fb66cb17f61430b7a6b9c3b4a1e40293b1671"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0daa332786cf3bb49e10dc6a17a52f6a8f9601b4cf5c295a4f85854d61de63"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cd077f3d04a58e83d04b20e334f678c2b0ff9879b9375ed107d5d07ff160171"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:660c94ea760b3ce47d1855a30984c78327500493d396eac4dfd8bd82041b22be"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:212774e4dfa851e74d393a2370871e174d7ff0ebc980907723bb67d25c8a7c30"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f0117049dd1d5635bbff65444496c90e0baa48ea405125c088e93d9cf4525b11"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-win32.whl", hash = "sha256:0a891e4e41b54fd5b8313b96399f8b0e173bbbfc03c7631f01efbe29bb0bcf82"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:9990d8e71b9f6488e91ad25f322898c136b008d87bf852ff65391b004da5e17b"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9e7551208b2aded9c1447453ee366f1c4070602b3d932ace044715d89666899b"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f83ac4d83ef0ab017683d715ed356e30dd48a93746309c8f3517e1287523ef4"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7322c3d6f1766d4ef1e51a465f47955f1e8123caee67dd641e67d539a534d006"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:18b78ec83edbbeb69efdc0e9c1cb41a3b1b1ed11ddd8ded602464c3fc6020494"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:09763491ce220c0299688940f8dc2c5d05fd1f45af1e42e636b2e8b2303e4382"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-win32.whl", hash = "sha256:9090d8e53235aa280fc9239a86ae3ea8ac58eff66a705fa6aa2ec4968b95c821"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:db1c1722726f47e10e0b5fdbf15ac3b8adb58c091d12b3ab713965795036985f"}, +] [[package]] name = "markdown-it-py" @@ -736,27 +1485,83 @@ description = "Python port of markdown-it. Markdown parsing, done right!" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "markdown-it-py-2.2.0.tar.gz", hash = "sha256:7c9a5e412688bc771c67432cbfebcdd686c93ce6484913dccf06cb5a0bea35a1"}, + {file = "markdown_it_py-2.2.0-py3-none-any.whl", hash = "sha256:5a35f8d1870171d9acc47b99612dc146129b631baf04970128b568f190d0cc30"}, +] [package.dependencies] mdurl = ">=0.1,<1.0" [package.extras] benchmarking = ["psutil", "pytest", "pytest-benchmark"] -code_style = ["pre-commit (>=3.0,<4.0)"] +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 = ["attrs", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx-book-theme"] +rtd = ["attrs", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] [[package]] name = "markupsafe" -version = "2.1.1" +version = "2.1.2" description = "Safely add untrusted strings to HTML/XML markup." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:665a36ae6f8f20a4676b53224e33d456a6f5a72657d9c83c2aa00765072f31f7"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:340bea174e9761308703ae988e982005aedf427de816d1afe98147668cc03036"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22152d00bf4a9c7c83960521fc558f55a1adbc0631fbb00a9471e097b19d72e1"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28057e985dace2f478e042eaa15606c7efccb700797660629da387eb289b9323"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca244fa73f50a800cf8c3ebf7fd93149ec37f5cb9596aa8873ae2c1d23498601"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d9d971ec1e79906046aa3ca266de79eac42f1dbf3612a05dc9368125952bd1a1"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7e007132af78ea9df29495dbf7b5824cb71648d7133cf7848a2a5dd00d36f9ff"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7313ce6a199651c4ed9d7e4cfb4aa56fe923b1adf9af3b420ee14e6d9a73df65"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-win32.whl", hash = "sha256:c4a549890a45f57f1ebf99c067a4ad0cb423a05544accaf2b065246827ed9603"}, + {file = "MarkupSafe-2.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:835fb5e38fd89328e9c81067fd642b3593c33e1e17e2fdbf77f5676abb14a156"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2ec4f2d48ae59bbb9d1f9d7efb9236ab81429a764dedca114f5fdabbc3788013"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:608e7073dfa9e38a85d38474c082d4281f4ce276ac0010224eaba11e929dd53a"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65608c35bfb8a76763f37036547f7adfd09270fbdbf96608be2bead319728fcd"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2bfb563d0211ce16b63c7cb9395d2c682a23187f54c3d79bfec33e6705473c6"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da25303d91526aac3672ee6d49a2f3db2d9502a4a60b55519feb1a4c7714e07d"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9cad97ab29dfc3f0249b483412c85c8ef4766d96cdf9dcf5a1e3caa3f3661cf1"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:085fd3201e7b12809f9e6e9bc1e5c96a368c8523fad5afb02afe3c051ae4afcc"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1bea30e9bf331f3fef67e0a3877b2288593c98a21ccb2cf29b74c581a4eb3af0"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-win32.whl", hash = "sha256:7df70907e00c970c60b9ef2938d894a9381f38e6b9db73c5be35e59d92e06625"}, + {file = "MarkupSafe-2.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:e55e40ff0cc8cc5c07996915ad367fa47da6b3fc091fdadca7f5403239c5fec3"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a6e40afa7f45939ca356f348c8e23048e02cb109ced1eb8420961b2f40fb373a"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf877ab4ed6e302ec1d04952ca358b381a882fbd9d1b07cccbfd61783561f98a"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63ba06c9941e46fa389d389644e2d8225e0e3e5ebcc4ff1ea8506dce646f8c8a"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1cd098434e83e656abf198f103a8207a8187c0fc110306691a2e94a78d0abb2"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:55f44b440d491028addb3b88f72207d71eeebfb7b5dbf0643f7c023ae1fba619"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a6f2fcca746e8d5910e18782f976489939d54a91f9411c32051b4aab2bd7c513"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0b462104ba25f1ac006fdab8b6a01ebbfbce9ed37fd37fd4acd70c67c973e460"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-win32.whl", hash = "sha256:7668b52e102d0ed87cb082380a7e2e1e78737ddecdde129acadb0eccc5423859"}, + {file = "MarkupSafe-2.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6d6607f98fcf17e534162f0709aaad3ab7a96032723d8ac8750ffe17ae5a0666"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a806db027852538d2ad7555b203300173dd1b77ba116de92da9afbc3a3be3eed"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a4abaec6ca3ad8660690236d11bfe28dfd707778e2442b45addd2f086d6ef094"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f03a532d7dee1bed20bc4884194a16160a2de9ffc6354b3878ec9682bb623c54"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cf06cdc1dda95223e9d2d3c58d3b178aa5dacb35ee7e3bbac10e4e1faacb419"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22731d79ed2eb25059ae3df1dfc9cb1546691cc41f4e3130fe6bfbc3ecbbecfa"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f8ffb705ffcf5ddd0e80b65ddf7bed7ee4f5a441ea7d3419e861a12eaf41af58"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8db032bf0ce9022a8e41a22598eefc802314e81b879ae093f36ce9ddf39ab1ba"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2298c859cfc5463f1b64bd55cb3e602528db6fa0f3cfd568d3605c50678f8f03"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-win32.whl", hash = "sha256:50c42830a633fa0cf9e7d27664637532791bfc31c731a87b202d2d8ac40c3ea2"}, + {file = "MarkupSafe-2.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:bb06feb762bade6bf3c8b844462274db0c76acc95c52abe8dbed28ae3d44a147"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99625a92da8229df6d44335e6fcc558a5037dd0a760e11d84be2260e6f37002f"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8bca7e26c1dd751236cfb0c6c72d4ad61d986e9a41bbf76cb445f69488b2a2bd"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40627dcf047dadb22cd25ea7ecfe9cbf3bbbad0482ee5920b582f3809c97654f"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40dfd3fefbef579ee058f139733ac336312663c6706d1163b82b3003fb1925c4"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:090376d812fb6ac5f171e5938e82e7f2d7adc2b629101cec0db8b267815c85e2"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2e7821bffe00aa6bd07a23913b7f4e01328c3d5cc0b40b36c0bd81d362faeb65"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c0a33bc9f02c2b17c3ea382f91b4db0e6cde90b63b296422a939886a7a80de1c"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b8526c6d437855442cdd3d87eede9c425c4445ea011ca38d937db299382e6fa3"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-win32.whl", hash = "sha256:137678c63c977754abe9086a3ec011e8fd985ab90631145dfb9294ad09c102a7"}, + {file = "MarkupSafe-2.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed"}, + {file = "MarkupSafe-2.1.2.tar.gz", hash = "sha256:abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d"}, +] [[package]] name = "matplotlib-inline" @@ -765,6 +1570,10 @@ description = "Inline Matplotlib backend for Jupyter" category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "matplotlib-inline-0.1.6.tar.gz", hash = "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304"}, + {file = "matplotlib_inline-0.1.6-py3-none-any.whl", hash = "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311"}, +] [package.dependencies] traitlets = "*" @@ -776,6 +1585,10 @@ description = "McCabe checker, plugin for flake8" category = "dev" optional = false python-versions = "*" +files = [ + {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, + {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, +] [[package]] name = "mdit-py-plugins" @@ -784,12 +1597,16 @@ description = "Collection of plugins for markdown-it-py" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "mdit-py-plugins-0.3.5.tar.gz", hash = "sha256:eee0adc7195e5827e17e02d2a258a2ba159944a0748f59c5099a4a27f78fcf6a"}, + {file = "mdit_py_plugins-0.3.5-py3-none-any.whl", hash = "sha256:ca9a0714ea59a24b2b044a1831f48d817dd0c817e84339f20e7889f392d77c4e"}, +] [package.dependencies] markdown-it-py = ">=1.0.0,<3.0.0" [package.extras] -code_style = ["pre-commit"] +code-style = ["pre-commit"] rtd = ["attrs", "myst-parser (>=0.16.1,<0.17.0)", "sphinx-book-theme (>=0.1.0,<0.2.0)"] testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] @@ -800,14 +1617,22 @@ description = "Markdown URL utilities" category = "dev" 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 = "mistune" -version = "2.0.4" +version = "2.0.5" description = "A sane Markdown parser with useful plugins and renderers" category = "dev" optional = false python-versions = "*" +files = [ + {file = "mistune-2.0.5-py2.py3-none-any.whl", hash = "sha256:bad7f5d431886fcbaf5f758118ecff70d31f75231b34024a1341120340a65ce8"}, + {file = "mistune-2.0.5.tar.gz", hash = "sha256:0246113cb2492db875c6be56974a7c893333bf26cd92891c85f63151cee09d34"}, +] [[package]] name = "mypy" @@ -816,6 +1641,31 @@ description = "Optional static typing for Python" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "mypy-0.942-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5bf44840fb43ac4074636fd47ee476d73f0039f4f54e86d7265077dc199be24d"}, + {file = "mypy-0.942-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dcd955f36e0180258a96f880348fbca54ce092b40fbb4b37372ae3b25a0b0a46"}, + {file = "mypy-0.942-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6776e5fa22381cc761df53e7496a805801c1a751b27b99a9ff2f0ca848c7eca0"}, + {file = "mypy-0.942-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:edf7237137a1a9330046dbb14796963d734dd740a98d5e144a3eb1d267f5f9ee"}, + {file = "mypy-0.942-cp310-cp310-win_amd64.whl", hash = "sha256:64235137edc16bee6f095aba73be5334677d6f6bdb7fa03cfab90164fa294a17"}, + {file = "mypy-0.942-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b840cfe89c4ab6386c40300689cd8645fc8d2d5f20101c7f8bd23d15fca14904"}, + {file = "mypy-0.942-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2b184db8c618c43c3a31b32ff00cd28195d39e9c24e7c3b401f3db7f6e5767f5"}, + {file = "mypy-0.942-cp36-cp36m-win_amd64.whl", hash = "sha256:1a0459c333f00e6a11cbf6b468b870c2b99a906cb72d6eadf3d1d95d38c9352c"}, + {file = "mypy-0.942-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4c3e497588afccfa4334a9986b56f703e75793133c4be3a02d06a3df16b67a58"}, + {file = "mypy-0.942-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6f6ad963172152e112b87cc7ec103ba0f2db2f1cd8997237827c052a3903eaa6"}, + {file = "mypy-0.942-cp37-cp37m-win_amd64.whl", hash = "sha256:0e2dd88410937423fba18e57147dd07cd8381291b93d5b1984626f173a26543e"}, + {file = "mypy-0.942-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:246e1aa127d5b78488a4a0594bd95f6d6fb9d63cf08a66dafbff8595d8891f67"}, + {file = "mypy-0.942-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d8d3ba77e56b84cd47a8ee45b62c84b6d80d32383928fe2548c9a124ea0a725c"}, + {file = "mypy-0.942-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2bc249409a7168d37c658e062e1ab5173300984a2dada2589638568ddc1db02b"}, + {file = "mypy-0.942-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9521c1265ccaaa1791d2c13582f06facf815f426cd8b07c3a485f486a8ffc1f3"}, + {file = "mypy-0.942-cp38-cp38-win_amd64.whl", hash = "sha256:e865fec858d75b78b4d63266c9aff770ecb6a39dfb6d6b56c47f7f8aba6baba8"}, + {file = "mypy-0.942-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6ce34a118d1a898f47def970a2042b8af6bdcc01546454726c7dd2171aa6dfca"}, + {file = "mypy-0.942-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:10daab80bc40f84e3f087d896cdb53dc811a9f04eae4b3f95779c26edee89d16"}, + {file = "mypy-0.942-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3841b5433ff936bff2f4dc8d54cf2cdbfea5d8e88cedfac45c161368e5770ba6"}, + {file = "mypy-0.942-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6f7106cbf9cc2f403693bf50ed7c9fa5bb3dfa9007b240db3c910929abe2a322"}, + {file = "mypy-0.942-cp39-cp39-win_amd64.whl", hash = "sha256:7742d2c4e46bb5017b51c810283a6a389296cda03df805a4f7869a6f41246534"}, + {file = "mypy-0.942-py3-none-any.whl", hash = "sha256:a1b383fe99678d7402754fe90448d4037f9512ce70c21f8aee3b8bf48ffc51db"}, + {file = "mypy-0.942.tar.gz", hash = "sha256:17e44649fec92e9f82102b48a3bf7b4a5510ad0cd22fa21a104826b5db4903e2"}, +] [package.dependencies] mypy-extensions = ">=0.4.3" @@ -829,11 +1679,15 @@ reports = ["lxml"] [[package]] name = "mypy-extensions" -version = "0.4.3" -description = "Experimental type system extensions for programs checked with the mypy typechecker." +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." category = "dev" optional = false -python-versions = "*" +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 = "myst-nb" @@ -842,6 +1696,10 @@ description = "A Jupyter Notebook Sphinx reader built on top of the MyST markdow category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "myst-nb-0.17.2.tar.gz", hash = "sha256:0f61386515fab07c73646adca97fff2f69f41e90d313a260217c5bbe419d858b"}, + {file = "myst_nb-0.17.2-py3-none-any.whl", hash = "sha256:132ca4d0f5c308fdd4b6fdaba077712e28e119ccdafd04d6e41b51aac5483494"}, +] [package.dependencies] importlib_metadata = "*" @@ -856,9 +1714,9 @@ sphinx = ">=4,<6" typing-extensions = "*" [package.extras] -code_style = ["pre-commit"] +code-style = ["pre-commit"] rtd = ["alabaster", "altair", "bokeh", "coconut (>=1.4.3,<2.3.0)", "ipykernel (>=5.5,<6.0)", "ipywidgets", "jupytext (>=1.11.2,<1.12.0)", "matplotlib", "numpy", "pandas", "plotly", "sphinx-book-theme (>=0.3.0,<0.4.0)", "sphinx-copybutton", "sphinx-design (>=0.4.0,<0.5.0)", "sphinxcontrib-bibtex", "sympy"] -testing = ["coverage (>=6.4,<8.0)", "beautifulsoup4", "ipykernel (>=5.5,<6.0)", "ipython (!=8.1.0,<8.5)", "ipywidgets (>=8)", "jupytext (>=1.11.2,<1.12.0)", "matplotlib (>=3.5.3,<3.6)", "nbdime", "numpy", "pandas", "pytest (>=7.1,<8.0)", "pytest-cov (>=3,<5)", "pytest-regressions", "pytest-param-files (>=0.3.3,<0.4.0)", "sympy (>=1.10.1)"] +testing = ["beautifulsoup4", "coverage (>=6.4,<8.0)", "ipykernel (>=5.5,<6.0)", "ipython (!=8.1.0,<8.5)", "ipywidgets (>=8)", "jupytext (>=1.11.2,<1.12.0)", "matplotlib (>=3.5.3,<3.6)", "nbdime", "numpy", "pandas", "pytest (>=7.1,<8.0)", "pytest-cov (>=3,<5)", "pytest-param-files (>=0.3.3,<0.4.0)", "pytest-regressions", "sympy (>=1.10.1)"] [[package]] name = "myst-parser" @@ -867,6 +1725,10 @@ description = "An extended commonmark compliant parser, with bridges to docutils category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "myst-parser-0.18.1.tar.gz", hash = "sha256:79317f4bb2c13053dd6e64f9da1ba1da6cd9c40c8a430c447a7b146a594c246d"}, + {file = "myst_parser-0.18.1-py3-none-any.whl", hash = "sha256:61b275b85d9f58aa327f370913ae1bec26ebad372cc99f3ab85c8ec3ee8d9fb8"}, +] [package.dependencies] docutils = ">=0.15,<0.20" @@ -878,36 +1740,81 @@ sphinx = ">=4,<6" typing-extensions = "*" [package.extras] -code_style = ["pre-commit (>=2.12,<3.0)"] +code-style = ["pre-commit (>=2.12,<3.0)"] linkify = ["linkify-it-py (>=1.0,<2.0)"] -rtd = ["ipython", "sphinx-book-theme", "sphinx-design", "sphinxext-rediraffe (>=0.2.7,<0.3.0)", "sphinxcontrib.mermaid (>=0.7.1,<0.8.0)", "sphinxext-opengraph (>=0.6.3,<0.7.0)"] -testing = ["beautifulsoup4", "coverage", "pytest (>=6,<7)", "pytest-cov", "pytest-regressions", "pytest-param-files (>=0.3.4,<0.4.0)", "sphinx-pytest", "sphinx (<5.2)"] +rtd = ["ipython", "sphinx-book-theme", "sphinx-design", "sphinxcontrib.mermaid (>=0.7.1,<0.8.0)", "sphinxext-opengraph (>=0.6.3,<0.7.0)", "sphinxext-rediraffe (>=0.2.7,<0.3.0)"] +testing = ["beautifulsoup4", "coverage[toml]", "pytest (>=6,<7)", "pytest-cov", "pytest-param-files (>=0.3.4,<0.4.0)", "pytest-regressions", "sphinx (<5.2)", "sphinx-pytest"] + +[[package]] +name = "nbclassic" +version = "1.0.0" +description = "Jupyter Notebook as a Jupyter Server extension." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "nbclassic-1.0.0-py3-none-any.whl", hash = "sha256:f99e4769b4750076cd4235c044b61232110733322384a94a63791d2e7beacc66"}, + {file = "nbclassic-1.0.0.tar.gz", hash = "sha256:0ae11eb2319455d805596bf320336cda9554b41d99ab9a3c31bf8180bffa30e3"}, +] + +[package.dependencies] +argon2-cffi = "*" +ipykernel = "*" +ipython-genutils = "*" +jinja2 = "*" +jupyter-client = ">=6.1.1" +jupyter-core = ">=4.6.1" +jupyter-server = ">=1.8" +nbconvert = ">=5" +nbformat = "*" +nest-asyncio = ">=1.5" +notebook-shim = ">=0.2.3" +prometheus-client = "*" +pyzmq = ">=17" +Send2Trash = ">=1.8.0" +terminado = ">=0.8.3" +tornado = ">=6.1" +traitlets = ">=4.2.1" + +[package.extras] +docs = ["myst-parser", "nbsphinx", "sphinx", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] +json-logging = ["json-logging"] +test = ["coverage", "nbval", "pytest", "pytest-cov", "pytest-jupyter", "pytest-playwright", "pytest-tornasync", "requests", "requests-unixsocket", "testpath"] [[package]] name = "nbclient" -version = "0.7.0" +version = "0.7.4" description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." category = "dev" optional = false python-versions = ">=3.7.0" +files = [ + {file = "nbclient-0.7.4-py3-none-any.whl", hash = "sha256:c817c0768c5ff0d60e468e017613e6eae27b6fa31e43f905addd2d24df60c125"}, + {file = "nbclient-0.7.4.tar.gz", hash = "sha256:d447f0e5a4cfe79d462459aec1b3dc5c2e9152597262be8ee27f7d4c02566a0d"}, +] [package.dependencies] -jupyter-client = ">=6.1.5" -nbformat = ">=5.0" -nest-asyncio = "*" -traitlets = ">=5.2.2" +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +nbformat = ">=5.1" +traitlets = ">=5.3" [package.extras] -sphinx = ["autodoc-traits", "mock", "moto", "myst-parser", "Sphinx (>=1.7)", "sphinx-book-theme"] -test = ["black", "check-manifest", "flake8", "ipykernel", "ipython", "ipywidgets", "mypy", "nbconvert", "pip (>=18.1)", "pre-commit", "pytest (>=4.1)", "pytest-asyncio", "pytest-cov (>=2.6.1)", "setuptools (>=60.0)", "testpath", "twine (>=1.11.0)", "xmltodict"] +dev = ["pre-commit"] +docs = ["autodoc-traits", "mock", "moto", "myst-parser", "nbclient[test]", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling"] +test = ["flaky", "ipykernel", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>=7.0)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] [[package]] name = "nbconvert" -version = "7.2.1" +version = "7.4.0" description = "Converting Jupyter Notebooks" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "nbconvert-7.4.0-py3-none-any.whl", hash = "sha256:af5064a9db524f9f12f4e8be7f0799524bd5b14c1adea37e34e83c95127cc818"}, + {file = "nbconvert-7.4.0.tar.gz", hash = "sha256:51b6c77b507b177b73f6729dba15676e42c4e92bcb00edc8cc982ee72e7d89d7"}, +] [package.dependencies] beautifulsoup4 = "*" @@ -928,21 +1835,25 @@ tinycss2 = "*" traitlets = ">=5.0" [package.extras] -all = ["ipykernel", "ipython", "ipywidgets (>=7)", "myst-parser", "nbsphinx (>=0.2.12)", "pre-commit", "pyppeteer (>=1,<1.1)", "pyqtwebengine (>=5.15)", "pytest", "pytest-cov", "pytest-dependency", "sphinx-rtd-theme", "sphinx (==5.0.2)", "tornado (>=6.1)"] -docs = ["ipython", "myst-parser", "nbsphinx (>=0.2.12)", "sphinx-rtd-theme", "sphinx (==5.0.2)"] -qtpdf = ["pyqtwebengine (>=5.15)"] +all = ["nbconvert[docs,qtpdf,serve,test,webpdf]"] +docs = ["ipykernel", "ipython", "myst-parser", "nbsphinx (>=0.2.12)", "pydata-sphinx-theme", "sphinx (==5.0.2)", "sphinxcontrib-spelling"] +qtpdf = ["nbconvert[qtpng]"] qtpng = ["pyqtwebengine (>=5.15)"] serve = ["tornado (>=6.1)"] -test = ["ipykernel", "ipywidgets (>=7)", "pre-commit", "pyppeteer (>=1,<1.1)", "pytest", "pytest-cov", "pytest-dependency"] +test = ["ipykernel", "ipywidgets (>=7)", "pre-commit", "pytest", "pytest-dependency"] webpdf = ["pyppeteer (>=1,<1.1)"] [[package]] name = "nbformat" -version = "5.6.1" +version = "5.8.0" description = "The Jupyter Notebook format" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "nbformat-5.8.0-py3-none-any.whl", hash = "sha256:d910082bd3e0bffcf07eabf3683ed7dda0727a326c446eeb2922abe102e65162"}, + {file = "nbformat-5.8.0.tar.gz", hash = "sha256:46dac64c781f1c34dfd8acba16547024110348f9fc7eab0f31981c2a3dc48d1f"}, +] [package.dependencies] fastjsonschema = "*" @@ -951,7 +1862,8 @@ jupyter-core = "*" traitlets = ">=5.1" [package.extras] -test = ["check-manifest", "pep440", "pre-commit", "pytest", "testpath"] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["pep440", "pre-commit", "pytest", "testpath"] [[package]] name = "nest-asyncio" @@ -960,22 +1872,37 @@ description = "Patch asyncio to allow nested event loops" category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "nest_asyncio-1.5.6-py3-none-any.whl", hash = "sha256:b9a953fb40dceaa587d109609098db21900182b16440652454a146cffb06e8b8"}, + {file = "nest_asyncio-1.5.6.tar.gz", hash = "sha256:d267cc1ff794403f7df692964d1d2a3fa9418ffea2a3f6859a439ff482fef290"}, +] [[package]] name = "nodeenv" -version = "1.7.0" +version = "1.8.0" description = "Node.js virtual environment builder" category = "dev" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" +files = [ + {file = "nodeenv-1.8.0-py2.py3-none-any.whl", hash = "sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec"}, + {file = "nodeenv-1.8.0.tar.gz", hash = "sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2"}, +] + +[package.dependencies] +setuptools = "*" [[package]] name = "notebook" -version = "6.4.12" +version = "6.5.4" description = "A web-based notebook environment for interactive computing" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "notebook-6.5.4-py3-none-any.whl", hash = "sha256:dd17e78aefe64c768737b32bf171c1c766666a21cc79a44d37a1700771cab56f"}, + {file = "notebook-6.5.4.tar.gz", hash = "sha256:517209568bd47261e2def27a140e97d49070602eea0d226a696f42a7f16c9a4e"}, +] [package.dependencies] argon2-cffi = "*" @@ -984,6 +1911,7 @@ ipython-genutils = "*" jinja2 = "*" jupyter-client = ">=5.3.4" jupyter-core = ">=4.6.1" +nbclassic = ">=0.4.7" nbconvert = ">=5" nbformat = "*" nest-asyncio = ">=1.5" @@ -995,17 +1923,65 @@ tornado = ">=6.1" traitlets = ">=4.2.1" [package.extras] -docs = ["sphinx", "nbsphinx", "sphinxcontrib-github-alt", "sphinx-rtd-theme", "myst-parser"] +docs = ["myst-parser", "nbsphinx", "sphinx", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] json-logging = ["json-logging"] -test = ["pytest", "coverage", "requests", "testpath", "nbval", "selenium", "pytest-cov", "requests-unixsocket"] +test = ["coverage", "nbval", "pytest", "pytest-cov", "requests", "requests-unixsocket", "selenium (==4.1.5)", "testpath"] + +[[package]] +name = "notebook-shim" +version = "0.2.3" +description = "A shim layer for notebook traits and config" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "notebook_shim-0.2.3-py3-none-any.whl", hash = "sha256:a83496a43341c1674b093bfcebf0fe8e74cbe7eda5fd2bbc56f8e39e1486c0c7"}, + {file = "notebook_shim-0.2.3.tar.gz", hash = "sha256:f69388ac283ae008cd506dda10d0288b09a017d822d5e8c7129a152cbd3ce7e9"}, +] + +[package.dependencies] +jupyter-server = ">=1.8,<3" + +[package.extras] +test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync"] [[package]] name = "numpy" -version = "1.23.3" -description = "NumPy is the fundamental package for array computing with Python." +version = "1.24.3" +description = "Fundamental package for array computing in Python" category = "main" optional = false python-versions = ">=3.8" +files = [ + {file = "numpy-1.24.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3c1104d3c036fb81ab923f507536daedc718d0ad5a8707c6061cdfd6d184e570"}, + {file = "numpy-1.24.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:202de8f38fc4a45a3eea4b63e2f376e5f2dc64ef0fa692838e31a808520efaf7"}, + {file = "numpy-1.24.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8535303847b89aa6b0f00aa1dc62867b5a32923e4d1681a35b5eef2d9591a463"}, + {file = "numpy-1.24.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d926b52ba1367f9acb76b0df6ed21f0b16a1ad87c6720a1121674e5cf63e2b6"}, + {file = "numpy-1.24.3-cp310-cp310-win32.whl", hash = "sha256:f21c442fdd2805e91799fbe044a7b999b8571bb0ab0f7850d0cb9641a687092b"}, + {file = "numpy-1.24.3-cp310-cp310-win_amd64.whl", hash = "sha256:ab5f23af8c16022663a652d3b25dcdc272ac3f83c3af4c02eb8b824e6b3ab9d7"}, + {file = "numpy-1.24.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9a7721ec204d3a237225db3e194c25268faf92e19338a35f3a224469cb6039a3"}, + {file = "numpy-1.24.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d6cc757de514c00b24ae8cf5c876af2a7c3df189028d68c0cb4eaa9cd5afc2bf"}, + {file = "numpy-1.24.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76e3f4e85fc5d4fd311f6e9b794d0c00e7002ec122be271f2019d63376f1d385"}, + {file = "numpy-1.24.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1d3c026f57ceaad42f8231305d4653d5f05dc6332a730ae5c0bea3513de0950"}, + {file = "numpy-1.24.3-cp311-cp311-win32.whl", hash = "sha256:c91c4afd8abc3908e00a44b2672718905b8611503f7ff87390cc0ac3423fb096"}, + {file = "numpy-1.24.3-cp311-cp311-win_amd64.whl", hash = "sha256:5342cf6aad47943286afa6f1609cad9b4266a05e7f2ec408e2cf7aea7ff69d80"}, + {file = "numpy-1.24.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7776ea65423ca6a15255ba1872d82d207bd1e09f6d0894ee4a64678dd2204078"}, + {file = "numpy-1.24.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ae8d0be48d1b6ed82588934aaaa179875e7dc4f3d84da18d7eae6eb3f06c242c"}, + {file = "numpy-1.24.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ecde0f8adef7dfdec993fd54b0f78183051b6580f606111a6d789cd14c61ea0c"}, + {file = "numpy-1.24.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4749e053a29364d3452c034827102ee100986903263e89884922ef01a0a6fd2f"}, + {file = "numpy-1.24.3-cp38-cp38-win32.whl", hash = "sha256:d933fabd8f6a319e8530d0de4fcc2e6a61917e0b0c271fded460032db42a0fe4"}, + {file = "numpy-1.24.3-cp38-cp38-win_amd64.whl", hash = "sha256:56e48aec79ae238f6e4395886b5eaed058abb7231fb3361ddd7bfdf4eed54289"}, + {file = "numpy-1.24.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4719d5aefb5189f50887773699eaf94e7d1e02bf36c1a9d353d9f46703758ca4"}, + {file = "numpy-1.24.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0ec87a7084caa559c36e0a2309e4ecb1baa03b687201d0a847c8b0ed476a7187"}, + {file = "numpy-1.24.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea8282b9bcfe2b5e7d491d0bf7f3e2da29700cec05b49e64d6246923329f2b02"}, + {file = "numpy-1.24.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:210461d87fb02a84ef243cac5e814aad2b7f4be953b32cb53327bb49fd77fbb4"}, + {file = "numpy-1.24.3-cp39-cp39-win32.whl", hash = "sha256:784c6da1a07818491b0ffd63c6bbe5a33deaa0e25a20e1b3ea20cf0e43f8046c"}, + {file = "numpy-1.24.3-cp39-cp39-win_amd64.whl", hash = "sha256:d5036197ecae68d7f491fcdb4df90082b0d4960ca6599ba2659957aafced7c17"}, + {file = "numpy-1.24.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:352ee00c7f8387b44d19f4cada524586f07379c0d49270f87233983bc5087ca0"}, + {file = "numpy-1.24.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a7d6acc2e7524c9955e5c903160aa4ea083736fde7e91276b0e5d98e6332812"}, + {file = "numpy-1.24.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:35400e6a8d102fd07c71ed7dcadd9eb62ee9a6e84ec159bd48c28235bbb0f8e4"}, + {file = "numpy-1.24.3.tar.gz", hash = "sha256:ab344f1bf21f140adab8e47fdbc7c35a477dc01408791f8ba00d018dd0bc5155"}, +] [[package]] name = "packaging" @@ -1014,22 +1990,56 @@ description = "Core utilities for Python packages" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, + {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, +] [package.dependencies] pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" [[package]] name = "pandas" -version = "1.5.0" +version = "1.5.3" description = "Powerful data structures for data analysis, time series, and statistics" category = "main" optional = false python-versions = ">=3.8" +files = [ + {file = "pandas-1.5.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3749077d86e3a2f0ed51367f30bf5b82e131cc0f14260c4d3e499186fccc4406"}, + {file = "pandas-1.5.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:972d8a45395f2a2d26733eb8d0f629b2f90bebe8e8eddbb8829b180c09639572"}, + {file = "pandas-1.5.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:50869a35cbb0f2e0cd5ec04b191e7b12ed688874bd05dd777c19b28cbea90996"}, + {file = "pandas-1.5.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3ac844a0fe00bfaeb2c9b51ab1424e5c8744f89860b138434a363b1f620f354"}, + {file = "pandas-1.5.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a0a56cef15fd1586726dace5616db75ebcfec9179a3a55e78f72c5639fa2a23"}, + {file = "pandas-1.5.3-cp310-cp310-win_amd64.whl", hash = "sha256:478ff646ca42b20376e4ed3fa2e8d7341e8a63105586efe54fa2508ee087f328"}, + {file = "pandas-1.5.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6973549c01ca91ec96199e940495219c887ea815b2083722821f1d7abfa2b4dc"}, + {file = "pandas-1.5.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c39a8da13cede5adcd3be1182883aea1c925476f4e84b2807a46e2775306305d"}, + {file = "pandas-1.5.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f76d097d12c82a535fda9dfe5e8dd4127952b45fea9b0276cb30cca5ea313fbc"}, + {file = "pandas-1.5.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e474390e60ed609cec869b0da796ad94f420bb057d86784191eefc62b65819ae"}, + {file = "pandas-1.5.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f2b952406a1588ad4cad5b3f55f520e82e902388a6d5a4a91baa8d38d23c7f6"}, + {file = "pandas-1.5.3-cp311-cp311-win_amd64.whl", hash = "sha256:bc4c368f42b551bf72fac35c5128963a171b40dce866fb066540eeaf46faa003"}, + {file = "pandas-1.5.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:14e45300521902689a81f3f41386dc86f19b8ba8dd5ac5a3c7010ef8d2932813"}, + {file = "pandas-1.5.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9842b6f4b8479e41968eced654487258ed81df7d1c9b7b870ceea24ed9459b31"}, + {file = "pandas-1.5.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:26d9c71772c7afb9d5046e6e9cf42d83dd147b5cf5bcb9d97252077118543792"}, + {file = "pandas-1.5.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fbcb19d6fceb9e946b3e23258757c7b225ba450990d9ed63ccceeb8cae609f7"}, + {file = "pandas-1.5.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:565fa34a5434d38e9d250af3c12ff931abaf88050551d9fbcdfafca50d62babf"}, + {file = "pandas-1.5.3-cp38-cp38-win32.whl", hash = "sha256:87bd9c03da1ac870a6d2c8902a0e1fd4267ca00f13bc494c9e5a9020920e1d51"}, + {file = "pandas-1.5.3-cp38-cp38-win_amd64.whl", hash = "sha256:41179ce559943d83a9b4bbacb736b04c928b095b5f25dd2b7389eda08f46f373"}, + {file = "pandas-1.5.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c74a62747864ed568f5a82a49a23a8d7fe171d0c69038b38cedf0976831296fa"}, + {file = "pandas-1.5.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c4c00e0b0597c8e4f59e8d461f797e5d70b4d025880516a8261b2817c47759ee"}, + {file = "pandas-1.5.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a50d9a4336a9621cab7b8eb3fb11adb82de58f9b91d84c2cd526576b881a0c5a"}, + {file = "pandas-1.5.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd05f7783b3274aa206a1af06f0ceed3f9b412cf665b7247eacd83be41cf7bf0"}, + {file = "pandas-1.5.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f69c4029613de47816b1bb30ff5ac778686688751a5e9c99ad8c7031f6508e5"}, + {file = "pandas-1.5.3-cp39-cp39-win32.whl", hash = "sha256:7cec0bee9f294e5de5bbfc14d0573f65526071029d036b753ee6507d2a21480a"}, + {file = "pandas-1.5.3-cp39-cp39-win_amd64.whl", hash = "sha256:dfd681c5dc216037e0b0a2c821f5ed99ba9f03ebcf119c7dac0e9a7b960b9ec9"}, + {file = "pandas-1.5.3.tar.gz", hash = "sha256:74a3fd7e5a7ec052f183273dc7b0acd3a863edf7520f5d3a1765c04ffdb3b0b1"}, +] [package.dependencies] numpy = [ {version = ">=1.20.3", markers = "python_version < \"3.10\""}, {version = ">=1.21.0", markers = "python_version >= \"3.10\""}, + {version = ">=1.23.2", markers = "python_version >= \"3.11\""}, ] python-dateutil = ">=2.8.1" pytz = ">=2020.1" @@ -1044,6 +2054,10 @@ description = "Utilities for writing pandoc filters in python" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pandocfilters-1.5.0-py2.py3-none-any.whl", hash = "sha256:33aae3f25fd1a026079f5d27bdd52496f0e0803b3469282162bafdcbdf6ef14f"}, + {file = "pandocfilters-1.5.0.tar.gz", hash = "sha256:0b679503337d233b4339a817bfc8c50064e2eff681314376a47cb582305a7a38"}, +] [[package]] name = "parso" @@ -1052,6 +2066,10 @@ description = "A Python Parser" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"}, + {file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"}, +] [package.extras] qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] @@ -1059,19 +2077,27 @@ testing = ["docopt", "pytest (<6.0.0)"] [[package]] name = "pathspec" -version = "0.10.1" +version = "0.11.1" description = "Utility library for gitignore style pattern matching of file paths." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pathspec-0.11.1-py3-none-any.whl", hash = "sha256:d8af70af76652554bd134c22b3e8a1cc46ed7d91edcdd721ef1a0c51a84a5293"}, + {file = "pathspec-0.11.1.tar.gz", hash = "sha256:2798de800fa92780e33acca925945e9a19a133b715067cf165b8866c15a31687"}, +] [[package]] name = "pbr" -version = "5.10.0" +version = "5.11.1" description = "Python Build Reasonableness" category = "dev" optional = false python-versions = ">=2.6" +files = [ + {file = "pbr-5.11.1-py2.py3-none-any.whl", hash = "sha256:567f09558bae2b3ab53cb3c1e2e33e726ff3338e7bae3db5dc954b3a44eef12b"}, + {file = "pbr-5.11.1.tar.gz", hash = "sha256:aefc51675b0b533d56bb5fd1c8c6c0522fe31896679882e1c4c63d5e4a0fccb3"}, +] [[package]] name = "pexpect" @@ -1080,6 +2106,10 @@ description = "Pexpect allows easy control of interactive console applications." category = "dev" optional = false python-versions = "*" +files = [ + {file = "pexpect-4.8.0-py2.py3-none-any.whl", hash = "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"}, + {file = "pexpect-4.8.0.tar.gz", hash = "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"}, +] [package.dependencies] ptyprocess = ">=0.5" @@ -1091,18 +2121,26 @@ description = "Tiny 'shelve'-like database with concurrency support" category = "dev" optional = false python-versions = "*" +files = [ + {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, + {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, +] [[package]] name = "platformdirs" -version = "2.5.2" -description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +version = "3.5.1" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "platformdirs-3.5.1-py3-none-any.whl", hash = "sha256:e2378146f1964972c03c085bb5662ae80b2b8c06226c54b2ff4aa9483e8a13a5"}, + {file = "platformdirs-3.5.1.tar.gz", hash = "sha256:412dae91f52a6f84830f39a8078cecd0e866cb72294a5c66808e74d5e88d251f"}, +] [package.extras] -docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)", "sphinx (>=4)"] -test = ["appdirs (==1.4.4)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)", "pytest (>=6)"] +docs = ["furo (>=2023.3.27)", "proselint (>=0.13)", "sphinx (>=6.2.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.3.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] [[package]] name = "pluggy" @@ -1111,59 +2149,90 @@ description = "plugin and hook calling mechanisms for python" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, + {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, +] [package.extras] -testing = ["pytest-benchmark", "pytest"] -dev = ["tox", "pre-commit"] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] [[package]] name = "pre-commit" -version = "2.20.0" +version = "2.21.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pre_commit-2.21.0-py2.py3-none-any.whl", hash = "sha256:e2f91727039fc39a92f58a588a25b87f936de6567eed4f0e673e0507edc75bad"}, + {file = "pre_commit-2.21.0.tar.gz", hash = "sha256:31ef31af7e474a8d8995027fefdfcf509b5c913ff31f2015b4ec4beb26a6f658"}, +] [package.dependencies] cfgv = ">=2.0.0" identify = ">=1.0.0" nodeenv = ">=0.11.1" pyyaml = ">=5.1" -toml = "*" -virtualenv = ">=20.0.8" +virtualenv = ">=20.10.0" [[package]] name = "prometheus-client" -version = "0.14.1" +version = "0.16.0" description = "Python client for the Prometheus monitoring system." category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "prometheus_client-0.16.0-py3-none-any.whl", hash = "sha256:0836af6eb2c8f4fed712b2f279f6c0a8bbab29f9f4aa15276b91c7cb0d1616ab"}, + {file = "prometheus_client-0.16.0.tar.gz", hash = "sha256:a03e35b359f14dd1630898543e2120addfdeacd1a6069c1367ae90fd93ad3f48"}, +] [package.extras] twisted = ["twisted"] [[package]] name = "prompt-toolkit" -version = "3.0.31" +version = "3.0.38" description = "Library for building powerful interactive command lines in Python" category = "dev" optional = false -python-versions = ">=3.6.2" +python-versions = ">=3.7.0" +files = [ + {file = "prompt_toolkit-3.0.38-py3-none-any.whl", hash = "sha256:45ea77a2f7c60418850331366c81cf6b5b9cf4c7fd34616f733c5427e6abbb1f"}, + {file = "prompt_toolkit-3.0.38.tar.gz", hash = "sha256:23ac5d50538a9a38c8bde05fecb47d0b403ecd0662857a86f886f798563d5b9b"}, +] [package.dependencies] wcwidth = "*" [[package]] name = "psutil" -version = "5.9.2" +version = "5.9.5" description = "Cross-platform lib for process and system monitoring in Python." category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "psutil-5.9.5-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:be8929ce4313f9f8146caad4272f6abb8bf99fc6cf59344a3167ecd74f4f203f"}, + {file = "psutil-5.9.5-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ab8ed1a1d77c95453db1ae00a3f9c50227ebd955437bcf2a574ba8adbf6a74d5"}, + {file = "psutil-5.9.5-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:4aef137f3345082a3d3232187aeb4ac4ef959ba3d7c10c33dd73763fbc063da4"}, + {file = "psutil-5.9.5-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:ea8518d152174e1249c4f2a1c89e3e6065941df2fa13a1ab45327716a23c2b48"}, + {file = "psutil-5.9.5-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:acf2aef9391710afded549ff602b5887d7a2349831ae4c26be7c807c0a39fac4"}, + {file = "psutil-5.9.5-cp27-none-win32.whl", hash = "sha256:5b9b8cb93f507e8dbaf22af6a2fd0ccbe8244bf30b1baad6b3954e935157ae3f"}, + {file = "psutil-5.9.5-cp27-none-win_amd64.whl", hash = "sha256:8c5f7c5a052d1d567db4ddd231a9d27a74e8e4a9c3f44b1032762bd7b9fdcd42"}, + {file = "psutil-5.9.5-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:3c6f686f4225553615612f6d9bc21f1c0e305f75d7d8454f9b46e901778e7217"}, + {file = "psutil-5.9.5-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7a7dd9997128a0d928ed4fb2c2d57e5102bb6089027939f3b722f3a210f9a8da"}, + {file = "psutil-5.9.5-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89518112647f1276b03ca97b65cc7f64ca587b1eb0278383017c2a0dcc26cbe4"}, + {file = "psutil-5.9.5-cp36-abi3-win32.whl", hash = "sha256:104a5cc0e31baa2bcf67900be36acde157756b9c44017b86b2c049f11957887d"}, + {file = "psutil-5.9.5-cp36-abi3-win_amd64.whl", hash = "sha256:b258c0c1c9d145a1d5ceffab1134441c4c5113b2417fafff7315a917a026c3c9"}, + {file = "psutil-5.9.5-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:c607bb3b57dc779d55e1554846352b4e358c10fff3abf3514a7a6601beebdb30"}, + {file = "psutil-5.9.5.tar.gz", hash = "sha256:5410638e4df39c54d957fc51ce03048acd8e6d60abc0f5107af51e5fb566eb3c"}, +] [package.extras] -test = ["ipaddress", "mock", "enum34", "pywin32", "wmi"] +test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] [[package]] name = "ptyprocess" @@ -1172,6 +2241,10 @@ description = "Run a subprocess in a pseudo terminal" category = "dev" optional = false python-versions = "*" +files = [ + {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, + {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, +] [[package]] name = "pure-eval" @@ -1180,18 +2253,14 @@ description = "Safely evaluate AST nodes without side effects" category = "dev" optional = false python-versions = "*" +files = [ + {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, + {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, +] [package.extras] tests = ["pytest"] -[[package]] -name = "py" -version = "1.11.0" -description = "library with cross-python path, ini-parsing, io, code, log facilities" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - [[package]] name = "pycodestyle" version = "2.8.0" @@ -1199,6 +2268,10 @@ description = "Python style guide checker" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "pycodestyle-2.8.0-py2.py3-none-any.whl", hash = "sha256:720f8b39dde8b293825e7ff02c475f3077124006db4f440dcbc9a20b76548a20"}, + {file = "pycodestyle-2.8.0.tar.gz", hash = "sha256:eddd5847ef438ea1c7870ca7eb78a9d47ce0cdb4851a5523949f2601d0cbbe7f"}, +] [[package]] name = "pycparser" @@ -1207,20 +2280,28 @@ description = "C parser in Python" category = "dev" 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 = "pydocstyle" -version = "6.1.1" +version = "6.3.0" description = "Python docstring style checker" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "pydocstyle-6.3.0-py3-none-any.whl", hash = "sha256:118762d452a49d6b05e194ef344a55822987a462831ade91ec5c06fd2169d019"}, + {file = "pydocstyle-6.3.0.tar.gz", hash = "sha256:7ce43f0c0ac87b07494eb9c0b462c0b73e6ff276807f204d6b53edc72b7e44e1"}, +] [package.dependencies] -snowballstemmer = "*" +snowballstemmer = ">=2.2.0" [package.extras] -toml = ["toml"] +toml = ["tomli (>=1.2.3)"] [[package]] name = "pyflakes" @@ -1229,30 +2310,45 @@ description = "passive checker of Python programs" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pyflakes-2.4.0-py2.py3-none-any.whl", hash = "sha256:3bb3a3f256f4b7968c9c788781e4ff07dce46bdf12339dcda61053375426ee2e"}, + {file = "pyflakes-2.4.0.tar.gz", hash = "sha256:05a85c2872edf37a4ed30b0cce2f6093e1d0581f8c19d7393122da7e25b2b24c"}, +] [[package]] name = "pygments" -version = "2.13.0" +version = "2.15.1" description = "Pygments is a syntax highlighting package written in Python." category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" +files = [ + {file = "Pygments-2.15.1-py3-none-any.whl", hash = "sha256:db2db3deb4b4179f399a09054b023b6a586b76499d36965813c71aa8ed7b5fd1"}, + {file = "Pygments-2.15.1.tar.gz", hash = "sha256:8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c"}, +] [package.extras] plugins = ["importlib-metadata"] [[package]] name = "pylint" -version = "2.15.3" +version = "2.17.4" description = "python code static checker" category = "dev" optional = false python-versions = ">=3.7.2" +files = [ + {file = "pylint-2.17.4-py3-none-any.whl", hash = "sha256:7a1145fb08c251bdb5cca11739722ce64a63db479283d10ce718b2460e54123c"}, + {file = "pylint-2.17.4.tar.gz", hash = "sha256:5dcf1d9e19f41f38e4e85d10f511e5b9c35e1aa74251bf95cdd8cb23584e2db1"}, +] [package.dependencies] -astroid = ">=2.12.10,<=2.14.0-dev0" +astroid = ">=2.15.4,<=2.17.0-dev0" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} -dill = ">=0.2" +dill = [ + {version = ">=0.2", markers = "python_version < \"3.11\""}, + {version = ">=0.3.6", markers = "python_version >= \"3.11\""}, +] isort = ">=4.2.5,<6" mccabe = ">=0.6,<0.8" platformdirs = ">=2.2.0" @@ -1271,37 +2367,73 @@ description = "pyparsing module - Classes and methods to define and execute pars category = "dev" optional = false python-versions = ">=3.6.8" +files = [ + {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, + {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, +] [package.extras] -diagrams = ["railroad-diagrams", "jinja2"] +diagrams = ["jinja2", "railroad-diagrams"] [[package]] name = "pyrsistent" -version = "0.18.1" +version = "0.19.3" description = "Persistent/Functional/Immutable data structures" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pyrsistent-0.19.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:20460ac0ea439a3e79caa1dbd560344b64ed75e85d8703943e0b66c2a6150e4a"}, + {file = "pyrsistent-0.19.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c18264cb84b5e68e7085a43723f9e4c1fd1d935ab240ce02c0324a8e01ccb64"}, + {file = "pyrsistent-0.19.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b774f9288dda8d425adb6544e5903f1fb6c273ab3128a355c6b972b7df39dcf"}, + {file = "pyrsistent-0.19.3-cp310-cp310-win32.whl", hash = "sha256:5a474fb80f5e0d6c9394d8db0fc19e90fa540b82ee52dba7d246a7791712f74a"}, + {file = "pyrsistent-0.19.3-cp310-cp310-win_amd64.whl", hash = "sha256:49c32f216c17148695ca0e02a5c521e28a4ee6c5089f97e34fe24163113722da"}, + {file = "pyrsistent-0.19.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f0774bf48631f3a20471dd7c5989657b639fd2d285b861237ea9e82c36a415a9"}, + {file = "pyrsistent-0.19.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ab2204234c0ecd8b9368dbd6a53e83c3d4f3cab10ecaf6d0e772f456c442393"}, + {file = "pyrsistent-0.19.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e42296a09e83028b3476f7073fcb69ffebac0e66dbbfd1bd847d61f74db30f19"}, + {file = "pyrsistent-0.19.3-cp311-cp311-win32.whl", hash = "sha256:64220c429e42a7150f4bfd280f6f4bb2850f95956bde93c6fda1b70507af6ef3"}, + {file = "pyrsistent-0.19.3-cp311-cp311-win_amd64.whl", hash = "sha256:016ad1afadf318eb7911baa24b049909f7f3bb2c5b1ed7b6a8f21db21ea3faa8"}, + {file = "pyrsistent-0.19.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c4db1bd596fefd66b296a3d5d943c94f4fac5bcd13e99bffe2ba6a759d959a28"}, + {file = "pyrsistent-0.19.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aeda827381f5e5d65cced3024126529ddc4289d944f75e090572c77ceb19adbf"}, + {file = "pyrsistent-0.19.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:42ac0b2f44607eb92ae88609eda931a4f0dfa03038c44c772e07f43e738bcac9"}, + {file = "pyrsistent-0.19.3-cp37-cp37m-win32.whl", hash = "sha256:e8f2b814a3dc6225964fa03d8582c6e0b6650d68a232df41e3cc1b66a5d2f8d1"}, + {file = "pyrsistent-0.19.3-cp37-cp37m-win_amd64.whl", hash = "sha256:c9bb60a40a0ab9aba40a59f68214eed5a29c6274c83b2cc206a359c4a89fa41b"}, + {file = "pyrsistent-0.19.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a2471f3f8693101975b1ff85ffd19bb7ca7dd7c38f8a81701f67d6b4f97b87d8"}, + {file = "pyrsistent-0.19.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc5d149f31706762c1f8bda2e8c4f8fead6e80312e3692619a75301d3dbb819a"}, + {file = "pyrsistent-0.19.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3311cb4237a341aa52ab8448c27e3a9931e2ee09561ad150ba94e4cfd3fc888c"}, + {file = "pyrsistent-0.19.3-cp38-cp38-win32.whl", hash = "sha256:f0e7c4b2f77593871e918be000b96c8107da48444d57005b6a6bc61fb4331b2c"}, + {file = "pyrsistent-0.19.3-cp38-cp38-win_amd64.whl", hash = "sha256:c147257a92374fde8498491f53ffa8f4822cd70c0d85037e09028e478cababb7"}, + {file = "pyrsistent-0.19.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b735e538f74ec31378f5a1e3886a26d2ca6351106b4dfde376a26fc32a044edc"}, + {file = "pyrsistent-0.19.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99abb85579e2165bd8522f0c0138864da97847875ecbd45f3e7e2af569bfc6f2"}, + {file = "pyrsistent-0.19.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a8cb235fa6d3fd7aae6a4f1429bbb1fec1577d978098da1252f0489937786f3"}, + {file = "pyrsistent-0.19.3-cp39-cp39-win32.whl", hash = "sha256:c74bed51f9b41c48366a286395c67f4e894374306b197e62810e0fdaf2364da2"}, + {file = "pyrsistent-0.19.3-cp39-cp39-win_amd64.whl", hash = "sha256:878433581fc23e906d947a6814336eee031a00e6defba224234169ae3d3d6a98"}, + {file = "pyrsistent-0.19.3-py3-none-any.whl", hash = "sha256:ccf0d6bd208f8111179f0c26fdf84ed7c3891982f2edaeae7422575f47e66b64"}, + {file = "pyrsistent-0.19.3.tar.gz", hash = "sha256:1a2994773706bbb4995c31a97bc94f1418314923bd1048c6d964837040376440"}, +] [[package]] name = "pytest" -version = "7.1.3" +version = "7.3.1" description = "pytest: simple powerful testing with Python" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pytest-7.3.1-py3-none-any.whl", hash = "sha256:3799fa815351fea3a5e96ac7e503a96fa51cc9942c3753cda7651b93c1cfa362"}, + {file = "pytest-7.3.1.tar.gz", hash = "sha256:434afafd78b1d78ed0addf160ad2b77a30d35d4bdf8af234fe621919d9ed15e3"}, +] [package.dependencies] -attrs = ">=19.2.0" colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" pluggy = ">=0.12,<2.0" -py = ">=1.8.2" -tomli = ">=1.0.0" +tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] [[package]] name = "pytest-cov" @@ -1310,13 +2442,17 @@ description = "Pytest plugin for measuring coverage." category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "pytest-cov-3.0.0.tar.gz", hash = "sha256:e7f0f5b1617d2210a2cabc266dfe2f4c75a8d32fb89eafb7ad9d06f6d076d470"}, + {file = "pytest_cov-3.0.0-py3-none-any.whl", hash = "sha256:578d5d15ac4a25e5f961c938b85a05b09fdaae9deef3bb6de9a6e766622ca7a6"}, +] [package.dependencies] coverage = {version = ">=5.2.1", extras = ["toml"]} pytest = ">=4.6" [package.extras] -testing = ["virtualenv", "pytest-xdist", "six", "process-tests", "hunter", "fields"] +testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] [[package]] name = "pytest-mock" @@ -1325,12 +2461,16 @@ description = "Thin-wrapper around the mock package for easier use with pytest" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pytest-mock-3.10.0.tar.gz", hash = "sha256:fbbdb085ef7c252a326fd8cdcac0aa3b1333d8811f131bdcc701002e1be7ed4f"}, + {file = "pytest_mock-3.10.0-py3-none-any.whl", hash = "sha256:f4c973eeae0282963eb293eb173ce91b091a79c1334455acfac9ddee8a1c784b"}, +] [package.dependencies] pytest = ">=5.0" [package.extras] -dev = ["pre-commit", "tox", "pytest-asyncio"] +dev = ["pre-commit", "pytest-asyncio", "tox"] [[package]] name = "python-dateutil" @@ -1339,33 +2479,77 @@ description = "Extensions to the standard Python datetime module" category = "main" 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 = "python-json-logger" +version = "2.0.7" +description = "A python library adding a json log formatter" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "python-json-logger-2.0.7.tar.gz", hash = "sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c"}, + {file = "python_json_logger-2.0.7-py3-none-any.whl", hash = "sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd"}, +] + [[package]] name = "pytz" -version = "2022.4" +version = "2023.3" description = "World timezone definitions, modern and historical" category = "main" optional = false python-versions = "*" +files = [ + {file = "pytz-2023.3-py2.py3-none-any.whl", hash = "sha256:a151b3abb88eda1d4e34a9814df37de2a80e301e68ba0fd856fb9b46bfbbbffb"}, + {file = "pytz-2023.3.tar.gz", hash = "sha256:1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588"}, +] [[package]] name = "pywin32" -version = "304" +version = "306" description = "Python for Window Extensions" category = "dev" 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 = "pywinpty" -version = "2.0.8" +version = "2.0.10" description = "Pseudo terminal support for Windows from Python." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pywinpty-2.0.10-cp310-none-win_amd64.whl", hash = "sha256:4c7d06ad10f6e92bc850a467f26d98f4f30e73d2fe5926536308c6ae0566bc16"}, + {file = "pywinpty-2.0.10-cp311-none-win_amd64.whl", hash = "sha256:7ffbd66310b83e42028fc9df7746118978d94fba8c1ebf15a7c1275fdd80b28a"}, + {file = "pywinpty-2.0.10-cp37-none-win_amd64.whl", hash = "sha256:38cb924f2778b5751ef91a75febd114776b3af0ae411bc667be45dd84fc881d3"}, + {file = "pywinpty-2.0.10-cp38-none-win_amd64.whl", hash = "sha256:902d79444b29ad1833b8d5c3c9aabdfd428f4f068504430df18074007c8c0de8"}, + {file = "pywinpty-2.0.10-cp39-none-win_amd64.whl", hash = "sha256:3c46aef80dd50979aff93de199e4a00a8ee033ba7a03cadf0a91fed45f0c39d7"}, + {file = "pywinpty-2.0.10.tar.gz", hash = "sha256:cdbb5694cf8c7242c2ecfaca35c545d31fa5d5814c3d67a4e628f803f680ebea"}, +] [[package]] name = "pyyaml" @@ -1374,32 +2558,157 @@ description = "YAML parser and emitter for Python" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, + {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, + {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, + {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, + {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, + {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, + {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, + {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, + {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, + {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, + {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, + {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, + {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, + {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, + {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, + {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, + {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, + {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, +] [[package]] name = "pyzmq" -version = "24.0.1" +version = "25.0.2" description = "Python bindings for 0MQ" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "pyzmq-25.0.2-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:ac178e666c097c8d3deb5097b58cd1316092fc43e8ef5b5fdb259b51da7e7315"}, + {file = "pyzmq-25.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:659e62e1cbb063151c52f5b01a38e1df6b54feccfa3e2509d44c35ca6d7962ee"}, + {file = "pyzmq-25.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8280ada89010735a12b968ec3ea9a468ac2e04fddcc1cede59cb7f5178783b9c"}, + {file = "pyzmq-25.0.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9b5eeb5278a8a636bb0abdd9ff5076bcbb836cd2302565df53ff1fa7d106d54"}, + {file = "pyzmq-25.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a2e5fe42dfe6b73ca120b97ac9f34bfa8414feb15e00e37415dbd51cf227ef6"}, + {file = "pyzmq-25.0.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:827bf60e749e78acb408a6c5af6688efbc9993e44ecc792b036ec2f4b4acf485"}, + {file = "pyzmq-25.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7b504ae43d37e282301da586529e2ded8b36d4ee2cd5e6db4386724ddeaa6bbc"}, + {file = "pyzmq-25.0.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:cb1f69a0a2a2b1aae8412979dd6293cc6bcddd4439bf07e4758d864ddb112354"}, + {file = "pyzmq-25.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2b9c9cc965cdf28381e36da525dcb89fc1571d9c54800fdcd73e3f73a2fc29bd"}, + {file = "pyzmq-25.0.2-cp310-cp310-win32.whl", hash = "sha256:24abbfdbb75ac5039205e72d6c75f10fc39d925f2df8ff21ebc74179488ebfca"}, + {file = "pyzmq-25.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6a821a506822fac55d2df2085a52530f68ab15ceed12d63539adc32bd4410f6e"}, + {file = "pyzmq-25.0.2-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:9af0bb0277e92f41af35e991c242c9c71920169d6aa53ade7e444f338f4c8128"}, + {file = "pyzmq-25.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:54a96cf77684a3a537b76acfa7237b1e79a8f8d14e7f00e0171a94b346c5293e"}, + {file = "pyzmq-25.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88649b19ede1cab03b96b66c364cbbf17c953615cdbc844f7f6e5f14c5e5261c"}, + {file = "pyzmq-25.0.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:715cff7644a80a7795953c11b067a75f16eb9fc695a5a53316891ebee7f3c9d5"}, + {file = "pyzmq-25.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:312b3f0f066b4f1d17383aae509bacf833ccaf591184a1f3c7a1661c085063ae"}, + {file = "pyzmq-25.0.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:d488c5c8630f7e782e800869f82744c3aca4aca62c63232e5d8c490d3d66956a"}, + {file = "pyzmq-25.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:38d9f78d69bcdeec0c11e0feb3bc70f36f9b8c44fc06e5d06d91dc0a21b453c7"}, + {file = "pyzmq-25.0.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3059a6a534c910e1d5d068df42f60d434f79e6cc6285aa469b384fa921f78cf8"}, + {file = "pyzmq-25.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6526d097b75192f228c09d48420854d53dfbc7abbb41b0e26f363ccb26fbc177"}, + {file = "pyzmq-25.0.2-cp311-cp311-win32.whl", hash = "sha256:5c5fbb229e40a89a2fe73d0c1181916f31e30f253cb2d6d91bea7927c2e18413"}, + {file = "pyzmq-25.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:ed15e3a2c3c2398e6ae5ce86d6a31b452dfd6ad4cd5d312596b30929c4b6e182"}, + {file = "pyzmq-25.0.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:032f5c8483c85bf9c9ca0593a11c7c749d734ce68d435e38c3f72e759b98b3c9"}, + {file = "pyzmq-25.0.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:374b55516393bfd4d7a7daa6c3b36d6dd6a31ff9d2adad0838cd6a203125e714"}, + {file = "pyzmq-25.0.2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:08bfcc21b5997a9be4fefa405341320d8e7f19b4d684fb9c0580255c5bd6d695"}, + {file = "pyzmq-25.0.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1a843d26a8da1b752c74bc019c7b20e6791ee813cd6877449e6a1415589d22ff"}, + {file = "pyzmq-25.0.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:b48616a09d7df9dbae2f45a0256eee7b794b903ddc6d8657a9948669b345f220"}, + {file = "pyzmq-25.0.2-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:d4427b4a136e3b7f85516c76dd2e0756c22eec4026afb76ca1397152b0ca8145"}, + {file = "pyzmq-25.0.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:26b0358e8933990502f4513c991c9935b6c06af01787a36d133b7c39b1df37fa"}, + {file = "pyzmq-25.0.2-cp36-cp36m-win32.whl", hash = "sha256:c8fedc3ccd62c6b77dfe6f43802057a803a411ee96f14e946f4a76ec4ed0e117"}, + {file = "pyzmq-25.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:2da6813b7995b6b1d1307329c73d3e3be2fd2d78e19acfc4eff2e27262732388"}, + {file = "pyzmq-25.0.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a35960c8b2f63e4ef67fd6731851030df68e4b617a6715dd11b4b10312d19fef"}, + {file = "pyzmq-25.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eef2a0b880ab40aca5a878933376cb6c1ec483fba72f7f34e015c0f675c90b20"}, + {file = "pyzmq-25.0.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:85762712b74c7bd18e340c3639d1bf2f23735a998d63f46bb6584d904b5e401d"}, + {file = "pyzmq-25.0.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:64812f29d6eee565e129ca14b0c785744bfff679a4727137484101b34602d1a7"}, + {file = "pyzmq-25.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:510d8e55b3a7cd13f8d3e9121edf0a8730b87d925d25298bace29a7e7bc82810"}, + {file = "pyzmq-25.0.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b164cc3c8acb3d102e311f2eb6f3c305865ecb377e56adc015cb51f721f1dda6"}, + {file = "pyzmq-25.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:28fdb9224a258134784a9cf009b59265a9dde79582fb750d4e88a6bcbc6fa3dc"}, + {file = "pyzmq-25.0.2-cp37-cp37m-win32.whl", hash = "sha256:dd771a440effa1c36d3523bc6ba4e54ff5d2e54b4adcc1e060d8f3ca3721d228"}, + {file = "pyzmq-25.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:9bdc40efb679b9dcc39c06d25629e55581e4c4f7870a5e88db4f1c51ce25e20d"}, + {file = "pyzmq-25.0.2-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:1f82906a2d8e4ee310f30487b165e7cc8ed09c009e4502da67178b03083c4ce0"}, + {file = "pyzmq-25.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:21ec0bf4831988af43c8d66ba3ccd81af2c5e793e1bf6790eb2d50e27b3c570a"}, + {file = "pyzmq-25.0.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:abbce982a17c88d2312ec2cf7673985d444f1beaac6e8189424e0a0e0448dbb3"}, + {file = "pyzmq-25.0.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9e1d2f2d86fc75ed7f8845a992c5f6f1ab5db99747fb0d78b5e4046d041164d2"}, + {file = "pyzmq-25.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2e92ff20ad5d13266bc999a29ed29a3b5b101c21fdf4b2cf420c09db9fb690e"}, + {file = "pyzmq-25.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:edbbf06cc2719889470a8d2bf5072bb00f423e12de0eb9ffec946c2c9748e149"}, + {file = "pyzmq-25.0.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:77942243ff4d14d90c11b2afd8ee6c039b45a0be4e53fb6fa7f5e4fd0b59da39"}, + {file = "pyzmq-25.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ab046e9cb902d1f62c9cc0eca055b1d11108bdc271caf7c2171487298f229b56"}, + {file = "pyzmq-25.0.2-cp38-cp38-win32.whl", hash = "sha256:ad761cfbe477236802a7ab2c080d268c95e784fe30cafa7e055aacd1ca877eb0"}, + {file = "pyzmq-25.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:8560756318ec7c4c49d2c341012167e704b5a46d9034905853c3d1ade4f55bee"}, + {file = "pyzmq-25.0.2-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:ab2c056ac503f25a63f6c8c6771373e2a711b98b304614151dfb552d3d6c81f6"}, + {file = "pyzmq-25.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cca8524b61c0eaaa3505382dc9b9a3bc8165f1d6c010fdd1452c224225a26689"}, + {file = "pyzmq-25.0.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cfb9f7eae02d3ac42fbedad30006b7407c984a0eb4189a1322241a20944d61e5"}, + {file = "pyzmq-25.0.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5eaeae038c68748082137d6896d5c4db7927e9349237ded08ee1bbd94f7361c9"}, + {file = "pyzmq-25.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a31992a8f8d51663ebf79df0df6a04ffb905063083d682d4380ab8d2c67257c"}, + {file = "pyzmq-25.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6a979e59d2184a0c8f2ede4b0810cbdd86b64d99d9cc8a023929e40dce7c86cc"}, + {file = "pyzmq-25.0.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1f124cb73f1aa6654d31b183810febc8505fd0c597afa127c4f40076be4574e0"}, + {file = "pyzmq-25.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:65c19a63b4a83ae45d62178b70223adeee5f12f3032726b897431b6553aa25af"}, + {file = "pyzmq-25.0.2-cp39-cp39-win32.whl", hash = "sha256:83d822e8687621bed87404afc1c03d83fa2ce39733d54c2fd52d8829edb8a7ff"}, + {file = "pyzmq-25.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:24683285cc6b7bf18ad37d75b9db0e0fefe58404e7001f1d82bf9e721806daa7"}, + {file = "pyzmq-25.0.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4a4b4261eb8f9ed71f63b9eb0198dd7c934aa3b3972dac586d0ef502ba9ab08b"}, + {file = "pyzmq-25.0.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:62ec8d979f56c0053a92b2b6a10ff54b9ec8a4f187db2b6ec31ee3dd6d3ca6e2"}, + {file = "pyzmq-25.0.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:affec1470351178e892121b3414c8ef7803269f207bf9bef85f9a6dd11cde264"}, + {file = "pyzmq-25.0.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffc71111433bd6ec8607a37b9211f4ef42e3d3b271c6d76c813669834764b248"}, + {file = "pyzmq-25.0.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:6fadc60970714d86eff27821f8fb01f8328dd36bebd496b0564a500fe4a9e354"}, + {file = "pyzmq-25.0.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:269968f2a76c0513490aeb3ba0dc3c77b7c7a11daa894f9d1da88d4a0db09835"}, + {file = "pyzmq-25.0.2-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f7c8b8368e84381ae7c57f1f5283b029c888504aaf4949c32e6e6fb256ec9bf0"}, + {file = "pyzmq-25.0.2-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:25e6873a70ad5aa31e4a7c41e5e8c709296edef4a92313e1cd5fc87bbd1874e2"}, + {file = "pyzmq-25.0.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b733076ff46e7db5504c5e7284f04a9852c63214c74688bdb6135808531755a3"}, + {file = "pyzmq-25.0.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:a6f6ae12478fdc26a6d5fdb21f806b08fa5403cd02fd312e4cb5f72df078f96f"}, + {file = "pyzmq-25.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:67da1c213fbd208906ab3470cfff1ee0048838365135a9bddc7b40b11e6d6c89"}, + {file = "pyzmq-25.0.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:531e36d9fcd66f18de27434a25b51d137eb546931033f392e85674c7a7cea853"}, + {file = "pyzmq-25.0.2-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34a6fddd159ff38aa9497b2e342a559f142ab365576284bc8f77cb3ead1f79c5"}, + {file = "pyzmq-25.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b491998ef886662c1f3d49ea2198055a9a536ddf7430b051b21054f2a5831800"}, + {file = "pyzmq-25.0.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:5d496815074e3e3d183fe2c7fcea2109ad67b74084c254481f87b64e04e9a471"}, + {file = "pyzmq-25.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:56a94ab1d12af982b55ca96c6853db6ac85505e820d9458ac76364c1998972f4"}, + {file = "pyzmq-25.0.2.tar.gz", hash = "sha256:6b8c1bbb70e868dc88801aa532cae6bd4e3b5233784692b786f17ad2962e5149"}, +] [package.dependencies] cffi = {version = "*", markers = "implementation_name == \"pypy\""} -py = {version = "*", markers = "implementation_name == \"pypy\""} [[package]] name = "qtconsole" -version = "5.3.2" +version = "5.4.3" description = "Jupyter Qt console" category = "dev" optional = false python-versions = ">= 3.7" +files = [ + {file = "qtconsole-5.4.3-py3-none-any.whl", hash = "sha256:35fd6e87b1f6d1fd41801b07e69339f8982e76afd4fa8ef35595bc6036717189"}, + {file = "qtconsole-5.4.3.tar.gz", hash = "sha256:5e4082a86a201796b2a5cfd4298352d22b158b51b57736531824715fc2a979dd"}, +] [package.dependencies] ipykernel = ">=4.1" ipython-genutils = "*" jupyter-client = ">=4.1" jupyter-core = "*" +packaging = "*" pygments = "*" pyzmq = ">=17.1" qtpy = ">=2.0.1" @@ -1411,11 +2720,15 @@ test = ["flaky", "pytest", "pytest-qt"] [[package]] name = "qtpy" -version = "2.2.1" +version = "2.3.1" description = "Provides an abstraction layer on top of the various Qt bindings (PyQt5/6 and PySide2/6)." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "QtPy-2.3.1-py3-none-any.whl", hash = "sha256:5193d20e0b16e4d9d3bc2c642d04d9f4e2c892590bd1b9c92bfe38a95d5a2e12"}, + {file = "QtPy-2.3.1.tar.gz", hash = "sha256:a8c74982d6d172ce124d80cafd39653df78989683f760f2281ba91a6e7b9de8b"}, +] [package.dependencies] packaging = "*" @@ -1425,77 +2738,195 @@ test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] [[package]] name = "requests" -version = "2.28.1" +version = "2.30.0" description = "Python HTTP for Humans." category = "main" optional = false -python-versions = ">=3.7, <4" +python-versions = ">=3.7" +files = [ + {file = "requests-2.30.0-py3-none-any.whl", hash = "sha256:10e94cc4f3121ee6da529d358cdaeaff2f1c409cd377dbc72b825852f2f7e294"}, + {file = "requests-2.30.0.tar.gz", hash = "sha256:239d7d4458afcb28a692cdd298d87542235f4ca8d36d03a15bfc128a6559a2f4"}, +] [package.dependencies] certifi = ">=2017.4.17" -charset-normalizer = ">=2,<3" +charset-normalizer = ">=2,<4" idna = ">=2.5,<4" -urllib3 = ">=1.21.1,<1.27" +urllib3 = ">=1.21.1,<3" [package.extras] socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +description = "A pure python RFC3339 validator" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, + {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, +] + +[package.dependencies] +six = "*" + +[[package]] +name = "rfc3986-validator" +version = "0.1.1" +description = "Pure python rfc3986 validator" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"}, + {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, +] + +[[package]] +name = "rich" +version = "13.3.5" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +category = "dev" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "rich-13.3.5-py3-none-any.whl", hash = "sha256:69cdf53799e63f38b95b9bf9c875f8c90e78dd62b2f00c13a911c7a3b9fa4704"}, + {file = "rich-13.3.5.tar.gz", hash = "sha256:2d11b9b8dd03868f09b4fffadc84a6a8cda574e40dc90821bd845720ebb8e89c"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0,<3.0.0" +pygments = ">=2.13.0,<3.0.0" + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] -name = "ruamel.yaml" -version = "0.17.21" +name = "ruamel-yaml" +version = "0.17.26" description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" category = "dev" optional = false python-versions = ">=3" +files = [ + {file = "ruamel.yaml-0.17.26-py3-none-any.whl", hash = "sha256:25d0ee82a0a9a6f44683dcf8c282340def4074a4562f3a24f55695bb254c1693"}, + {file = "ruamel.yaml-0.17.26.tar.gz", hash = "sha256:baa2d0a5aad2034826c439ce61c142c07082b76f4791d54145e131206e998059"}, +] [package.dependencies] -"ruamel.yaml.clib" = {version = ">=0.2.6", markers = "platform_python_implementation == \"CPython\" and python_version < \"3.11\""} +"ruamel.yaml.clib" = {version = ">=0.2.7", markers = "platform_python_implementation == \"CPython\" and python_version < \"3.12\""} [package.extras] docs = ["ryd"] jinja2 = ["ruamel.yaml.jinja2 (>=0.2)"] [[package]] -name = "ruamel.yaml.clib" -version = "0.2.6" +name = "ruamel-yaml-clib" +version = "0.2.7" description = "C version of reader, parser and emitter for ruamel.yaml derived from libyaml" category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d5859983f26d8cd7bb5c287ef452e8aacc86501487634573d260968f753e1d71"}, + {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:debc87a9516b237d0466a711b18b6ebeb17ba9f391eb7f91c649c5c4ec5006c7"}, + {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:df5828871e6648db72d1c19b4bd24819b80a755c4541d3409f0f7acd0f335c80"}, + {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:efa08d63ef03d079dcae1dfe334f6c8847ba8b645d08df286358b1f5293d24ab"}, + {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-win32.whl", hash = "sha256:763d65baa3b952479c4e972669f679fe490eee058d5aa85da483ebae2009d231"}, + {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:d000f258cf42fec2b1bbf2863c61d7b8918d31ffee905da62dede869254d3b8a"}, + {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:045e0626baf1c52e5527bd5db361bc83180faaba2ff586e763d3d5982a876a9e"}, + {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-macosx_12_6_arm64.whl", hash = "sha256:721bc4ba4525f53f6a611ec0967bdcee61b31df5a56801281027a3a6d1c2daf5"}, + {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:41d0f1fa4c6830176eef5b276af04c89320ea616655d01327d5ce65e50575c94"}, + {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-win32.whl", hash = "sha256:f6d3d39611ac2e4f62c3128a9eed45f19a6608670c5a2f4f07f24e8de3441d38"}, + {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-win_amd64.whl", hash = "sha256:da538167284de58a52109a9b89b8f6a53ff8437dd6dc26d33b57bf6699153122"}, + {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:4b3a93bb9bc662fc1f99c5c3ea8e623d8b23ad22f861eb6fce9377ac07ad6072"}, + {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-macosx_12_0_arm64.whl", hash = "sha256:a234a20ae07e8469da311e182e70ef6b199d0fbeb6c6cc2901204dd87fb867e8"}, + {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:15910ef4f3e537eea7fe45f8a5d19997479940d9196f357152a09031c5be59f3"}, + {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:370445fd795706fd291ab00c9df38a0caed0f17a6fb46b0f607668ecb16ce763"}, + {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-win32.whl", hash = "sha256:ecdf1a604009bd35c674b9225a8fa609e0282d9b896c03dd441a91e5f53b534e"}, + {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-win_amd64.whl", hash = "sha256:f34019dced51047d6f70cb9383b2ae2853b7fc4dce65129a5acd49f4f9256646"}, + {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2aa261c29a5545adfef9296b7e33941f46aa5bbd21164228e833412af4c9c75f"}, + {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-macosx_12_0_arm64.whl", hash = "sha256:f01da5790e95815eb5a8a138508c01c758e5f5bc0ce4286c4f7028b8dd7ac3d0"}, + {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:40d030e2329ce5286d6b231b8726959ebbe0404c92f0a578c0e2482182e38282"}, + {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:c3ca1fbba4ae962521e5eb66d72998b51f0f4d0f608d3c0347a48e1af262efa7"}, + {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-win32.whl", hash = "sha256:7bdb4c06b063f6fd55e472e201317a3bb6cdeeee5d5a38512ea5c01e1acbdd93"}, + {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-win_amd64.whl", hash = "sha256:be2a7ad8fd8f7442b24323d24ba0b56c51219513cfa45b9ada3b87b76c374d4b"}, + {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:91a789b4aa0097b78c93e3dc4b40040ba55bef518f84a40d4442f713b4094acb"}, + {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:99e77daab5d13a48a4054803d052ff40780278240a902b880dd37a51ba01a307"}, + {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:3243f48ecd450eddadc2d11b5feb08aca941b5cd98c9b1db14b2fd128be8c697"}, + {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:8831a2cedcd0f0927f788c5bdf6567d9dc9cc235646a434986a852af1cb54b4b"}, + {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-win32.whl", hash = "sha256:3110a99e0f94a4a3470ff67fc20d3f96c25b13d24c6980ff841e82bafe827cac"}, + {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-win_amd64.whl", hash = "sha256:92460ce908546ab69770b2e576e4f99fbb4ce6ab4b245345a3869a0a0410488f"}, + {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5bc0667c1eb8f83a3752b71b9c4ba55ef7c7058ae57022dd9b29065186a113d9"}, + {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:4a4d8d417868d68b979076a9be6a38c676eca060785abaa6709c7b31593c35d1"}, + {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:bf9a6bc4a0221538b1a7de3ed7bca4c93c02346853f44e1cd764be0023cd3640"}, + {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:a7b301ff08055d73223058b5c46c55638917f04d21577c95e00e0c4d79201a6b"}, + {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-win32.whl", hash = "sha256:d5e51e2901ec2366b79f16c2299a03e74ba4531ddcfacc1416639c557aef0ad8"}, + {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-win_amd64.whl", hash = "sha256:184faeaec61dbaa3cace407cffc5819f7b977e75360e8d5ca19461cd851a5fc5"}, + {file = "ruamel.yaml.clib-0.2.7.tar.gz", hash = "sha256:1f08fd5a2bea9c4180db71678e850b995d2a5f4537be0e94557668cf0f5f9497"}, +] [[package]] name = "safety" -version = "2.3.1" +version = "2.3.5" description = "Checks installed dependencies for known vulnerabilities and licenses." category = "dev" optional = false python-versions = "*" +files = [ + {file = "safety-2.3.5-py3-none-any.whl", hash = "sha256:2227fcac1b22b53c1615af78872b48348661691450aa25d6704a5504dbd1f7e2"}, + {file = "safety-2.3.5.tar.gz", hash = "sha256:a60c11f8952f412cbb165d70cb1f673a3b43a2ba9a93ce11f97e6a4de834aa3a"}, +] [package.dependencies] Click = ">=8.0.2" dparse = ">=0.6.2" -packaging = ">=21.0" +packaging = ">=21.0,<22.0" requests = "*" "ruamel.yaml" = ">=0.17.21" +setuptools = ">=19.3" [package.extras] -github = ["pygithub (>=1.43.3)", "jinja2 (>=3.1.0)"] +github = ["jinja2 (>=3.1.0)", "pygithub (>=1.43.3)"] gitlab = ["python-gitlab (>=1.3.0)"] [[package]] name = "send2trash" -version = "1.8.0" -description = "Send file to trash natively under Mac OS X, Windows and Linux." +version = "1.8.2" +description = "Send file to trash natively under Mac OS X, Windows and Linux" category = "dev" optional = false -python-versions = "*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +files = [ + {file = "Send2Trash-1.8.2-py3-none-any.whl", hash = "sha256:a384719d99c07ce1eefd6905d2decb6f8b7ed054025bb0e618919f945de4f679"}, + {file = "Send2Trash-1.8.2.tar.gz", hash = "sha256:c132d59fa44b9ca2b1699af5c86f57ce9f4c5eb56629d5d55fbb7a35f84e2312"}, +] [package.extras] -nativelib = ["pyobjc-framework-cocoa", "pywin32"] -objc = ["pyobjc-framework-cocoa"] +nativelib = ["pyobjc-framework-Cocoa", "pywin32"] +objc = ["pyobjc-framework-Cocoa"] win32 = ["pywin32"] +[[package]] +name = "setuptools" +version = "67.7.2" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "setuptools-67.7.2-py3-none-any.whl", hash = "sha256:23aaf86b85ca52ceb801d32703f12d77517b2556af839621c641fca11287952b"}, + {file = "setuptools-67.7.2.tar.gz", hash = "sha256:f104fa03692a2602fa0fec6c6a9e63b6c8a968de13e17c026957dd1f53d80990"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9)", "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 (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] + [[package]] name = "six" version = "1.16.0" @@ -1503,6 +2934,10 @@ description = "Python 2 and 3 compatibility utilities" category = "main" 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" @@ -1511,6 +2946,22 @@ description = "A pure Python implementation of a sliding window memory map manag category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "smmap-5.0.0-py3-none-any.whl", hash = "sha256:2aba19d6a040e78d8b09de5c57e96207b09ed71d8e55ce0959eeee6c8e190d94"}, + {file = "smmap-5.0.0.tar.gz", hash = "sha256:c840e62059cd3be204b0c9c9f74be2c09d5648eddd4580d9314c3ecde0b30936"}, +] + +[[package]] +name = "sniffio" +version = "1.3.0" +description = "Sniff out which async library your code is running under" +category = "dev" +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 = "snowballstemmer" @@ -1519,14 +2970,22 @@ description = "This package provides 29 stemmers for 28 languages generated from category = "dev" optional = false python-versions = "*" +files = [ + {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, + {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, +] [[package]] name = "soupsieve" -version = "2.3.2.post1" +version = "2.4.1" description = "A modern CSS selector implementation for Beautiful Soup." category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" +files = [ + {file = "soupsieve-2.4.1-py3-none-any.whl", hash = "sha256:1c1bfee6819544a3447586c889157365a27e10d88cde3ad3da0cf0ddf646feb8"}, + {file = "soupsieve-2.4.1.tar.gz", hash = "sha256:89d12b2d5dfcd2c9e8c22326da9d9aa9cb3dfab0a83a024f05704076ee8d35ea"}, +] [[package]] name = "sphinx" @@ -1535,6 +2994,10 @@ description = "Python documentation generator" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "Sphinx-5.3.0.tar.gz", hash = "sha256:51026de0a9ff9fc13c05d74913ad66047e104f56a129ff73e174eb5c3ee794b5"}, + {file = "sphinx-5.3.0-py3-none-any.whl", hash = "sha256:060ca5c9f7ba57a08a1219e547b269fadf125ae25b06b9fa7f66768efb652d6d"}, +] [package.dependencies] alabaster = ">=0.7,<0.8" @@ -1557,8 +3020,8 @@ sphinxcontrib-serializinghtml = ">=1.1.5" [package.extras] docs = ["sphinxcontrib-websupport"] -lint = ["flake8 (>=3.5.0)", "flake8-comprehensions", "flake8-bugbear", "flake8-simplify", "isort", "mypy (>=0.981)", "sphinx-lint", "docutils-stubs", "types-typed-ast", "types-requests"] -test = ["pytest (>=4.6)", "html5lib", "typed-ast", "cython"] +lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-bugbear", "flake8-comprehensions", "flake8-simplify", "isort", "mypy (>=0.981)", "sphinx-lint", "types-requests", "types-typed-ast"] +test = ["cython", "html5lib", "pytest (>=4.6)", "typed_ast"] [[package]] name = "sphinx-rtd-theme" @@ -1567,6 +3030,10 @@ description = "Read the Docs theme for Sphinx" category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "sphinx_rtd_theme-1.2.0-py2.py3-none-any.whl", hash = "sha256:f823f7e71890abe0ac6aaa6013361ea2696fc8d3e1fa798f463e82bdb77eeff2"}, + {file = "sphinx_rtd_theme-1.2.0.tar.gz", hash = "sha256:a0d8bd1a2ed52e0b338cbe19c4b2eef3c5e7a048769753dac6a9f059c7b641b8"}, +] [package.dependencies] docutils = "<0.19" @@ -1574,7 +3041,7 @@ sphinx = ">=1.6,<7" sphinxcontrib-jquery = {version = ">=2.0.0,<3.0.0 || >3.0.0", markers = "python_version > \"3\""} [package.extras] -dev = ["transifex-client", "sphinxcontrib-httpdomain", "bump2version", "wheel"] +dev = ["bump2version", "sphinxcontrib-httpdomain", "transifex-client", "wheel"] [[package]] name = "sphinxcontrib-applehelp" @@ -1583,9 +3050,13 @@ description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple category = "dev" optional = false python-versions = ">=3.8" +files = [ + {file = "sphinxcontrib-applehelp-1.0.4.tar.gz", hash = "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e"}, + {file = "sphinxcontrib_applehelp-1.0.4-py3-none-any.whl", hash = "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228"}, +] [package.extras] -lint = ["flake8", "mypy", "docutils-stubs"] +lint = ["docutils-stubs", "flake8", "mypy"] test = ["pytest"] [[package]] @@ -1595,9 +3066,13 @@ description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, + {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, +] [package.extras] -lint = ["flake8", "mypy", "docutils-stubs"] +lint = ["docutils-stubs", "flake8", "mypy"] test = ["pytest"] [[package]] @@ -1607,10 +3082,14 @@ description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML h category = "dev" optional = false python-versions = ">=3.8" +files = [ + {file = "sphinxcontrib-htmlhelp-2.0.1.tar.gz", hash = "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff"}, + {file = "sphinxcontrib_htmlhelp-2.0.1-py3-none-any.whl", hash = "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903"}, +] [package.extras] -lint = ["flake8", "mypy", "docutils-stubs"] -test = ["pytest", "html5lib"] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["html5lib", "pytest"] [[package]] name = "sphinxcontrib-jquery" @@ -1619,6 +3098,10 @@ description = "Extension to include jQuery on newer Sphinx releases" category = "dev" optional = false python-versions = ">=2.7" +files = [ + {file = "sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a"}, + {file = "sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae"}, +] [package.dependencies] Sphinx = ">=1.8" @@ -1630,9 +3113,13 @@ description = "A sphinx extension which renders display math in HTML via JavaScr category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] [package.extras] -test = ["pytest", "flake8", "mypy"] +test = ["flake8", "mypy", "pytest"] [[package]] name = "sphinxcontrib-qthelp" @@ -1641,9 +3128,13 @@ description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp d category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, + {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, +] [package.extras] -lint = ["flake8", "mypy", "docutils-stubs"] +lint = ["docutils-stubs", "flake8", "mypy"] test = ["pytest"] [[package]] @@ -1653,9 +3144,13 @@ description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, + {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, +] [package.extras] -lint = ["flake8", "mypy", "docutils-stubs"] +lint = ["docutils-stubs", "flake8", "mypy"] test = ["pytest"] [[package]] @@ -1665,57 +3160,108 @@ description = "Database Abstraction Library" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "SQLAlchemy-2.0.13-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7ad24c85f2a1caf0cd1ae8c2fdb668777a51a02246d9039420f94bd7dbfd37ed"}, + {file = "SQLAlchemy-2.0.13-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:db24d2738add6db19d66ca820479d2f8f96d3f5a13c223f27fa28dd2f268a4bd"}, + {file = "SQLAlchemy-2.0.13-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:72746ec17a7d9c5acf2c57a6e6190ceba3dad7127cd85bb17f24e90acc0e8e3f"}, + {file = "SQLAlchemy-2.0.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:755f653d693f9b8f4286d987aec0d4279821bf8d179a9de8e8a5c685e77e57d6"}, + {file = "SQLAlchemy-2.0.13-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e0d20f27edfd6f35b388da2bdcd7769e4ffa374fef8994980ced26eb287e033a"}, + {file = "SQLAlchemy-2.0.13-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:37de4010f53f452e94e5ed6684480432cfe6a7a8914307ef819cd028b05b98d5"}, + {file = "SQLAlchemy-2.0.13-cp310-cp310-win32.whl", hash = "sha256:31f72bb300eed7bfdb373c7c046121d84fa0ae6f383089db9505ff553ac27cef"}, + {file = "SQLAlchemy-2.0.13-cp310-cp310-win_amd64.whl", hash = "sha256:ec2f525273528425ed2f51861b7b88955160cb95dddb17af0914077040aff4a5"}, + {file = "SQLAlchemy-2.0.13-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2424a84f131901fbb20a99844d47b38b517174c6e964c8efb15ea6bb9ced8c2b"}, + {file = "SQLAlchemy-2.0.13-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4f9832815257969b3ca9bf0501351e4c02c8d60cbd3ec9f9070d5b0f8852900e"}, + {file = "SQLAlchemy-2.0.13-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a30e4db983faa5145e00ef6eaf894a2d503b3221dbf40a595f3011930d3d0bac"}, + {file = "SQLAlchemy-2.0.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f717944aee40e9f48776cf85b523bb376aa2d9255a268d6d643c57ab387e7264"}, + {file = "SQLAlchemy-2.0.13-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9119795d2405eb23bf7e6707e228fe38124df029494c1b3576459aa3202ea432"}, + {file = "SQLAlchemy-2.0.13-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2ad9688debf1f0ae9c6e0706a4e2d33b1a01281317cee9bd1d7eef8020c5baac"}, + {file = "SQLAlchemy-2.0.13-cp311-cp311-win32.whl", hash = "sha256:c61b89803a87a3b2a394089a7dadb79a6c64c89f2e8930cc187fec43b319f8d2"}, + {file = "SQLAlchemy-2.0.13-cp311-cp311-win_amd64.whl", hash = "sha256:0aa2cbde85a6eab9263ab480f19e8882d022d30ebcdc14d69e6a8d7c07b0a871"}, + {file = "SQLAlchemy-2.0.13-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:9ad883ac4f5225999747f0849643c4d0ec809d9ffe0ddc81a81dd3e68d0af463"}, + {file = "SQLAlchemy-2.0.13-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e481e54db8cec1457ee7c05f6d2329e3298a304a70d3b5e2e82e77170850b385"}, + {file = "SQLAlchemy-2.0.13-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4e08e3831671008888bad5d160d757ef35ce34dbb73b78c3998d16aa1334c97"}, + {file = "SQLAlchemy-2.0.13-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:f234ba3bb339ad17803009c8251f5ee65dcf283a380817fe486823b08b26383d"}, + {file = "SQLAlchemy-2.0.13-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:375b7ba88f261dbd79d044f20cbcd919d88befb63f26af9d084614f10cdf97a6"}, + {file = "SQLAlchemy-2.0.13-cp37-cp37m-win32.whl", hash = "sha256:9136d596111c742d061c0f99bab95c5370016c4101a32e72c2b634ad5e0757e6"}, + {file = "SQLAlchemy-2.0.13-cp37-cp37m-win_amd64.whl", hash = "sha256:7612a7366a0855a04430363fb4ab392dc6818aaece0b2e325ff30ee77af9b21f"}, + {file = "SQLAlchemy-2.0.13-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:49c138856035cb97f0053e5e57ba90ec936b28a0b8b0020d44965c7b0c0bf03a"}, + {file = "SQLAlchemy-2.0.13-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a5e9e78332a5d841422b88b8c490dfd7f761e64b3430249b66c05d02f72ceab0"}, + {file = "SQLAlchemy-2.0.13-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd0febae872a4042da44e972c070f0fd49a85a0a7727ab6b85425f74348be14e"}, + {file = "SQLAlchemy-2.0.13-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:566a0ac347cf4632f551e7b28bbd0d215af82e6ffaa2556f565a3b6b51dc3f81"}, + {file = "SQLAlchemy-2.0.13-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e5e5dc300a0ca8755ada1569f5caccfcdca28607dfb98b86a54996b288a8ebd3"}, + {file = "SQLAlchemy-2.0.13-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a25b4c4fdd633501233924f873e6f6cd8970732859ecfe4ecfb60635881f70be"}, + {file = "SQLAlchemy-2.0.13-cp38-cp38-win32.whl", hash = "sha256:6777673d346071451bf7cccf8d0499024f1bd6a835fc90b4fe7af50373d92ce6"}, + {file = "SQLAlchemy-2.0.13-cp38-cp38-win_amd64.whl", hash = "sha256:2f0a355264af0952570f18457102984e1f79510f856e5e0ae652e63316d1ca23"}, + {file = "SQLAlchemy-2.0.13-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d93ebbff3dcf05274843ad8cf650b48ee634626e752c5d73614e5ec9df45f0ce"}, + {file = "SQLAlchemy-2.0.13-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fec56c7d1b6a22c8f01557de3975d962ee40270b81b60d1cfdadf2a105d10e84"}, + {file = "SQLAlchemy-2.0.13-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0eb14a386a5b610305bec6639b35540b47f408b0a59f75999199aed5b3d40079"}, + {file = "SQLAlchemy-2.0.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2f3b5236079bc3e318a92bab2cc3f669cc32127075ab03ff61cacbae1c392b8"}, + {file = "SQLAlchemy-2.0.13-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bf1aae95e80acea02a0a622e1c12d3fefc52ffd0fe7bda70a30d070373fbb6c3"}, + {file = "SQLAlchemy-2.0.13-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cdf80359b641185ae7e580afb9f88cf560298f309a38182972091165bfe1225d"}, + {file = "SQLAlchemy-2.0.13-cp39-cp39-win32.whl", hash = "sha256:f463598f9e51ccc04f0fe08500f9a0c3251a7086765350be418598b753b5561d"}, + {file = "SQLAlchemy-2.0.13-cp39-cp39-win_amd64.whl", hash = "sha256:881cc388dded44ae6e17a1666364b98bd76bcdc71b869014ae725f06ba298e0e"}, + {file = "SQLAlchemy-2.0.13-py3-none-any.whl", hash = "sha256:0d6979c9707f8b82366ba34b38b5a6fe32f75766b2e901f9820e271e95384070"}, + {file = "SQLAlchemy-2.0.13.tar.gz", hash = "sha256:8d97b37b4e60073c38bcf94e289e3be09ef9be870de88d163f16e08f2b9ded1a"}, +] + +[package.dependencies] +greenlet = {version = "!=0.4.17", markers = "platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\""} +typing-extensions = ">=4.2.0" + +[package.extras] +aiomysql = ["aiomysql", "greenlet (!=0.4.17)"] +aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing-extensions (!=3.10.0.1)"] +asyncio = ["greenlet (!=0.4.17)"] +asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"] +mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5)"] +mssql = ["pyodbc"] +mssql-pymssql = ["pymssql"] +mssql-pyodbc = ["pyodbc"] +mypy = ["mypy (>=0.910)"] +mysql = ["mysqlclient (>=1.4.0)"] +mysql-connector = ["mysql-connector-python"] +oracle = ["cx-oracle (>=7)"] +oracle-oracledb = ["oracledb (>=1.0.1)"] +postgresql = ["psycopg2 (>=2.7)"] +postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] +postgresql-pg8000 = ["pg8000 (>=1.29.1)"] +postgresql-psycopg = ["psycopg (>=3.0.7)"] +postgresql-psycopg2binary = ["psycopg2-binary"] +postgresql-psycopg2cffi = ["psycopg2cffi"] +pymysql = ["pymysql"] +sqlcipher = ["sqlcipher3-binary"] + +[[package]] +name = "stack-data" +version = "0.6.2" +description = "Extract data from python stack frames and tracebacks for informative displays" +category = "dev" +optional = false +python-versions = "*" +files = [ + {file = "stack_data-0.6.2-py3-none-any.whl", hash = "sha256:cbb2a53eb64e5785878201a97ed7c7b94883f48b87bfb0bbe8b623c74679e4a8"}, + {file = "stack_data-0.6.2.tar.gz", hash = "sha256:32d2dd0376772d01b6cb9fc996f3c8b57a357089dec328ed4b6553d037eaf815"}, +] + +[package.dependencies] +asttokens = ">=2.1.0" +executing = ">=1.2.0" +pure-eval = "*" + +[package.extras] +tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] -[package.dependencies] -greenlet = {version = "!=0.4.17", markers = "platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\""} -typing-extensions = ">=4.2.0" - -[package.extras] -aiomysql = ["greenlet (!=0.4.17)", "aiomysql"] -aiosqlite = ["greenlet (!=0.4.17)", "aiosqlite", "typing-extensions (!=3.10.0.1)"] -asyncio = ["greenlet (!=0.4.17)"] -asyncmy = ["greenlet (!=0.4.17)", "asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)"] -mariadb_connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5)"] -mssql = ["pyodbc"] -mssql_pymssql = ["pymssql"] -mssql_pyodbc = ["pyodbc"] -mypy = ["mypy (>=0.910)"] -mysql = ["mysqlclient (>=1.4.0)"] -mysql_connector = ["mysql-connector-python"] -oracle = ["cx-oracle (>=7)"] -oracle_oracledb = ["oracledb (>=1.0.1)"] -postgresql = ["psycopg2 (>=2.7)"] -postgresql_asyncpg = ["greenlet (!=0.4.17)", "asyncpg"] -postgresql_pg8000 = ["pg8000 (>=1.29.1)"] -postgresql_psycopg = ["psycopg (>=3.0.7)"] -postgresql_psycopg2binary = ["psycopg2-binary"] -postgresql_psycopg2cffi = ["psycopg2cffi"] -pymysql = ["pymysql"] -sqlcipher = ["sqlcipher3-binary"] - -[[package]] -name = "stack-data" -version = "0.5.1" -description = "Extract data from python stack frames and tracebacks for informative displays" -category = "dev" -optional = false -python-versions = "*" - -[package.dependencies] -asttokens = "*" -executing = "*" -pure-eval = "*" - -[package.extras] -tests = ["pytest", "typeguard", "pygments", "littleutils", "cython"] - [[package]] name = "stevedore" -version = "4.0.0" +version = "5.0.0" description = "Manage dynamic plugins for Python applications" category = "dev" optional = false python-versions = ">=3.8" +files = [ + {file = "stevedore-5.0.0-py3-none-any.whl", hash = "sha256:bd5a71ff5e5e5f5ea983880e4a1dd1bb47f8feebbb3d95b592398e2f02194771"}, + {file = "stevedore-5.0.0.tar.gz", hash = "sha256:2c428d2338976279e8eb2196f7a94910960d9f7ba2f41f3988511e95ca447021"}, +] [package.dependencies] pbr = ">=2.0.0,<2.1.0 || >2.1.0" @@ -1727,17 +3273,25 @@ description = "Pretty-print tabular data" category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "tabulate-0.8.10-py3-none-any.whl", hash = "sha256:0ba055423dbaa164b9e456abe7920c5e8ed33fcc16f6d1b2f2d152c8e1e8b4fc"}, + {file = "tabulate-0.8.10.tar.gz", hash = "sha256:6c57f3f3dd7ac2782770155f3adb2db0b1a269637e42f27599925e64b114f519"}, +] [package.extras] widechars = ["wcwidth"] [[package]] name = "terminado" -version = "0.16.0" +version = "0.17.1" description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "terminado-0.17.1-py3-none-any.whl", hash = "sha256:8650d44334eba354dd591129ca3124a6ba42c3d5b70df5051b6921d506fdaeae"}, + {file = "terminado-0.17.1.tar.gz", hash = "sha256:6ccbbcd3a4f8a25a5ec04991f39a0b8db52dfcd487ea0e578d977e6752380333"}, +] [package.dependencies] ptyprocess = {version = "*", markers = "os_name != \"nt\""} @@ -1745,22 +3299,27 @@ pywinpty = {version = ">=1.1.0", markers = "os_name == \"nt\""} tornado = ">=6.1.0" [package.extras] -test = ["pre-commit", "pytest-timeout", "pytest (>=6.0)"] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] [[package]] name = "tinycss2" -version = "1.1.1" +version = "1.2.1" description = "A tiny CSS parser" category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" +files = [ + {file = "tinycss2-1.2.1-py3-none-any.whl", hash = "sha256:2b80a96d41e7c3914b8cda8bc7f705a4d9c49275616e886103dd839dfc847847"}, + {file = "tinycss2-1.2.1.tar.gz", hash = "sha256:8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627"}, +] [package.dependencies] webencodings = ">=0.4" [package.extras] -doc = ["sphinx", "sphinx-rtd-theme"] -test = ["pytest", "pytest-cov", "pytest-flake8", "pytest-isort", "coverage"] +doc = ["sphinx", "sphinx_rtd_theme"] +test = ["flake8", "isort", "pytest"] [[package]] name = "toml" @@ -1769,6 +3328,10 @@ description = "Python Library for Tom's Obvious, Minimal Language" category = "dev" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] [[package]] name = "tomli" @@ -1777,79 +3340,153 @@ description = "A lil' TOML parser" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] [[package]] name = "tomlkit" -version = "0.11.5" +version = "0.11.8" description = "Style preserving TOML library" category = "dev" optional = false -python-versions = ">=3.6,<4.0" +python-versions = ">=3.7" +files = [ + {file = "tomlkit-0.11.8-py3-none-any.whl", hash = "sha256:8c726c4c202bdb148667835f68d68780b9a003a9ec34167b6c673b38eff2a171"}, + {file = "tomlkit-0.11.8.tar.gz", hash = "sha256:9330fc7faa1db67b541b28e62018c17d20be733177d290a13b24c62d1614e0c3"}, +] [[package]] name = "tornado" -version = "6.2" +version = "6.3.2" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." category = "dev" optional = false -python-versions = ">= 3.7" +python-versions = ">= 3.8" +files = [ + {file = "tornado-6.3.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:c367ab6c0393d71171123ca5515c61ff62fe09024fa6bf299cd1339dc9456829"}, + {file = "tornado-6.3.2-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b46a6ab20f5c7c1cb949c72c1994a4585d2eaa0be4853f50a03b5031e964fc7c"}, + {file = "tornado-6.3.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c2de14066c4a38b4ecbbcd55c5cc4b5340eb04f1c5e81da7451ef555859c833f"}, + {file = "tornado-6.3.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:05615096845cf50a895026f749195bf0b10b8909f9be672f50b0fe69cba368e4"}, + {file = "tornado-6.3.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5b17b1cf5f8354efa3d37c6e28fdfd9c1c1e5122f2cb56dac121ac61baa47cbe"}, + {file = "tornado-6.3.2-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:29e71c847a35f6e10ca3b5c2990a52ce38b233019d8e858b755ea6ce4dcdd19d"}, + {file = "tornado-6.3.2-cp38-abi3-musllinux_1_1_i686.whl", hash = "sha256:834ae7540ad3a83199a8da8f9f2d383e3c3d5130a328889e4cc991acc81e87a0"}, + {file = "tornado-6.3.2-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:6a0848f1aea0d196a7c4f6772197cbe2abc4266f836b0aac76947872cd29b411"}, + {file = "tornado-6.3.2-cp38-abi3-win32.whl", hash = "sha256:7efcbcc30b7c654eb6a8c9c9da787a851c18f8ccd4a5a3a95b05c7accfa068d2"}, + {file = "tornado-6.3.2-cp38-abi3-win_amd64.whl", hash = "sha256:0c325e66c8123c606eea33084976c832aa4e766b7dff8aedd7587ea44a604cdf"}, + {file = "tornado-6.3.2.tar.gz", hash = "sha256:4b927c4f19b71e627b13f3db2324e4ae660527143f9e1f2e2fb404f3a187e2ba"}, +] [[package]] name = "traitlets" -version = "5.4.0" -description = "" +version = "5.9.0" +description = "Traitlets Python configuration system" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "traitlets-5.9.0-py3-none-any.whl", hash = "sha256:9e6ec080259b9a5940c797d58b613b5e31441c2257b87c2e795c5228ae80d2d8"}, + {file = "traitlets-5.9.0.tar.gz", hash = "sha256:f6cde21a9c68cf756af02035f72d5a723bf607e862e7be33ece505abf4a3bad9"}, +] [package.extras] -test = ["pre-commit", "pytest"] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["argcomplete (>=2.0)", "pre-commit", "pytest", "pytest-mock"] [[package]] name = "typing-extensions" -version = "4.4.0" +version = "4.5.0" description = "Backported and Experimental Type Hints for Python 3.7+" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "typing_extensions-4.5.0-py3-none-any.whl", hash = "sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4"}, + {file = "typing_extensions-4.5.0.tar.gz", hash = "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb"}, +] + +[[package]] +name = "uri-template" +version = "1.2.0" +description = "RFC 6570 URI Template Processor" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "uri_template-1.2.0-py3-none-any.whl", hash = "sha256:f1699c77b73b925cf4937eae31ab282a86dc885c333f2e942513f08f691fc7db"}, + {file = "uri_template-1.2.0.tar.gz", hash = "sha256:934e4d09d108b70eb8a24410af8615294d09d279ce0e7cbcdaef1bd21f932b06"}, +] + +[package.extras] +dev = ["flake8 (<4.0.0)", "flake8-annotations", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-noqa", "flake8-requirements", "flake8-type-annotations", "flake8-use-fstring", "mypy", "pep8-naming"] [[package]] name = "urllib3" -version = "1.26.15" +version = "2.0.2" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +python-versions = ">=3.7" +files = [ + {file = "urllib3-2.0.2-py3-none-any.whl", hash = "sha256:d055c2f9d38dc53c808f6fdc8eab7360b6fdbbde02340ed25cfbcd817c62469e"}, + {file = "urllib3-2.0.2.tar.gz", hash = "sha256:61717a1095d7e155cdb737ac7bb2f4324a858a1e2e6466f6d03ff630ca68d3cc"}, +] [package.extras] -brotli = ["brotlicffi (>=0.8.0)", "brotli (>=1.0.9)", "brotlipy (>=0.6.0)"] -secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "urllib3-secure-extra", "ipaddress"] -socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] +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 = "virtualenv" -version = "20.16.5" +version = "20.23.0" description = "Virtual Python Environment builder" category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" +files = [ + {file = "virtualenv-20.23.0-py3-none-any.whl", hash = "sha256:6abec7670e5802a528357fdc75b26b9f57d5d92f29c5462ba0fbe45feacc685e"}, + {file = "virtualenv-20.23.0.tar.gz", hash = "sha256:a85caa554ced0c0afbd0d638e7e2d7b5f92d23478d05d17a76daeac8f279f924"}, +] [package.dependencies] -distlib = ">=0.3.5,<1" -filelock = ">=3.4.1,<4" -platformdirs = ">=2.4,<3" +distlib = ">=0.3.6,<1" +filelock = ">=3.11,<4" +platformdirs = ">=3.2,<4" [package.extras] -docs = ["proselint (>=0.13)", "sphinx (>=5.1.1)", "sphinx-argparse (>=0.3.1)", "sphinx-rtd-theme (>=1)", "towncrier (>=21.9)"] -testing = ["coverage (>=6.2)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=21.3)", "pytest (>=7.0.1)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.2)", "pytest-mock (>=3.6.1)", "pytest-randomly (>=3.10.3)", "pytest-timeout (>=2.1)"] +docs = ["furo (>=2023.3.27)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=22.12)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.3)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.3.1)", "pytest-env (>=0.8.1)", "pytest-freezegun (>=0.4.2)", "pytest-mock (>=3.10)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=67.7.1)", "time-machine (>=2.9)"] [[package]] name = "wcwidth" -version = "0.2.5" +version = "0.2.6" description = "Measures the displayed width of unicode strings in a terminal" category = "dev" optional = false python-versions = "*" +files = [ + {file = "wcwidth-0.2.6-py2.py3-none-any.whl", hash = "sha256:795b138f6875577cd91bba52baf9e445cd5118fd32723b460e30a0af30ea230e"}, + {file = "wcwidth-0.2.6.tar.gz", hash = "sha256:a5220780a404dbe3353789870978e472cfe477761f06ee55077256e509b156d0"}, +] + +[[package]] +name = "webcolors" +version = "1.13" +description = "A library for working with the color formats defined by HTML and CSS." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "webcolors-1.13-py3-none-any.whl", hash = "sha256:29bc7e8752c0a1bd4a1f03c14d6e6a72e93d82193738fa860cbff59d0fcc11bf"}, + {file = "webcolors-1.13.tar.gz", hash = "sha256:c225b674c83fa923be93d235330ce0300373d02885cef23238813b0d5668304a"}, +] + +[package.extras] +docs = ["furo", "sphinx", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-notfound-page", "sphinxext-opengraph"] +tests = ["pytest", "pytest-cov"] [[package]] name = "webencodings" @@ -1858,1305 +3495,142 @@ description = "Character encoding aliases for legacy web content" category = "dev" optional = false python-versions = "*" +files = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] + +[[package]] +name = "websocket-client" +version = "1.5.1" +description = "WebSocket client for Python with low level API options" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "websocket-client-1.5.1.tar.gz", hash = "sha256:3f09e6d8230892547132177f575a4e3e73cfdf06526e20cc02aa1c3b47184d40"}, + {file = "websocket_client-1.5.1-py3-none-any.whl", hash = "sha256:cdf5877568b7e83aa7cf2244ab56a3213de587bbe0ce9d8b9600fc77b455d89e"}, +] + +[package.extras] +docs = ["Sphinx (>=3.4)", "sphinx-rtd-theme (>=0.5)"] +optional = ["python-socks", "wsaccel"] +test = ["websockets"] [[package]] name = "widgetsnbextension" -version = "4.0.3" +version = "4.0.7" description = "Jupyter interactive widgets for Jupyter Notebook" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "widgetsnbextension-4.0.7-py3-none-any.whl", hash = "sha256:be3228a73bbab189a16be2d4a3cd89ecbd4e31948bfdc64edac17dcdee3cd99c"}, + {file = "widgetsnbextension-4.0.7.tar.gz", hash = "sha256:ea67c17a7cd4ae358f8f46c3b304c40698bc0423732e3f273321ee141232c8be"}, +] [[package]] name = "wrapt" -version = "1.14.1" +version = "1.15.0" description = "Module for decorators, wrappers and monkey patching." category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +files = [ + {file = "wrapt-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ca1cccf838cd28d5a0883b342474c630ac48cac5df0ee6eacc9c7290f76b11c1"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e826aadda3cae59295b95343db8f3d965fb31059da7de01ee8d1c40a60398b29"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5fc8e02f5984a55d2c653f5fea93531e9836abbd84342c1d1e17abc4a15084c2"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:96e25c8603a155559231c19c0349245eeb4ac0096fe3c1d0be5c47e075bd4f46"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:40737a081d7497efea35ab9304b829b857f21558acfc7b3272f908d33b0d9d4c"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f87ec75864c37c4c6cb908d282e1969e79763e0d9becdfe9fe5473b7bb1e5f09"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:1286eb30261894e4c70d124d44b7fd07825340869945c79d05bda53a40caa079"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:493d389a2b63c88ad56cdc35d0fa5752daac56ca755805b1b0c530f785767d5e"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:58d7a75d731e8c63614222bcb21dd992b4ab01a399f1f09dd82af17bbfc2368a"}, + {file = "wrapt-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:21f6d9a0d5b3a207cdf7acf8e58d7d13d463e639f0c7e01d82cdb671e6cb7923"}, + {file = "wrapt-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce42618f67741d4697684e501ef02f29e758a123aa2d669e2d964ff734ee00ee"}, + {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41d07d029dd4157ae27beab04d22b8e261eddfc6ecd64ff7000b10dc8b3a5727"}, + {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54accd4b8bc202966bafafd16e69da9d5640ff92389d33d28555c5fd4f25ccb7"}, + {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fbfbca668dd15b744418265a9607baa970c347eefd0db6a518aaf0cfbd153c0"}, + {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:76e9c727a874b4856d11a32fb0b389afc61ce8aaf281ada613713ddeadd1cfec"}, + {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e20076a211cd6f9b44a6be58f7eeafa7ab5720eb796975d0c03f05b47d89eb90"}, + {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a74d56552ddbde46c246b5b89199cb3fd182f9c346c784e1a93e4dc3f5ec9975"}, + {file = "wrapt-1.15.0-cp310-cp310-win32.whl", hash = "sha256:26458da5653aa5b3d8dc8b24192f574a58984c749401f98fff994d41d3f08da1"}, + {file = "wrapt-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:75760a47c06b5974aa5e01949bf7e66d2af4d08cb8c1d6516af5e39595397f5e"}, + {file = "wrapt-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ba1711cda2d30634a7e452fc79eabcadaffedf241ff206db2ee93dd2c89a60e7"}, + {file = "wrapt-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:56374914b132c702aa9aa9959c550004b8847148f95e1b824772d453ac204a72"}, + {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a89ce3fd220ff144bd9d54da333ec0de0399b52c9ac3d2ce34b569cf1a5748fb"}, + {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bbe623731d03b186b3d6b0d6f51865bf598587c38d6f7b0be2e27414f7f214e"}, + {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3abbe948c3cbde2689370a262a8d04e32ec2dd4f27103669a45c6929bcdbfe7c"}, + {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b67b819628e3b748fd3c2192c15fb951f549d0f47c0449af0764d7647302fda3"}, + {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7eebcdbe3677e58dd4c0e03b4f2cfa346ed4049687d839adad68cc38bb559c92"}, + {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:74934ebd71950e3db69960a7da29204f89624dde411afbfb3b4858c1409b1e98"}, + {file = "wrapt-1.15.0-cp311-cp311-win32.whl", hash = "sha256:bd84395aab8e4d36263cd1b9308cd504f6cf713b7d6d3ce25ea55670baec5416"}, + {file = "wrapt-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:a487f72a25904e2b4bbc0817ce7a8de94363bd7e79890510174da9d901c38705"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:4ff0d20f2e670800d3ed2b220d40984162089a6e2c9646fdb09b85e6f9a8fc29"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9ed6aa0726b9b60911f4aed8ec5b8dd7bf3491476015819f56473ffaef8959bd"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:896689fddba4f23ef7c718279e42f8834041a21342d95e56922e1c10c0cc7afb"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:75669d77bb2c071333417617a235324a1618dba66f82a750362eccbe5b61d248"}, + {file = "wrapt-1.15.0-cp35-cp35m-win32.whl", hash = "sha256:fbec11614dba0424ca72f4e8ba3c420dba07b4a7c206c8c8e4e73f2e98f4c559"}, + {file = "wrapt-1.15.0-cp35-cp35m-win_amd64.whl", hash = "sha256:fd69666217b62fa5d7c6aa88e507493a34dec4fa20c5bd925e4bc12fce586639"}, + {file = "wrapt-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b0724f05c396b0a4c36a3226c31648385deb6a65d8992644c12a4963c70326ba"}, + {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbeccb1aa40ab88cd29e6c7d8585582c99548f55f9b2581dfc5ba68c59a85752"}, + {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38adf7198f8f154502883242f9fe7333ab05a5b02de7d83aa2d88ea621f13364"}, + {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:578383d740457fa790fdf85e6d346fda1416a40549fe8db08e5e9bd281c6a475"}, + {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:a4cbb9ff5795cd66f0066bdf5947f170f5d63a9274f99bdbca02fd973adcf2a8"}, + {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:af5bd9ccb188f6a5fdda9f1f09d9f4c86cc8a539bd48a0bfdc97723970348418"}, + {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b56d5519e470d3f2fe4aa7585f0632b060d532d0696c5bdfb5e8319e1d0f69a2"}, + {file = "wrapt-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:77d4c1b881076c3ba173484dfa53d3582c1c8ff1f914c6461ab70c8428b796c1"}, + {file = "wrapt-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:077ff0d1f9d9e4ce6476c1a924a3332452c1406e59d90a2cf24aeb29eeac9420"}, + {file = "wrapt-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5c5aa28df055697d7c37d2099a7bc09f559d5053c3349b1ad0c39000e611d317"}, + {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a8564f283394634a7a7054b7983e47dbf39c07712d7b177b37e03f2467a024e"}, + {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780c82a41dc493b62fc5884fb1d3a3b81106642c5c5c78d6a0d4cbe96d62ba7e"}, + {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e169e957c33576f47e21864cf3fc9ff47c223a4ebca8960079b8bd36cb014fd0"}, + {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b02f21c1e2074943312d03d243ac4388319f2456576b2c6023041c4d57cd7019"}, + {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f2e69b3ed24544b0d3dbe2c5c0ba5153ce50dcebb576fdc4696d52aa22db6034"}, + {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d787272ed958a05b2c86311d3a4135d3c2aeea4fc655705f074130aa57d71653"}, + {file = "wrapt-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:02fce1852f755f44f95af51f69d22e45080102e9d00258053b79367d07af39c0"}, + {file = "wrapt-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:abd52a09d03adf9c763d706df707c343293d5d106aea53483e0ec8d9e310ad5e"}, + {file = "wrapt-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cdb4f085756c96a3af04e6eca7f08b1345e94b53af8921b25c72f096e704e145"}, + {file = "wrapt-1.15.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:230ae493696a371f1dbffaad3dafbb742a4d27a0afd2b1aecebe52b740167e7f"}, + {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63424c681923b9f3bfbc5e3205aafe790904053d42ddcc08542181a30a7a51bd"}, + {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6bcbfc99f55655c3d93feb7ef3800bd5bbe963a755687cbf1f490a71fb7794b"}, + {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c99f4309f5145b93eca6e35ac1a988f0dc0a7ccf9ccdcd78d3c0adf57224e62f"}, + {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b130fe77361d6771ecf5a219d8e0817d61b236b7d8b37cc045172e574ed219e6"}, + {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:96177eb5645b1c6985f5c11d03fc2dbda9ad24ec0f3a46dcce91445747e15094"}, + {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5fe3e099cf07d0fb5a1e23d399e5d4d1ca3e6dfcbe5c8570ccff3e9208274f7"}, + {file = "wrapt-1.15.0-cp38-cp38-win32.whl", hash = "sha256:abd8f36c99512755b8456047b7be10372fca271bf1467a1caa88db991e7c421b"}, + {file = "wrapt-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:b06fa97478a5f478fb05e1980980a7cdf2712015493b44d0c87606c1513ed5b1"}, + {file = "wrapt-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2e51de54d4fb8fb50d6ee8327f9828306a959ae394d3e01a1ba8b2f937747d86"}, + {file = "wrapt-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0970ddb69bba00670e58955f8019bec4a42d1785db3faa043c33d81de2bf843c"}, + {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76407ab327158c510f44ded207e2f76b657303e17cb7a572ffe2f5a8a48aa04d"}, + {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd525e0e52a5ff16653a3fc9e3dd827981917d34996600bbc34c05d048ca35cc"}, + {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d37ac69edc5614b90516807de32d08cb8e7b12260a285ee330955604ed9dd29"}, + {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:078e2a1a86544e644a68422f881c48b84fef6d18f8c7a957ffd3f2e0a74a0d4a"}, + {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2cf56d0e237280baed46f0b5316661da892565ff58309d4d2ed7dba763d984b8"}, + {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7dc0713bf81287a00516ef43137273b23ee414fe41a3c14be10dd95ed98a2df9"}, + {file = "wrapt-1.15.0-cp39-cp39-win32.whl", hash = "sha256:46ed616d5fb42f98630ed70c3529541408166c22cdfd4540b88d5f21006b0eff"}, + {file = "wrapt-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:eef4d64c650f33347c1f9266fa5ae001440b232ad9b98f1f43dfe7a79435c0a6"}, + {file = "wrapt-1.15.0-py3-none-any.whl", hash = "sha256:64b1df0f83706b4ef4cfb4fb0e4c2669100fd7ecacfb59e091fad300d4e04640"}, + {file = "wrapt-1.15.0.tar.gz", hash = "sha256:d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a"}, +] [[package]] name = "zipp" -version = "3.9.0" +version = "3.15.0" description = "Backport of pathlib-compatible object wrapper for zip files" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556"}, + {file = "zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b"}, +] [package.extras] -docs = ["sphinx (>=3.5)", "jaraco.packaging (>=9)", "rst.linker (>=1.9)", "furo", "jaraco.tidelift (>=1.4)"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "flake8 (<5)", "pytest-cov", "pytest-enabler (>=1.3)", "jaraco.itertools", "func-timeout", "jaraco.functools", "more-itertools", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] [metadata] -lock-version = "1.1" +lock-version = "2.0" python-versions = "^3.9" content-hash = "00525ff4612cff5338458e39c47248cb6c4bd872500b2e48d7f1eb88d4a10b21" - -[metadata.files] -alabaster = [ - {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, - {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, -] -appnope = [ - {file = "appnope-0.1.3-py2.py3-none-any.whl", hash = "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"}, - {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, -] -argon2-cffi = [ - {file = "argon2-cffi-21.3.0.tar.gz", hash = "sha256:d384164d944190a7dd7ef22c6aa3ff197da12962bd04b17f64d4e93d934dba5b"}, - {file = "argon2_cffi-21.3.0-py3-none-any.whl", hash = "sha256:8c976986f2c5c0e5000919e6de187906cfd81fb1c72bf9d88c01177e77da7f80"}, -] -argon2-cffi-bindings = [ - {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"}, - {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"}, -] -astroid = [ - {file = "astroid-2.12.10-py3-none-any.whl", hash = "sha256:997e0c735df60d4a4caff27080a3afc51f9bdd693d3572a4a0b7090b645c36c5"}, - {file = "astroid-2.12.10.tar.gz", hash = "sha256:81f870105d892e73bf535da77a8261aa5bde838fa4ed12bb2f435291a098c581"}, -] -asttokens = [ - {file = "asttokens-2.0.8-py2.py3-none-any.whl", hash = "sha256:e3305297c744ae53ffa032c45dc347286165e4ffce6875dc662b205db0623d86"}, - {file = "asttokens-2.0.8.tar.gz", hash = "sha256:c61e16246ecfb2cde2958406b4c8ebc043c9e6d73aaa83c941673b35e5d3a76b"}, -] -attrs = [ - {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, - {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, -] -babel = [ - {file = "Babel-2.12.1-py3-none-any.whl", hash = "sha256:b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610"}, - {file = "Babel-2.12.1.tar.gz", hash = "sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455"}, -] -backcall = [ - {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, - {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, -] -bandit = [ - {file = "bandit-1.7.4-py3-none-any.whl", hash = "sha256:412d3f259dab4077d0e7f0c11f50f650cc7d10db905d98f6520a95a18049658a"}, - {file = "bandit-1.7.4.tar.gz", hash = "sha256:2d63a8c573417bae338962d4b9b06fbc6080f74ecd955a092849e1e65c717bd2"}, -] -beautifulsoup4 = [ - {file = "beautifulsoup4-4.11.1-py3-none-any.whl", hash = "sha256:58d5c3d29f5a36ffeb94f02f0d786cd53014cf9b3b3951d42e0080d8a9498d30"}, - {file = "beautifulsoup4-4.11.1.tar.gz", hash = "sha256:ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693"}, -] -black = [ - {file = "black-22.10.0-1fixedarch-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:5cc42ca67989e9c3cf859e84c2bf014f6633db63d1cbdf8fdb666dcd9e77e3fa"}, - {file = "black-22.10.0-1fixedarch-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:5d8f74030e67087b219b032aa33a919fae8806d49c867846bfacde57f43972ef"}, - {file = "black-22.10.0-1fixedarch-cp37-cp37m-macosx_10_16_x86_64.whl", hash = "sha256:197df8509263b0b8614e1df1756b1dd41be6738eed2ba9e9769f3880c2b9d7b6"}, - {file = "black-22.10.0-1fixedarch-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:2644b5d63633702bc2c5f3754b1b475378fbbfb481f62319388235d0cd104c2d"}, - {file = "black-22.10.0-1fixedarch-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:e41a86c6c650bcecc6633ee3180d80a025db041a8e2398dcc059b3afa8382cd4"}, - {file = "black-22.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2039230db3c6c639bd84efe3292ec7b06e9214a2992cd9beb293d639c6402edb"}, - {file = "black-22.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14ff67aec0a47c424bc99b71005202045dc09270da44a27848d534600ac64fc7"}, - {file = "black-22.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:819dc789f4498ecc91438a7de64427c73b45035e2e3680c92e18795a839ebb66"}, - {file = "black-22.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5b9b29da4f564ba8787c119f37d174f2b69cdfdf9015b7d8c5c16121ddc054ae"}, - {file = "black-22.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8b49776299fece66bffaafe357d929ca9451450f5466e997a7285ab0fe28e3b"}, - {file = "black-22.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:21199526696b8f09c3997e2b4db8d0b108d801a348414264d2eb8eb2532e540d"}, - {file = "black-22.10.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e464456d24e23d11fced2bc8c47ef66d471f845c7b7a42f3bd77bf3d1789650"}, - {file = "black-22.10.0-cp37-cp37m-win_amd64.whl", hash = "sha256:9311e99228ae10023300ecac05be5a296f60d2fd10fff31cf5c1fa4ca4b1988d"}, - {file = "black-22.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:fba8a281e570adafb79f7755ac8721b6cf1bbf691186a287e990c7929c7692ff"}, - {file = "black-22.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:915ace4ff03fdfff953962fa672d44be269deb2eaf88499a0f8805221bc68c87"}, - {file = "black-22.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:444ebfb4e441254e87bad00c661fe32df9969b2bf224373a448d8aca2132b395"}, - {file = "black-22.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:974308c58d057a651d182208a484ce80a26dac0caef2895836a92dd6ebd725e0"}, - {file = "black-22.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72ef3925f30e12a184889aac03d77d031056860ccae8a1e519f6cbb742736383"}, - {file = "black-22.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:432247333090c8c5366e69627ccb363bc58514ae3e63f7fc75c54b1ea80fa7de"}, - {file = "black-22.10.0-py3-none-any.whl", hash = "sha256:c957b2b4ea88587b46cf49d1dc17681c1e672864fd7af32fc1e9664d572b3458"}, - {file = "black-22.10.0.tar.gz", hash = "sha256:f513588da599943e0cde4e32cc9879e825d58720d6557062d1098c5ad80080e1"}, -] -bleach = [ - {file = "bleach-5.0.1-py3-none-any.whl", hash = "sha256:085f7f33c15bd408dd9b17a4ad77c577db66d76203e5984b1bd59baeee948b2a"}, - {file = "bleach-5.0.1.tar.gz", hash = "sha256:0d03255c47eb9bd2f26aa9bb7f2107732e7e8fe195ca2f64709fcf3b0a4a085c"}, -] -certifi = [ - {file = "certifi-2022.9.24-py3-none-any.whl", hash = "sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382"}, - {file = "certifi-2022.9.24.tar.gz", hash = "sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14"}, -] -cffi = [ - {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, - {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, - {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, - {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, - {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, - {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, - {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, - {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, - {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, - {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, - {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, - {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, - {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, - {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, - {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, - {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, - {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, - {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, - {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, - {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, - {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, - {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, - {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, - {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, - {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, - {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, - {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, - {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, - {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, - {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, - {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, - {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, - {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, - {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, - {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, -] -cfgv = [ - {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"}, - {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"}, -] -charset-normalizer = [ - {file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"}, - {file = "charset_normalizer-2.1.1-py3-none-any.whl", hash = "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"}, -] -click = [ - {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, - {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, -] -colorama = [ - {file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"}, - {file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"}, -] -coverage = [ - {file = "coverage-7.2.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:883123d0bbe1c136f76b56276074b0c79b5817dd4238097ffa64ac67257f4b6c"}, - {file = "coverage-7.2.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d2fbc2a127e857d2f8898aaabcc34c37771bf78a4d5e17d3e1f5c30cd0cbc62a"}, - {file = "coverage-7.2.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f3671662dc4b422b15776cdca89c041a6349b4864a43aa2350b6b0b03bbcc7f"}, - {file = "coverage-7.2.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780551e47d62095e088f251f5db428473c26db7829884323e56d9c0c3118791a"}, - {file = "coverage-7.2.5-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:066b44897c493e0dcbc9e6a6d9f8bbb6607ef82367cf6810d387c09f0cd4fe9a"}, - {file = "coverage-7.2.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b9a4ee55174b04f6af539218f9f8083140f61a46eabcaa4234f3c2a452c4ed11"}, - {file = "coverage-7.2.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:706ec567267c96717ab9363904d846ec009a48d5f832140b6ad08aad3791b1f5"}, - {file = "coverage-7.2.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ae453f655640157d76209f42c62c64c4d4f2c7f97256d3567e3b439bd5c9b06c"}, - {file = "coverage-7.2.5-cp310-cp310-win32.whl", hash = "sha256:f81c9b4bd8aa747d417407a7f6f0b1469a43b36a85748145e144ac4e8d303cb5"}, - {file = "coverage-7.2.5-cp310-cp310-win_amd64.whl", hash = "sha256:dc945064a8783b86fcce9a0a705abd7db2117d95e340df8a4333f00be5efb64c"}, - {file = "coverage-7.2.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:40cc0f91c6cde033da493227797be2826cbf8f388eaa36a0271a97a332bfd7ce"}, - {file = "coverage-7.2.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a66e055254a26c82aead7ff420d9fa8dc2da10c82679ea850d8feebf11074d88"}, - {file = "coverage-7.2.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c10fbc8a64aa0f3ed136b0b086b6b577bc64d67d5581acd7cc129af52654384e"}, - {file = "coverage-7.2.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a22cbb5ede6fade0482111fa7f01115ff04039795d7092ed0db43522431b4f2"}, - {file = "coverage-7.2.5-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:292300f76440651529b8ceec283a9370532f4ecba9ad67d120617021bb5ef139"}, - {file = "coverage-7.2.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7ff8f3fb38233035028dbc93715551d81eadc110199e14bbbfa01c5c4a43f8d8"}, - {file = "coverage-7.2.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:a08c7401d0b24e8c2982f4e307124b671c6736d40d1c39e09d7a8687bddf83ed"}, - {file = "coverage-7.2.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ef9659d1cda9ce9ac9585c045aaa1e59223b143f2407db0eaee0b61a4f266fb6"}, - {file = "coverage-7.2.5-cp311-cp311-win32.whl", hash = "sha256:30dcaf05adfa69c2a7b9f7dfd9f60bc8e36b282d7ed25c308ef9e114de7fc23b"}, - {file = "coverage-7.2.5-cp311-cp311-win_amd64.whl", hash = "sha256:97072cc90f1009386c8a5b7de9d4fc1a9f91ba5ef2146c55c1f005e7b5c5e068"}, - {file = "coverage-7.2.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:bebea5f5ed41f618797ce3ffb4606c64a5de92e9c3f26d26c2e0aae292f015c1"}, - {file = "coverage-7.2.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828189fcdda99aae0d6bf718ea766b2e715eabc1868670a0a07bf8404bf58c33"}, - {file = "coverage-7.2.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e8a95f243d01ba572341c52f89f3acb98a3b6d1d5d830efba86033dd3687ade"}, - {file = "coverage-7.2.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8834e5f17d89e05697c3c043d3e58a8b19682bf365048837383abfe39adaed5"}, - {file = "coverage-7.2.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d1f25ee9de21a39b3a8516f2c5feb8de248f17da7eead089c2e04aa097936b47"}, - {file = "coverage-7.2.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:1637253b11a18f453e34013c665d8bf15904c9e3c44fbda34c643fbdc9d452cd"}, - {file = "coverage-7.2.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8e575a59315a91ccd00c7757127f6b2488c2f914096077c745c2f1ba5b8c0969"}, - {file = "coverage-7.2.5-cp37-cp37m-win32.whl", hash = "sha256:509ecd8334c380000d259dc66feb191dd0a93b21f2453faa75f7f9cdcefc0718"}, - {file = "coverage-7.2.5-cp37-cp37m-win_amd64.whl", hash = "sha256:12580845917b1e59f8a1c2ffa6af6d0908cb39220f3019e36c110c943dc875b0"}, - {file = "coverage-7.2.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b5016e331b75310610c2cf955d9f58a9749943ed5f7b8cfc0bb89c6134ab0a84"}, - {file = "coverage-7.2.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:373ea34dca98f2fdb3e5cb33d83b6d801007a8074f992b80311fc589d3e6b790"}, - {file = "coverage-7.2.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a063aad9f7b4c9f9da7b2550eae0a582ffc7623dca1c925e50c3fbde7a579771"}, - {file = "coverage-7.2.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38c0a497a000d50491055805313ed83ddba069353d102ece8aef5d11b5faf045"}, - {file = "coverage-7.2.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2b3b05e22a77bb0ae1a3125126a4e08535961c946b62f30985535ed40e26614"}, - {file = "coverage-7.2.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0342a28617e63ad15d96dca0f7ae9479a37b7d8a295f749c14f3436ea59fdcb3"}, - {file = "coverage-7.2.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:cf97ed82ca986e5c637ea286ba2793c85325b30f869bf64d3009ccc1a31ae3fd"}, - {file = "coverage-7.2.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c2c41c1b1866b670573657d584de413df701f482574bad7e28214a2362cb1fd1"}, - {file = "coverage-7.2.5-cp38-cp38-win32.whl", hash = "sha256:10b15394c13544fce02382360cab54e51a9e0fd1bd61ae9ce012c0d1e103c813"}, - {file = "coverage-7.2.5-cp38-cp38-win_amd64.whl", hash = "sha256:a0b273fe6dc655b110e8dc89b8ec7f1a778d78c9fd9b4bda7c384c8906072212"}, - {file = "coverage-7.2.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5c587f52c81211d4530fa6857884d37f514bcf9453bdeee0ff93eaaf906a5c1b"}, - {file = "coverage-7.2.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4436cc9ba5414c2c998eaedee5343f49c02ca93b21769c5fdfa4f9d799e84200"}, - {file = "coverage-7.2.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6599bf92f33ab041e36e06d25890afbdf12078aacfe1f1d08c713906e49a3fe5"}, - {file = "coverage-7.2.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:857abe2fa6a4973f8663e039ead8d22215d31db613ace76e4a98f52ec919068e"}, - {file = "coverage-7.2.5-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6f5cab2d7f0c12f8187a376cc6582c477d2df91d63f75341307fcdcb5d60303"}, - {file = "coverage-7.2.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:aa387bd7489f3e1787ff82068b295bcaafbf6f79c3dad3cbc82ef88ce3f48ad3"}, - {file = "coverage-7.2.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:156192e5fd3dbbcb11cd777cc469cf010a294f4c736a2b2c891c77618cb1379a"}, - {file = "coverage-7.2.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bd3b4b8175c1db502adf209d06136c000df4d245105c8839e9d0be71c94aefe1"}, - {file = "coverage-7.2.5-cp39-cp39-win32.whl", hash = "sha256:ddc5a54edb653e9e215f75de377354e2455376f416c4378e1d43b08ec50acc31"}, - {file = "coverage-7.2.5-cp39-cp39-win_amd64.whl", hash = "sha256:338aa9d9883aaaad53695cb14ccdeb36d4060485bb9388446330bef9c361c252"}, - {file = "coverage-7.2.5-pp37.pp38.pp39-none-any.whl", hash = "sha256:8877d9b437b35a85c18e3c6499b23674684bf690f5d96c1006a1ef61f9fdf0f3"}, - {file = "coverage-7.2.5.tar.gz", hash = "sha256:f99ef080288f09ffc687423b8d60978cf3a465d3f404a18d1a05474bd8575a47"}, -] -debugpy = [ - {file = "debugpy-1.6.3-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:c4b2bd5c245eeb49824bf7e539f95fb17f9a756186e51c3e513e32999d8846f3"}, - {file = "debugpy-1.6.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b8deaeb779699350deeed835322730a3efec170b88927debc9ba07a1a38e2585"}, - {file = "debugpy-1.6.3-cp310-cp310-win32.whl", hash = "sha256:fc233a0160f3b117b20216f1169e7211b83235e3cd6749bcdd8dbb72177030c7"}, - {file = "debugpy-1.6.3-cp310-cp310-win_amd64.whl", hash = "sha256:dda8652520eae3945833e061cbe2993ad94a0b545aebd62e4e6b80ee616c76b2"}, - {file = "debugpy-1.6.3-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:d5c814596a170a0a58fa6fad74947e30bfd7e192a5d2d7bd6a12156c2899e13a"}, - {file = "debugpy-1.6.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c4cd6f37e3c168080d61d698390dfe2cd9e74ebf80b448069822a15dadcda57d"}, - {file = "debugpy-1.6.3-cp37-cp37m-win32.whl", hash = "sha256:3c9f985944a30cfc9ae4306ac6a27b9c31dba72ca943214dad4a0ab3840f6161"}, - {file = "debugpy-1.6.3-cp37-cp37m-win_amd64.whl", hash = "sha256:5ad571a36cec137ae6ed951d0ff75b5e092e9af6683da084753231150cbc5b25"}, - {file = "debugpy-1.6.3-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:adcfea5ea06d55d505375995e150c06445e2b20cd12885bcae566148c076636b"}, - {file = "debugpy-1.6.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:daadab4403427abd090eccb38d8901afd8b393e01fd243048fab3f1d7132abb4"}, - {file = "debugpy-1.6.3-cp38-cp38-win32.whl", hash = "sha256:6efc30325b68e451118b795eff6fe8488253ca3958251d5158106d9c87581bc6"}, - {file = "debugpy-1.6.3-cp38-cp38-win_amd64.whl", hash = "sha256:86d784b72c5411c833af1cd45b83d80c252b77c3bfdb43db17c441d772f4c734"}, - {file = "debugpy-1.6.3-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:4e255982552b0edfe3a6264438dbd62d404baa6556a81a88f9420d3ed79b06ae"}, - {file = "debugpy-1.6.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cca23cb6161ac89698d629d892520327dd1be9321c0960e610bbcb807232b45d"}, - {file = "debugpy-1.6.3-cp39-cp39-win32.whl", hash = "sha256:7c302095a81be0d5c19f6529b600bac971440db3e226dce85347cc27e6a61908"}, - {file = "debugpy-1.6.3-cp39-cp39-win_amd64.whl", hash = "sha256:34d2cdd3a7c87302ba5322b86e79c32c2115be396f3f09ca13306d8a04fe0f16"}, - {file = "debugpy-1.6.3-py2.py3-none-any.whl", hash = "sha256:84c39940a0cac410bf6aa4db00ba174f973eef521fbe9dd058e26bcabad89c4f"}, - {file = "debugpy-1.6.3.zip", hash = "sha256:e8922090514a890eec99cfb991bab872dd2e353ebb793164d5f01c362b9a40bf"}, -] -decorator = [ - {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, - {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, -] -defusedxml = [ - {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, - {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, -] -dill = [ - {file = "dill-0.3.5.1-py2.py3-none-any.whl", hash = "sha256:33501d03270bbe410c72639b350e941882a8b0fd55357580fbc873fba0c59302"}, - {file = "dill-0.3.5.1.tar.gz", hash = "sha256:d75e41f3eff1eee599d738e76ba8f4ad98ea229db8b085318aa2b3333a208c86"}, -] -distlib = [ - {file = "distlib-0.3.6-py2.py3-none-any.whl", hash = "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"}, - {file = "distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"}, -] -docutils = [ - {file = "docutils-0.18.1-py2.py3-none-any.whl", hash = "sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c"}, - {file = "docutils-0.18.1.tar.gz", hash = "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"}, -] -dparse = [ - {file = "dparse-0.6.2-py3-none-any.whl", hash = "sha256:8097076f1dd26c377f30d4745e6ec18fef42f3bf493933b842ac5bafad8c345f"}, - {file = "dparse-0.6.2.tar.gz", hash = "sha256:d45255bda21f998bc7ddf2afd5e62505ba6134756ba2d42a84c56b0826614dfe"}, -] -entrypoints = [ - {file = "entrypoints-0.4-py3-none-any.whl", hash = "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f"}, - {file = "entrypoints-0.4.tar.gz", hash = "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4"}, -] -executing = [ - {file = "executing-1.1.1-py2.py3-none-any.whl", hash = "sha256:236ea5f059a38781714a8bfba46a70fad3479c2f552abee3bbafadc57ed111b8"}, - {file = "executing-1.1.1.tar.gz", hash = "sha256:b0d7f8dcc2bac47ce6e39374397e7acecea6fdc380a6d5323e26185d70f38ea8"}, -] -fastjsonschema = [ - {file = "fastjsonschema-2.16.2-py3-none-any.whl", hash = "sha256:21f918e8d9a1a4ba9c22e09574ba72267a6762d47822db9add95f6454e51cc1c"}, - {file = "fastjsonschema-2.16.2.tar.gz", hash = "sha256:01e366f25d9047816fe3d288cbfc3e10541daf0af2044763f3d0ade42476da18"}, -] -filelock = [ - {file = "filelock-3.8.0-py3-none-any.whl", hash = "sha256:617eb4e5eedc82fc5f47b6d61e4d11cb837c56cb4544e39081099fa17ad109d4"}, - {file = "filelock-3.8.0.tar.gz", hash = "sha256:55447caa666f2198c5b6b13a26d2084d26fa5b115c00d065664b2124680c4edc"}, -] -flake8 = [ - {file = "flake8-4.0.1-py2.py3-none-any.whl", hash = "sha256:479b1304f72536a55948cb40a32dce8bb0ffe3501e26eaf292c7e60eb5e0428d"}, - {file = "flake8-4.0.1.tar.gz", hash = "sha256:806e034dda44114815e23c16ef92f95c91e4c71100ff52813adf7132a6ad870d"}, -] -flake8-docstrings = [ - {file = "flake8-docstrings-1.6.0.tar.gz", hash = "sha256:9fe7c6a306064af8e62a055c2f61e9eb1da55f84bb39caef2b84ce53708ac34b"}, - {file = "flake8_docstrings-1.6.0-py2.py3-none-any.whl", hash = "sha256:99cac583d6c7e32dd28bbfbef120a7c0d1b6dde4adb5a9fd441c4227a6534bde"}, -] -gitdb = [ - {file = "gitdb-4.0.9-py3-none-any.whl", hash = "sha256:8033ad4e853066ba6ca92050b9df2f89301b8fc8bf7e9324d412a63f8bf1a8fd"}, - {file = "gitdb-4.0.9.tar.gz", hash = "sha256:bac2fd45c0a1c9cf619e63a90d62bdc63892ef92387424b855792a6cabe789aa"}, -] -gitpython = [ - {file = "GitPython-3.1.28-py3-none-any.whl", hash = "sha256:77bfbd299d8709f6af7e0c70840ef26e7aff7cf0c1ed53b42dd7fc3a310fcb02"}, - {file = "GitPython-3.1.28.tar.gz", hash = "sha256:6bd3451b8271132f099ceeaf581392eaf6c274af74bb06144307870479d0697c"}, -] -greenlet = [ - {file = "greenlet-2.0.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:bdfea8c661e80d3c1c99ad7c3ff74e6e87184895bbaca6ee8cc61209f8b9b85d"}, - {file = "greenlet-2.0.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:9d14b83fab60d5e8abe587d51c75b252bcc21683f24699ada8fb275d7712f5a9"}, - {file = "greenlet-2.0.2-cp27-cp27m-win32.whl", hash = "sha256:6c3acb79b0bfd4fe733dff8bc62695283b57949ebcca05ae5c129eb606ff2d74"}, - {file = "greenlet-2.0.2-cp27-cp27m-win_amd64.whl", hash = "sha256:283737e0da3f08bd637b5ad058507e578dd462db259f7f6e4c5c365ba4ee9343"}, - {file = "greenlet-2.0.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:d27ec7509b9c18b6d73f2f5ede2622441de812e7b1a80bbd446cb0633bd3d5ae"}, - {file = "greenlet-2.0.2-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:30bcf80dda7f15ac77ba5af2b961bdd9dbc77fd4ac6105cee85b0d0a5fcf74df"}, - {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26fbfce90728d82bc9e6c38ea4d038cba20b7faf8a0ca53a9c07b67318d46088"}, - {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9190f09060ea4debddd24665d6804b995a9c122ef5917ab26e1566dcc712ceeb"}, - {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d75209eed723105f9596807495d58d10b3470fa6732dd6756595e89925ce2470"}, - {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3a51c9751078733d88e013587b108f1b7a1fb106d402fb390740f002b6f6551a"}, - {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:76ae285c8104046b3a7f06b42f29c7b73f77683df18c49ab5af7983994c2dd91"}, - {file = "greenlet-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:2d4686f195e32d36b4d7cf2d166857dbd0ee9f3d20ae349b6bf8afc8485b3645"}, - {file = "greenlet-2.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c4302695ad8027363e96311df24ee28978162cdcdd2006476c43970b384a244c"}, - {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c48f54ef8e05f04d6eff74b8233f6063cb1ed960243eacc474ee73a2ea8573ca"}, - {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a1846f1b999e78e13837c93c778dcfc3365902cfb8d1bdb7dd73ead37059f0d0"}, - {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a06ad5312349fec0ab944664b01d26f8d1f05009566339ac6f63f56589bc1a2"}, - {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:eff4eb9b7eb3e4d0cae3d28c283dc16d9bed6b193c2e1ace3ed86ce48ea8df19"}, - {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5454276c07d27a740c5892f4907c86327b632127dd9abec42ee62e12427ff7e3"}, - {file = "greenlet-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:7cafd1208fdbe93b67c7086876f061f660cfddc44f404279c1585bbf3cdc64c5"}, - {file = "greenlet-2.0.2-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:910841381caba4f744a44bf81bfd573c94e10b3045ee00de0cbf436fe50673a6"}, - {file = "greenlet-2.0.2-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:18a7f18b82b52ee85322d7a7874e676f34ab319b9f8cce5de06067384aa8ff43"}, - {file = "greenlet-2.0.2-cp35-cp35m-win32.whl", hash = "sha256:03a8f4f3430c3b3ff8d10a2a86028c660355ab637cee9333d63d66b56f09d52a"}, - {file = "greenlet-2.0.2-cp35-cp35m-win_amd64.whl", hash = "sha256:4b58adb399c4d61d912c4c331984d60eb66565175cdf4a34792cd9600f21b394"}, - {file = "greenlet-2.0.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:703f18f3fda276b9a916f0934d2fb6d989bf0b4fb5a64825260eb9bfd52d78f0"}, - {file = "greenlet-2.0.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:32e5b64b148966d9cccc2c8d35a671409e45f195864560829f395a54226408d3"}, - {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dd11f291565a81d71dab10b7033395b7a3a5456e637cf997a6f33ebdf06f8db"}, - {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0f72c9ddb8cd28532185f54cc1453f2c16fb417a08b53a855c4e6a418edd099"}, - {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd021c754b162c0fb55ad5d6b9d960db667faad0fa2ff25bb6e1301b0b6e6a75"}, - {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:3c9b12575734155d0c09d6c3e10dbd81665d5c18e1a7c6597df72fd05990c8cf"}, - {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b9ec052b06a0524f0e35bd8790686a1da006bd911dd1ef7d50b77bfbad74e292"}, - {file = "greenlet-2.0.2-cp36-cp36m-win32.whl", hash = "sha256:dbfcfc0218093a19c252ca8eb9aee3d29cfdcb586df21049b9d777fd32c14fd9"}, - {file = "greenlet-2.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:9f35ec95538f50292f6d8f2c9c9f8a3c6540bbfec21c9e5b4b751e0a7c20864f"}, - {file = "greenlet-2.0.2-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:d5508f0b173e6aa47273bdc0a0b5ba055b59662ba7c7ee5119528f466585526b"}, - {file = "greenlet-2.0.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:f82d4d717d8ef19188687aa32b8363e96062911e63ba22a0cff7802a8e58e5f1"}, - {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9c59a2120b55788e800d82dfa99b9e156ff8f2227f07c5e3012a45a399620b7"}, - {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2780572ec463d44c1d3ae850239508dbeb9fed38e294c68d19a24d925d9223ca"}, - {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:937e9020b514ceedb9c830c55d5c9872abc90f4b5862f89c0887033ae33c6f73"}, - {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:36abbf031e1c0f79dd5d596bfaf8e921c41df2bdf54ee1eed921ce1f52999a86"}, - {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:18e98fb3de7dba1c0a852731c3070cf022d14f0d68b4c87a19cc1016f3bb8b33"}, - {file = "greenlet-2.0.2-cp37-cp37m-win32.whl", hash = "sha256:3f6ea9bd35eb450837a3d80e77b517ea5bc56b4647f5502cd28de13675ee12f7"}, - {file = "greenlet-2.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:7492e2b7bd7c9b9916388d9df23fa49d9b88ac0640db0a5b4ecc2b653bf451e3"}, - {file = "greenlet-2.0.2-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:b864ba53912b6c3ab6bcb2beb19f19edd01a6bfcbdfe1f37ddd1778abfe75a30"}, - {file = "greenlet-2.0.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:ba2956617f1c42598a308a84c6cf021a90ff3862eddafd20c3333d50f0edb45b"}, - {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc3a569657468b6f3fb60587e48356fe512c1754ca05a564f11366ac9e306526"}, - {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8eab883b3b2a38cc1e050819ef06a7e6344d4a990d24d45bc6f2cf959045a45b"}, - {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acd2162a36d3de67ee896c43effcd5ee3de247eb00354db411feb025aa319857"}, - {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0bf60faf0bc2468089bdc5edd10555bab6e85152191df713e2ab1fcc86382b5a"}, - {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b0ef99cdbe2b682b9ccbb964743a6aca37905fda5e0452e5ee239b1654d37f2a"}, - {file = "greenlet-2.0.2-cp38-cp38-win32.whl", hash = "sha256:b80f600eddddce72320dbbc8e3784d16bd3fb7b517e82476d8da921f27d4b249"}, - {file = "greenlet-2.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:4d2e11331fc0c02b6e84b0d28ece3a36e0548ee1a1ce9ddde03752d9b79bba40"}, - {file = "greenlet-2.0.2-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:88d9ab96491d38a5ab7c56dd7a3cc37d83336ecc564e4e8816dbed12e5aaefc8"}, - {file = "greenlet-2.0.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:561091a7be172ab497a3527602d467e2b3fbe75f9e783d8b8ce403fa414f71a6"}, - {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:971ce5e14dc5e73715755d0ca2975ac88cfdaefcaab078a284fea6cfabf866df"}, - {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be4ed120b52ae4d974aa40215fcdfde9194d63541c7ded40ee12eb4dda57b76b"}, - {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94c817e84245513926588caf1152e3b559ff794d505555211ca041f032abbb6b"}, - {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1a819eef4b0e0b96bb0d98d797bef17dc1b4a10e8d7446be32d1da33e095dbb8"}, - {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7efde645ca1cc441d6dc4b48c0f7101e8d86b54c8530141b09fd31cef5149ec9"}, - {file = "greenlet-2.0.2-cp39-cp39-win32.whl", hash = "sha256:ea9872c80c132f4663822dd2a08d404073a5a9b5ba6155bea72fb2a79d1093b5"}, - {file = "greenlet-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:db1a39669102a1d8d12b57de2bb7e2ec9066a6f2b3da35ae511ff93b01b5d564"}, - {file = "greenlet-2.0.2.tar.gz", hash = "sha256:e7c8dc13af7db097bed64a051d2dd49e9f0af495c26995c00a9ee842690d34c0"}, -] -identify = [ - {file = "identify-2.5.6-py2.py3-none-any.whl", hash = "sha256:b276db7ec52d7e89f5bc4653380e33054ddc803d25875952ad90b0f012cbcdaa"}, - {file = "identify-2.5.6.tar.gz", hash = "sha256:6c32dbd747aa4ceee1df33f25fed0b0f6e0d65721b15bd151307ff7056d50245"}, -] -idna = [ - {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, - {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, -] -imagesize = [ - {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, - {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, -] -importlib-metadata = [ - {file = "importlib_metadata-5.0.0-py3-none-any.whl", hash = "sha256:ddb0e35065e8938f867ed4928d0ae5bf2a53b7773871bfe6bcc7e4fcdc7dea43"}, - {file = "importlib_metadata-5.0.0.tar.gz", hash = "sha256:da31db32b304314d044d3c12c79bd59e307889b287ad12ff387b3500835fc2ab"}, -] -iniconfig = [ - {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, - {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, -] -ipykernel = [ - {file = "ipykernel-6.16.0-py3-none-any.whl", hash = "sha256:d3d95241cd4dd302fea9d5747b00509b58997356d1f6333c9a074c3eccb78cb3"}, - {file = "ipykernel-6.16.0.tar.gz", hash = "sha256:7fe42c0d58435e971dc15fd42189f20d66bf35f3056bda4f6554271bc1fa3d0d"}, -] -ipython = [ - {file = "ipython-8.5.0-py3-none-any.whl", hash = "sha256:6f090e29ab8ef8643e521763a4f1f39dc3914db643122b1e9d3328ff2e43ada2"}, - {file = "ipython-8.5.0.tar.gz", hash = "sha256:097bdf5cd87576fd066179c9f7f208004f7a6864ee1b20f37d346c0bcb099f84"}, -] -ipython-genutils = [ - {file = "ipython_genutils-0.2.0-py2.py3-none-any.whl", hash = "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8"}, - {file = "ipython_genutils-0.2.0.tar.gz", hash = "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"}, -] -ipywidgets = [ - {file = "ipywidgets-8.0.2-py3-none-any.whl", hash = "sha256:1dc3dd4ee19ded045ea7c86eb273033d238d8e43f9e7872c52d092683f263891"}, - {file = "ipywidgets-8.0.2.tar.gz", hash = "sha256:08cb75c6e0a96836147cbfdc55580ae04d13e05d26ffbc377b4e1c68baa28b1f"}, -] -isort = [ - {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, - {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, -] -jedi = [ - {file = "jedi-0.18.1-py2.py3-none-any.whl", hash = "sha256:637c9635fcf47945ceb91cd7f320234a7be540ded6f3e99a50cb6febdfd1ba8d"}, - {file = "jedi-0.18.1.tar.gz", hash = "sha256:74137626a64a99c8eb6ae5832d99b3bdd7d29a3850fe2aa80a4126b2a7d949ab"}, -] -jinja2 = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, -] -jsonschema = [ - {file = "jsonschema-4.16.0-py3-none-any.whl", hash = "sha256:9e74b8f9738d6a946d70705dc692b74b5429cd0960d58e79ffecfc43b2221eb9"}, - {file = "jsonschema-4.16.0.tar.gz", hash = "sha256:165059f076eff6971bae5b742fc029a7b4ef3f9bcf04c14e4776a7605de14b23"}, -] -jupyter = [ - {file = "jupyter-1.0.0-py2.py3-none-any.whl", hash = "sha256:5b290f93b98ffbc21c0c7e749f054b3267782166d72fa5e3ed1ed4eaf34a2b78"}, - {file = "jupyter-1.0.0.tar.gz", hash = "sha256:d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f"}, - {file = "jupyter-1.0.0.zip", hash = "sha256:3e1f86076bbb7c8c207829390305a2b1fe836d471ed54be66a3b8c41e7f46cc7"}, -] -jupyter-cache = [ - {file = "jupyter-cache-0.6.1.tar.gz", hash = "sha256:26f83901143edf4af2f3ff5a91e2d2ad298e46e2cee03c8071d37a23a63ccbfc"}, - {file = "jupyter_cache-0.6.1-py3-none-any.whl", hash = "sha256:2fce7d4975805c77f75bdfc1bc2e82bc538b8e5b1af27f2f5e06d55b9f996a82"}, -] -jupyter-client = [ - {file = "jupyter_client-7.3.5-py3-none-any.whl", hash = "sha256:b33222bdc9dd1714228bd286af006533a0abe2bbc093e8f3d29dc0b91bdc2be4"}, - {file = "jupyter_client-7.3.5.tar.gz", hash = "sha256:3c58466a1b8d55dba0bf3ce0834e4f5b7760baf98d1d73db0add6f19de9ecd1d"}, -] -jupyter-console = [ - {file = "jupyter_console-6.4.4-py3-none-any.whl", hash = "sha256:756df7f4f60c986e7bc0172e4493d3830a7e6e75c08750bbe59c0a5403ad6dee"}, - {file = "jupyter_console-6.4.4.tar.gz", hash = "sha256:172f5335e31d600df61613a97b7f0352f2c8250bbd1092ef2d658f77249f89fb"}, -] -jupyter-core = [ - {file = "jupyter_core-4.11.1-py3-none-any.whl", hash = "sha256:715e22bb6cc7db3718fddfac1f69f1c7e899ca00e42bdfd4bf3705452b9fd84a"}, - {file = "jupyter_core-4.11.1.tar.gz", hash = "sha256:2e5f244d44894c4154d06aeae3419dd7f1b0ef4494dc5584929b398c61cfd314"}, -] -jupyterlab-pygments = [ - {file = "jupyterlab_pygments-0.2.2-py2.py3-none-any.whl", hash = "sha256:2405800db07c9f770863bcf8049a529c3dd4d3e28536638bd7c1c01d2748309f"}, - {file = "jupyterlab_pygments-0.2.2.tar.gz", hash = "sha256:7405d7fde60819d905a9fa8ce89e4cd830e318cdad22a0030f7a901da705585d"}, -] -jupyterlab-widgets = [ - {file = "jupyterlab_widgets-3.0.3-py3-none-any.whl", hash = "sha256:6aa1bc0045470d54d76b9c0b7609a8f8f0087573bae25700a370c11f82cb38c8"}, - {file = "jupyterlab_widgets-3.0.3.tar.gz", hash = "sha256:c767181399b4ca8b647befe2d913b1260f51bf9d8ef9b7a14632d4c1a7b536bd"}, -] -lazy-object-proxy = [ - {file = "lazy-object-proxy-1.7.1.tar.gz", hash = "sha256:d609c75b986def706743cdebe5e47553f4a5a1da9c5ff66d76013ef396b5a8a4"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bb8c5fd1684d60a9902c60ebe276da1f2281a318ca16c1d0a96db28f62e9166b"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a57d51ed2997e97f3b8e3500c984db50a554bb5db56c50b5dab1b41339b37e36"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd45683c3caddf83abbb1249b653a266e7069a09f486daa8863fb0e7496a9fdb"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8561da8b3dd22d696244d6d0d5330618c993a215070f473b699e00cf1f3f6443"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fccdf7c2c5821a8cbd0a9440a456f5050492f2270bd54e94360cac663398739b"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-win32.whl", hash = "sha256:898322f8d078f2654d275124a8dd19b079080ae977033b713f677afcfc88e2b9"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:85b232e791f2229a4f55840ed54706110c80c0a210d076eee093f2b2e33e1bfd"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:46ff647e76f106bb444b4533bb4153c7370cdf52efc62ccfc1a28bdb3cc95442"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12f3bb77efe1367b2515f8cb4790a11cffae889148ad33adad07b9b55e0ab22c"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c19814163728941bb871240d45c4c30d33b8a2e85972c44d4e63dd7107faba44"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e40f2013d96d30217a51eeb1db28c9ac41e9d0ee915ef9d00da639c5b63f01a1"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2052837718516a94940867e16b1bb10edb069ab475c3ad84fd1e1a6dd2c0fcfc"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:6a24357267aa976abab660b1d47a34aaf07259a0c3859a34e536f1ee6e76b5bb"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:6aff3fe5de0831867092e017cf67e2750c6a1c7d88d84d2481bd84a2e019ec35"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6a6e94c7b02641d1311228a102607ecd576f70734dc3d5e22610111aeacba8a0"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ce15276a1a14549d7e81c243b887293904ad2d94ad767f42df91e75fd7b5b6"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e368b7f7eac182a59ff1f81d5f3802161932a41dc1b1cc45c1f757dc876b5d2c"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6ecbb350991d6434e1388bee761ece3260e5228952b1f0c46ffc800eb313ff42"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:553b0f0d8dbf21890dd66edd771f9b1b5f51bd912fa5f26de4449bfc5af5e029"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:c7a683c37a8a24f6428c28c561c80d5f4fd316ddcf0c7cab999b15ab3f5c5c69"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:df2631f9d67259dc9620d831384ed7732a198eb434eadf69aea95ad18c587a28"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07fa44286cda977bd4803b656ffc1c9b7e3bc7dff7d34263446aec8f8c96f88a"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dca6244e4121c74cc20542c2ca39e5c4a5027c81d112bfb893cf0790f96f57e"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ba172fc5b03978764d1df5144b4ba4ab13290d7bab7a50f12d8117f8630c38"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:043651b6cb706eee4f91854da4a089816a6606c1428fd391573ef8cb642ae4f7"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b9e89b87c707dd769c4ea91f7a31538888aad05c116a59820f28d59b3ebfe25a"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-win32.whl", hash = "sha256:9d166602b525bf54ac994cf833c385bfcc341b364e3ee71e3bf5a1336e677b55"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:8f3953eb575b45480db6568306893f0bd9d8dfeeebd46812aa09ca9579595148"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dd7ed7429dbb6c494aa9bc4e09d94b778a3579be699f9d67da7e6804c422d3de"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70ed0c2b380eb6248abdef3cd425fc52f0abd92d2b07ce26359fcbc399f636ad"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7096a5e0c1115ec82641afbdd70451a144558ea5cf564a896294e346eb611be1"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f769457a639403073968d118bc70110e7dce294688009f5c24ab78800ae56dc8"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:39b0e26725c5023757fc1ab2a89ef9d7ab23b84f9251e28f9cc114d5b59c1b09"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2130db8ed69a48a3440103d4a520b89d8a9405f1b06e2cc81640509e8bf6548f"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61"}, - {file = "lazy_object_proxy-1.7.1-pp37.pp38-none-any.whl", hash = "sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84"}, -] -markdown-it-py = [ - {file = "markdown-it-py-2.2.0.tar.gz", hash = "sha256:7c9a5e412688bc771c67432cbfebcdd686c93ce6484913dccf06cb5a0bea35a1"}, - {file = "markdown_it_py-2.2.0-py3-none-any.whl", hash = "sha256:5a35f8d1870171d9acc47b99612dc146129b631baf04970128b568f190d0cc30"}, -] -markupsafe = [ - {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-win32.whl", hash = "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-win32.whl", hash = "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-win32.whl", hash = "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-win32.whl", hash = "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"}, - {file = "MarkupSafe-2.1.1.tar.gz", hash = "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"}, -] -matplotlib-inline = [ - {file = "matplotlib-inline-0.1.6.tar.gz", hash = "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304"}, - {file = "matplotlib_inline-0.1.6-py3-none-any.whl", hash = "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311"}, -] -mccabe = [ - {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, - {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, -] -mdit-py-plugins = [ - {file = "mdit-py-plugins-0.3.5.tar.gz", hash = "sha256:eee0adc7195e5827e17e02d2a258a2ba159944a0748f59c5099a4a27f78fcf6a"}, - {file = "mdit_py_plugins-0.3.5-py3-none-any.whl", hash = "sha256:ca9a0714ea59a24b2b044a1831f48d817dd0c817e84339f20e7889f392d77c4e"}, -] -mdurl = [ - {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, - {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, -] -mistune = [ - {file = "mistune-2.0.4-py2.py3-none-any.whl", hash = "sha256:182cc5ee6f8ed1b807de6b7bb50155df7b66495412836b9a74c8fbdfc75fe36d"}, - {file = "mistune-2.0.4.tar.gz", hash = "sha256:9ee0a66053e2267aba772c71e06891fa8f1af6d4b01d5e84e267b4570d4d9808"}, -] -mypy = [ - {file = "mypy-0.942-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5bf44840fb43ac4074636fd47ee476d73f0039f4f54e86d7265077dc199be24d"}, - {file = "mypy-0.942-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dcd955f36e0180258a96f880348fbca54ce092b40fbb4b37372ae3b25a0b0a46"}, - {file = "mypy-0.942-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6776e5fa22381cc761df53e7496a805801c1a751b27b99a9ff2f0ca848c7eca0"}, - {file = "mypy-0.942-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:edf7237137a1a9330046dbb14796963d734dd740a98d5e144a3eb1d267f5f9ee"}, - {file = "mypy-0.942-cp310-cp310-win_amd64.whl", hash = "sha256:64235137edc16bee6f095aba73be5334677d6f6bdb7fa03cfab90164fa294a17"}, - {file = "mypy-0.942-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b840cfe89c4ab6386c40300689cd8645fc8d2d5f20101c7f8bd23d15fca14904"}, - {file = "mypy-0.942-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2b184db8c618c43c3a31b32ff00cd28195d39e9c24e7c3b401f3db7f6e5767f5"}, - {file = "mypy-0.942-cp36-cp36m-win_amd64.whl", hash = "sha256:1a0459c333f00e6a11cbf6b468b870c2b99a906cb72d6eadf3d1d95d38c9352c"}, - {file = "mypy-0.942-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4c3e497588afccfa4334a9986b56f703e75793133c4be3a02d06a3df16b67a58"}, - {file = "mypy-0.942-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6f6ad963172152e112b87cc7ec103ba0f2db2f1cd8997237827c052a3903eaa6"}, - {file = "mypy-0.942-cp37-cp37m-win_amd64.whl", hash = "sha256:0e2dd88410937423fba18e57147dd07cd8381291b93d5b1984626f173a26543e"}, - {file = "mypy-0.942-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:246e1aa127d5b78488a4a0594bd95f6d6fb9d63cf08a66dafbff8595d8891f67"}, - {file = "mypy-0.942-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d8d3ba77e56b84cd47a8ee45b62c84b6d80d32383928fe2548c9a124ea0a725c"}, - {file = "mypy-0.942-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2bc249409a7168d37c658e062e1ab5173300984a2dada2589638568ddc1db02b"}, - {file = "mypy-0.942-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9521c1265ccaaa1791d2c13582f06facf815f426cd8b07c3a485f486a8ffc1f3"}, - {file = "mypy-0.942-cp38-cp38-win_amd64.whl", hash = "sha256:e865fec858d75b78b4d63266c9aff770ecb6a39dfb6d6b56c47f7f8aba6baba8"}, - {file = "mypy-0.942-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6ce34a118d1a898f47def970a2042b8af6bdcc01546454726c7dd2171aa6dfca"}, - {file = "mypy-0.942-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:10daab80bc40f84e3f087d896cdb53dc811a9f04eae4b3f95779c26edee89d16"}, - {file = "mypy-0.942-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3841b5433ff936bff2f4dc8d54cf2cdbfea5d8e88cedfac45c161368e5770ba6"}, - {file = "mypy-0.942-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6f7106cbf9cc2f403693bf50ed7c9fa5bb3dfa9007b240db3c910929abe2a322"}, - {file = "mypy-0.942-cp39-cp39-win_amd64.whl", hash = "sha256:7742d2c4e46bb5017b51c810283a6a389296cda03df805a4f7869a6f41246534"}, - {file = "mypy-0.942-py3-none-any.whl", hash = "sha256:a1b383fe99678d7402754fe90448d4037f9512ce70c21f8aee3b8bf48ffc51db"}, - {file = "mypy-0.942.tar.gz", hash = "sha256:17e44649fec92e9f82102b48a3bf7b4a5510ad0cd22fa21a104826b5db4903e2"}, -] -mypy-extensions = [ - {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, - {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, -] -myst-nb = [ - {file = "myst-nb-0.17.2.tar.gz", hash = "sha256:0f61386515fab07c73646adca97fff2f69f41e90d313a260217c5bbe419d858b"}, - {file = "myst_nb-0.17.2-py3-none-any.whl", hash = "sha256:132ca4d0f5c308fdd4b6fdaba077712e28e119ccdafd04d6e41b51aac5483494"}, -] -myst-parser = [ - {file = "myst-parser-0.18.1.tar.gz", hash = "sha256:79317f4bb2c13053dd6e64f9da1ba1da6cd9c40c8a430c447a7b146a594c246d"}, - {file = "myst_parser-0.18.1-py3-none-any.whl", hash = "sha256:61b275b85d9f58aa327f370913ae1bec26ebad372cc99f3ab85c8ec3ee8d9fb8"}, -] -nbclient = [ - {file = "nbclient-0.7.0-py3-none-any.whl", hash = "sha256:434c91385cf3e53084185334d675a0d33c615108b391e260915d1aa8e86661b8"}, - {file = "nbclient-0.7.0.tar.gz", hash = "sha256:a1d844efd6da9bc39d2209bf996dbd8e07bf0f36b796edfabaa8f8a9ab77c3aa"}, -] -nbconvert = [ - {file = "nbconvert-7.2.1-py3-none-any.whl", hash = "sha256:50a54366ab53da20e82668818b7b2f3f7b85c0bcd46ec8e18836f12b39180dfa"}, - {file = "nbconvert-7.2.1.tar.gz", hash = "sha256:1e180801205ad831b6e2480c5a03307dfb6327fa5b2f9b156d6fed45f9700686"}, -] -nbformat = [ - {file = "nbformat-5.6.1-py3-none-any.whl", hash = "sha256:9c071f0f615c1b0f4f9bf6745ecfd3294fc02daf279a05c76004c901e9dc5893"}, - {file = "nbformat-5.6.1.tar.gz", hash = "sha256:146b5b9969391387c2089256359f5da7c718b1d8a88ba814320273ea410e646e"}, -] -nest-asyncio = [ - {file = "nest_asyncio-1.5.6-py3-none-any.whl", hash = "sha256:b9a953fb40dceaa587d109609098db21900182b16440652454a146cffb06e8b8"}, - {file = "nest_asyncio-1.5.6.tar.gz", hash = "sha256:d267cc1ff794403f7df692964d1d2a3fa9418ffea2a3f6859a439ff482fef290"}, -] -nodeenv = [ - {file = "nodeenv-1.7.0-py2.py3-none-any.whl", hash = "sha256:27083a7b96a25f2f5e1d8cb4b6317ee8aeda3bdd121394e5ac54e498028a042e"}, - {file = "nodeenv-1.7.0.tar.gz", hash = "sha256:e0e7f7dfb85fc5394c6fe1e8fa98131a2473e04311a45afb6508f7cf1836fa2b"}, -] -notebook = [ - {file = "notebook-6.4.12-py3-none-any.whl", hash = "sha256:8c07a3bb7640e371f8a609bdbb2366a1976c6a2589da8ef917f761a61e3ad8b1"}, - {file = "notebook-6.4.12.tar.gz", hash = "sha256:6268c9ec9048cff7a45405c990c29ac9ca40b0bc3ec29263d218c5e01f2b4e86"}, -] -numpy = [ - {file = "numpy-1.23.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c9f707b5bb73bf277d812ded9896f9512a43edff72712f31667d0a8c2f8e71ee"}, - {file = "numpy-1.23.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ffcf105ecdd9396e05a8e58e81faaaf34d3f9875f137c7372450baa5d77c9a54"}, - {file = "numpy-1.23.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ea3f98a0ffce3f8f57675eb9119f3f4edb81888b6874bc1953f91e0b1d4f440"}, - {file = "numpy-1.23.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:004f0efcb2fe1c0bd6ae1fcfc69cc8b6bf2407e0f18be308612007a0762b4089"}, - {file = "numpy-1.23.3-cp310-cp310-win32.whl", hash = "sha256:98dcbc02e39b1658dc4b4508442a560fe3ca5ca0d989f0df062534e5ca3a5c1a"}, - {file = "numpy-1.23.3-cp310-cp310-win_amd64.whl", hash = "sha256:39a664e3d26ea854211867d20ebcc8023257c1800ae89773cbba9f9e97bae036"}, - {file = "numpy-1.23.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1f27b5322ac4067e67c8f9378b41c746d8feac8bdd0e0ffede5324667b8a075c"}, - {file = "numpy-1.23.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2ad3ec9a748a8943e6eb4358201f7e1c12ede35f510b1a2221b70af4bb64295c"}, - {file = "numpy-1.23.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bdc9febce3e68b697d931941b263c59e0c74e8f18861f4064c1f712562903411"}, - {file = "numpy-1.23.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:301c00cf5e60e08e04d842fc47df641d4a181e651c7135c50dc2762ffe293dbd"}, - {file = "numpy-1.23.3-cp311-cp311-win32.whl", hash = "sha256:7cd1328e5bdf0dee621912f5833648e2daca72e3839ec1d6695e91089625f0b4"}, - {file = "numpy-1.23.3-cp311-cp311-win_amd64.whl", hash = "sha256:8355fc10fd33a5a70981a5b8a0de51d10af3688d7a9e4a34fcc8fa0d7467bb7f"}, - {file = "numpy-1.23.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bc6e8da415f359b578b00bcfb1d08411c96e9a97f9e6c7adada554a0812a6cc6"}, - {file = "numpy-1.23.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:22d43376ee0acd547f3149b9ec12eec2f0ca4a6ab2f61753c5b29bb3e795ac4d"}, - {file = "numpy-1.23.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a64403f634e5ffdcd85e0b12c08f04b3080d3e840aef118721021f9b48fc1460"}, - {file = "numpy-1.23.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efd9d3abe5774404becdb0748178b48a218f1d8c44e0375475732211ea47c67e"}, - {file = "numpy-1.23.3-cp38-cp38-win32.whl", hash = "sha256:f8c02ec3c4c4fcb718fdf89a6c6f709b14949408e8cf2a2be5bfa9c49548fd85"}, - {file = "numpy-1.23.3-cp38-cp38-win_amd64.whl", hash = "sha256:e868b0389c5ccfc092031a861d4e158ea164d8b7fdbb10e3b5689b4fc6498df6"}, - {file = "numpy-1.23.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:09f6b7bdffe57fc61d869a22f506049825d707b288039d30f26a0d0d8ea05164"}, - {file = "numpy-1.23.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8c79d7cf86d049d0c5089231a5bcd31edb03555bd93d81a16870aa98c6cfb79d"}, - {file = "numpy-1.23.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5d5420053bbb3dd64c30e58f9363d7a9c27444c3648e61460c1237f9ec3fa14"}, - {file = "numpy-1.23.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5422d6a1ea9b15577a9432e26608c73a78faf0b9039437b075cf322c92e98e7"}, - {file = "numpy-1.23.3-cp39-cp39-win32.whl", hash = "sha256:c1ba66c48b19cc9c2975c0d354f24058888cdc674bebadceb3cdc9ec403fb5d1"}, - {file = "numpy-1.23.3-cp39-cp39-win_amd64.whl", hash = "sha256:78a63d2df1d947bd9d1b11d35564c2f9e4b57898aae4626638056ec1a231c40c"}, - {file = "numpy-1.23.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:17c0e467ade9bda685d5ac7f5fa729d8d3e76b23195471adae2d6a6941bd2c18"}, - {file = "numpy-1.23.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91b8d6768a75247026e951dce3b2aac79dc7e78622fc148329135ba189813584"}, - {file = "numpy-1.23.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:94c15ca4e52671a59219146ff584488907b1f9b3fc232622b47e2cf832e94fb8"}, - {file = "numpy-1.23.3.tar.gz", hash = "sha256:51bf49c0cd1d52be0a240aa66f3458afc4b95d8993d2d04f0d91fa60c10af6cd"}, -] -packaging = [ - {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, - {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, -] -pandas = [ - {file = "pandas-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0d8d7433d19bfa33f11c92ad9997f15a902bda4f5ad3a4814a21d2e910894484"}, - {file = "pandas-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5cc47f2ebaa20ef96ae72ee082f9e101b3dfbf74f0e62c7a12c0b075a683f03c"}, - {file = "pandas-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e8e5edf97d8793f51d258c07c629bd49d271d536ce15d66ac00ceda5c150eb3"}, - {file = "pandas-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41aec9f87455306496d4486df07c1b98c15569c714be2dd552a6124cd9fda88f"}, - {file = "pandas-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c76f1d104844c5360c21d2ef0e1a8b2ccf8b8ebb40788475e255b9462e32b2be"}, - {file = "pandas-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:1642fc6138b4e45d57a12c1b464a01a6d868c0148996af23f72dde8d12486bbc"}, - {file = "pandas-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:171cef540bfcec52257077816a4dbbac152acdb8236ba11d3196ae02bf0959d8"}, - {file = "pandas-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a68a9b9754efff364b0c5ee5b0f18e15ca640c01afe605d12ba8b239ca304d6b"}, - {file = "pandas-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:86d87279ebc5bc20848b4ceb619073490037323f80f515e0ec891c80abad958a"}, - {file = "pandas-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:207d63ac851e60ec57458814613ef4b3b6a5e9f0b33c57623ba2bf8126c311f8"}, - {file = "pandas-1.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e252a9e49b233ff96e2815c67c29702ac3a062098d80a170c506dff3470fd060"}, - {file = "pandas-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:de34636e2dc04e8ac2136a8d3c2051fd56ebe9fd6cd185581259330649e73ca9"}, - {file = "pandas-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:1d34b1f43d9e3f4aea056ba251f6e9b143055ebe101ed04c847b41bb0bb4a989"}, - {file = "pandas-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1b82ccc7b093e0a93f8dffd97a542646a3e026817140e2c01266aaef5fdde11b"}, - {file = "pandas-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4e30a31039574d96f3d683df34ccb50bb435426ad65793e42a613786901f6761"}, - {file = "pandas-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62e61003411382e20d7c2aec1ee8d7c86c8b9cf46290993dd8a0a3be44daeb38"}, - {file = "pandas-1.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc987f7717e53d372f586323fff441263204128a1ead053c1b98d7288f836ac9"}, - {file = "pandas-1.5.0-cp38-cp38-win32.whl", hash = "sha256:e178ce2d7e3b934cf8d01dc2d48d04d67cb0abfaffdcc8aa6271fd5a436f39c8"}, - {file = "pandas-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:33a9d9e21ab2d91e2ab6e83598419ea6a664efd4c639606b299aae8097c1c94f"}, - {file = "pandas-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:73844e247a7b7dac2daa9df7339ecf1fcf1dfb8cbfd11e3ffe9819ae6c31c515"}, - {file = "pandas-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e9c5049333c5bebf993033f4bf807d163e30e8fada06e1da7fa9db86e2392009"}, - {file = "pandas-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:85a516a7f6723ca1528f03f7851fa8d0360d1d6121cf15128b290cf79b8a7f6a"}, - {file = "pandas-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:947ed9f896ee61adbe61829a7ae1ade493c5a28c66366ec1de85c0642009faac"}, - {file = "pandas-1.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7f38d91f21937fe2bec9449570d7bf36ad7136227ef43b321194ec249e2149d"}, - {file = "pandas-1.5.0-cp39-cp39-win32.whl", hash = "sha256:2504c032f221ef9e4a289f5e46a42b76f5e087ecb67d62e342ccbba95a32a488"}, - {file = "pandas-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:8a4fc04838615bf0a8d3a03ed68197f358054f0df61f390bcc64fbe39e3d71ec"}, - {file = "pandas-1.5.0.tar.gz", hash = "sha256:3ee61b881d2f64dd90c356eb4a4a4de75376586cd3c9341c6c0fcaae18d52977"}, -] -pandocfilters = [ - {file = "pandocfilters-1.5.0-py2.py3-none-any.whl", hash = "sha256:33aae3f25fd1a026079f5d27bdd52496f0e0803b3469282162bafdcbdf6ef14f"}, - {file = "pandocfilters-1.5.0.tar.gz", hash = "sha256:0b679503337d233b4339a817bfc8c50064e2eff681314376a47cb582305a7a38"}, -] -parso = [ - {file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"}, - {file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"}, -] -pathspec = [ - {file = "pathspec-0.10.1-py3-none-any.whl", hash = "sha256:46846318467efc4556ccfd27816e004270a9eeeeb4d062ce5e6fc7a87c573f93"}, - {file = "pathspec-0.10.1.tar.gz", hash = "sha256:7ace6161b621d31e7902eb6b5ae148d12cfd23f4a249b9ffb6b9fee12084323d"}, -] -pbr = [ - {file = "pbr-5.10.0-py2.py3-none-any.whl", hash = "sha256:da3e18aac0a3c003e9eea1a81bd23e5a3a75d745670dcf736317b7d966887fdf"}, - {file = "pbr-5.10.0.tar.gz", hash = "sha256:cfcc4ff8e698256fc17ea3ff796478b050852585aa5bae79ecd05b2ab7b39b9a"}, -] -pexpect = [ - {file = "pexpect-4.8.0-py2.py3-none-any.whl", hash = "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"}, - {file = "pexpect-4.8.0.tar.gz", hash = "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"}, -] -pickleshare = [ - {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, - {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, -] -platformdirs = [ - {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, - {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"}, -] -pluggy = [ - {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, - {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, -] -pre-commit = [ - {file = "pre_commit-2.20.0-py2.py3-none-any.whl", hash = "sha256:51a5ba7c480ae8072ecdb6933df22d2f812dc897d5fe848778116129a681aac7"}, - {file = "pre_commit-2.20.0.tar.gz", hash = "sha256:a978dac7bc9ec0bcee55c18a277d553b0f419d259dadb4b9418ff2d00eb43959"}, -] -prometheus-client = [ - {file = "prometheus_client-0.14.1-py3-none-any.whl", hash = "sha256:522fded625282822a89e2773452f42df14b5a8e84a86433e3f8a189c1d54dc01"}, - {file = "prometheus_client-0.14.1.tar.gz", hash = "sha256:5459c427624961076277fdc6dc50540e2bacb98eebde99886e59ec55ed92093a"}, -] -prompt-toolkit = [ - {file = "prompt_toolkit-3.0.31-py3-none-any.whl", hash = "sha256:9696f386133df0fc8ca5af4895afe5d78f5fcfe5258111c2a79a1c3e41ffa96d"}, - {file = "prompt_toolkit-3.0.31.tar.gz", hash = "sha256:9ada952c9d1787f52ff6d5f3484d0b4df8952787c087edf6a1f7c2cb1ea88148"}, -] -psutil = [ - {file = "psutil-5.9.2-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:8f024fbb26c8daf5d70287bb3edfafa22283c255287cf523c5d81721e8e5d82c"}, - {file = "psutil-5.9.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:b2f248ffc346f4f4f0d747ee1947963613216b06688be0be2e393986fe20dbbb"}, - {file = "psutil-5.9.2-cp27-cp27m-win32.whl", hash = "sha256:b1928b9bf478d31fdffdb57101d18f9b70ed4e9b0e41af751851813547b2a9ab"}, - {file = "psutil-5.9.2-cp27-cp27m-win_amd64.whl", hash = "sha256:404f4816c16a2fcc4eaa36d7eb49a66df2d083e829d3e39ee8759a411dbc9ecf"}, - {file = "psutil-5.9.2-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:94e621c6a4ddb2573d4d30cba074f6d1aa0186645917df42c811c473dd22b339"}, - {file = "psutil-5.9.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:256098b4f6ffea6441eb54ab3eb64db9ecef18f6a80d7ba91549195d55420f84"}, - {file = "psutil-5.9.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:614337922702e9be37a39954d67fdb9e855981624d8011a9927b8f2d3c9625d9"}, - {file = "psutil-5.9.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:39ec06dc6c934fb53df10c1672e299145ce609ff0611b569e75a88f313634969"}, - {file = "psutil-5.9.2-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3ac2c0375ef498e74b9b4ec56df3c88be43fe56cac465627572dbfb21c4be34"}, - {file = "psutil-5.9.2-cp310-cp310-win32.whl", hash = "sha256:e4c4a7636ffc47b7141864f1c5e7d649f42c54e49da2dd3cceb1c5f5d29bfc85"}, - {file = "psutil-5.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:f4cb67215c10d4657e320037109939b1c1d2fd70ca3d76301992f89fe2edb1f1"}, - {file = "psutil-5.9.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:dc9bda7d5ced744622f157cc8d8bdd51735dafcecff807e928ff26bdb0ff097d"}, - {file = "psutil-5.9.2-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d75291912b945a7351d45df682f9644540d564d62115d4a20d45fa17dc2d48f8"}, - {file = "psutil-5.9.2-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4018d5f9b6651f9896c7a7c2c9f4652e4eea53f10751c4e7d08a9093ab587ec"}, - {file = "psutil-5.9.2-cp36-cp36m-win32.whl", hash = "sha256:f40ba362fefc11d6bea4403f070078d60053ed422255bd838cd86a40674364c9"}, - {file = "psutil-5.9.2-cp36-cp36m-win_amd64.whl", hash = "sha256:9770c1d25aee91417eba7869139d629d6328a9422ce1cdd112bd56377ca98444"}, - {file = "psutil-5.9.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:42638876b7f5ef43cef8dcf640d3401b27a51ee3fa137cb2aa2e72e188414c32"}, - {file = "psutil-5.9.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:91aa0dac0c64688667b4285fa29354acfb3e834e1fd98b535b9986c883c2ce1d"}, - {file = "psutil-5.9.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4fb54941aac044a61db9d8eb56fc5bee207db3bc58645d657249030e15ba3727"}, - {file = "psutil-5.9.2-cp37-cp37m-win32.whl", hash = "sha256:7cbb795dcd8ed8fd238bc9e9f64ab188f3f4096d2e811b5a82da53d164b84c3f"}, - {file = "psutil-5.9.2-cp37-cp37m-win_amd64.whl", hash = "sha256:5d39e3a2d5c40efa977c9a8dd4f679763c43c6c255b1340a56489955dbca767c"}, - {file = "psutil-5.9.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:fd331866628d18223a4265371fd255774affd86244fc307ef66eaf00de0633d5"}, - {file = "psutil-5.9.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b315febaebae813326296872fdb4be92ad3ce10d1d742a6b0c49fb619481ed0b"}, - {file = "psutil-5.9.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7929a516125f62399d6e8e026129c8835f6c5a3aab88c3fff1a05ee8feb840d"}, - {file = "psutil-5.9.2-cp38-cp38-win32.whl", hash = "sha256:561dec454853846d1dd0247b44c2e66a0a0c490f937086930ec4b8f83bf44f06"}, - {file = "psutil-5.9.2-cp38-cp38-win_amd64.whl", hash = "sha256:67b33f27fc0427483b61563a16c90d9f3b547eeb7af0ef1b9fe024cdc9b3a6ea"}, - {file = "psutil-5.9.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b3591616fa07b15050b2f87e1cdefd06a554382e72866fcc0ab2be9d116486c8"}, - {file = "psutil-5.9.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:14b29f581b5edab1f133563272a6011925401804d52d603c5c606936b49c8b97"}, - {file = "psutil-5.9.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4642fd93785a29353d6917a23e2ac6177308ef5e8be5cc17008d885cb9f70f12"}, - {file = "psutil-5.9.2-cp39-cp39-win32.whl", hash = "sha256:ed29ea0b9a372c5188cdb2ad39f937900a10fb5478dc077283bf86eeac678ef1"}, - {file = "psutil-5.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:68b35cbff92d1f7103d8f1db77c977e72f49fcefae3d3d2b91c76b0e7aef48b8"}, - {file = "psutil-5.9.2.tar.gz", hash = "sha256:feb861a10b6c3bb00701063b37e4afc754f8217f0f09c42280586bd6ac712b5c"}, -] -ptyprocess = [ - {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, - {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, -] -pure-eval = [ - {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, - {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, -] -py = [ - {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, - {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, -] -pycodestyle = [ - {file = "pycodestyle-2.8.0-py2.py3-none-any.whl", hash = "sha256:720f8b39dde8b293825e7ff02c475f3077124006db4f440dcbc9a20b76548a20"}, - {file = "pycodestyle-2.8.0.tar.gz", hash = "sha256:eddd5847ef438ea1c7870ca7eb78a9d47ce0cdb4851a5523949f2601d0cbbe7f"}, -] -pycparser = [ - {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, - {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, -] -pydocstyle = [ - {file = "pydocstyle-6.1.1-py3-none-any.whl", hash = "sha256:6987826d6775056839940041beef5c08cc7e3d71d63149b48e36727f70144dc4"}, - {file = "pydocstyle-6.1.1.tar.gz", hash = "sha256:1d41b7c459ba0ee6c345f2eb9ae827cab14a7533a88c5c6f7e94923f72df92dc"}, -] -pyflakes = [ - {file = "pyflakes-2.4.0-py2.py3-none-any.whl", hash = "sha256:3bb3a3f256f4b7968c9c788781e4ff07dce46bdf12339dcda61053375426ee2e"}, - {file = "pyflakes-2.4.0.tar.gz", hash = "sha256:05a85c2872edf37a4ed30b0cce2f6093e1d0581f8c19d7393122da7e25b2b24c"}, -] -pygments = [ - {file = "Pygments-2.13.0-py3-none-any.whl", hash = "sha256:f643f331ab57ba3c9d89212ee4a2dabc6e94f117cf4eefde99a0574720d14c42"}, - {file = "Pygments-2.13.0.tar.gz", hash = "sha256:56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1"}, -] -pylint = [ - {file = "pylint-2.15.3-py3-none-any.whl", hash = "sha256:7f6aad1d8d50807f7bc64f89ac75256a9baf8e6ed491cc9bc65592bc3f462cf1"}, - {file = "pylint-2.15.3.tar.gz", hash = "sha256:5fdfd44af182866999e6123139d265334267339f29961f00c89783155eacc60b"}, -] -pyparsing = [ - {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, - {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, -] -pyrsistent = [ - {file = "pyrsistent-0.18.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:df46c854f490f81210870e509818b729db4488e1f30f2a1ce1698b2295a878d1"}, - {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d45866ececf4a5fff8742c25722da6d4c9e180daa7b405dc0a2a2790d668c26"}, - {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4ed6784ceac462a7d6fcb7e9b663e93b9a6fb373b7f43594f9ff68875788e01e"}, - {file = "pyrsistent-0.18.1-cp310-cp310-win32.whl", hash = "sha256:e4f3149fd5eb9b285d6bfb54d2e5173f6a116fe19172686797c056672689daf6"}, - {file = "pyrsistent-0.18.1-cp310-cp310-win_amd64.whl", hash = "sha256:636ce2dc235046ccd3d8c56a7ad54e99d5c1cd0ef07d9ae847306c91d11b5fec"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e92a52c166426efbe0d1ec1332ee9119b6d32fc1f0bbfd55d5c1088070e7fc1b"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7a096646eab884bf8bed965bad63ea327e0d0c38989fc83c5ea7b8a87037bfc"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cdfd2c361b8a8e5d9499b9082b501c452ade8bbf42aef97ea04854f4a3f43b22"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-win32.whl", hash = "sha256:7ec335fc998faa4febe75cc5268a9eac0478b3f681602c1f27befaf2a1abe1d8"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-win_amd64.whl", hash = "sha256:6455fc599df93d1f60e1c5c4fe471499f08d190d57eca040c0ea182301321286"}, - {file = "pyrsistent-0.18.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fd8da6d0124efa2f67d86fa70c851022f87c98e205f0594e1fae044e7119a5a6"}, - {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bfe2388663fd18bd8ce7db2c91c7400bf3e1a9e8bd7d63bf7e77d39051b85ec"}, - {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e3e1fcc45199df76053026a51cc59ab2ea3fc7c094c6627e93b7b44cdae2c8c"}, - {file = "pyrsistent-0.18.1-cp38-cp38-win32.whl", hash = "sha256:b568f35ad53a7b07ed9b1b2bae09eb15cdd671a5ba5d2c66caee40dbf91c68ca"}, - {file = "pyrsistent-0.18.1-cp38-cp38-win_amd64.whl", hash = "sha256:d1b96547410f76078eaf66d282ddca2e4baae8964364abb4f4dcdde855cd123a"}, - {file = "pyrsistent-0.18.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f87cc2863ef33c709e237d4b5f4502a62a00fab450c9e020892e8e2ede5847f5"}, - {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bc66318fb7ee012071b2792024564973ecc80e9522842eb4e17743604b5e045"}, - {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:914474c9f1d93080338ace89cb2acee74f4f666fb0424896fcfb8d86058bf17c"}, - {file = "pyrsistent-0.18.1-cp39-cp39-win32.whl", hash = "sha256:1b34eedd6812bf4d33814fca1b66005805d3640ce53140ab8bbb1e2651b0d9bc"}, - {file = "pyrsistent-0.18.1-cp39-cp39-win_amd64.whl", hash = "sha256:e24a828f57e0c337c8d8bb9f6b12f09dfdf0273da25fda9e314f0b684b415a07"}, - {file = "pyrsistent-0.18.1.tar.gz", hash = "sha256:d4d61f8b993a7255ba714df3aca52700f8125289f84f704cf80916517c46eb96"}, -] -pytest = [ - {file = "pytest-7.1.3-py3-none-any.whl", hash = "sha256:1377bda3466d70b55e3f5cecfa55bb7cfcf219c7964629b967c37cf0bda818b7"}, - {file = "pytest-7.1.3.tar.gz", hash = "sha256:4f365fec2dff9c1162f834d9f18af1ba13062db0c708bf7b946f8a5c76180c39"}, -] -pytest-cov = [ - {file = "pytest-cov-3.0.0.tar.gz", hash = "sha256:e7f0f5b1617d2210a2cabc266dfe2f4c75a8d32fb89eafb7ad9d06f6d076d470"}, - {file = "pytest_cov-3.0.0-py3-none-any.whl", hash = "sha256:578d5d15ac4a25e5f961c938b85a05b09fdaae9deef3bb6de9a6e766622ca7a6"}, -] -pytest-mock = [ - {file = "pytest-mock-3.10.0.tar.gz", hash = "sha256:fbbdb085ef7c252a326fd8cdcac0aa3b1333d8811f131bdcc701002e1be7ed4f"}, - {file = "pytest_mock-3.10.0-py3-none-any.whl", hash = "sha256:f4c973eeae0282963eb293eb173ce91b091a79c1334455acfac9ddee8a1c784b"}, -] -python-dateutil = [ - {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"}, -] -pytz = [ - {file = "pytz-2022.4-py2.py3-none-any.whl", hash = "sha256:2c0784747071402c6e99f0bafdb7da0fa22645f06554c7ae06bf6358897e9c91"}, - {file = "pytz-2022.4.tar.gz", hash = "sha256:48ce799d83b6f8aab2020e369b627446696619e79645419610b9facd909b3174"}, -] -pywin32 = [ - {file = "pywin32-304-cp310-cp310-win32.whl", hash = "sha256:3c7bacf5e24298c86314f03fa20e16558a4e4138fc34615d7de4070c23e65af3"}, - {file = "pywin32-304-cp310-cp310-win_amd64.whl", hash = "sha256:4f32145913a2447736dad62495199a8e280a77a0ca662daa2332acf849f0be48"}, - {file = "pywin32-304-cp310-cp310-win_arm64.whl", hash = "sha256:d3ee45adff48e0551d1aa60d2ec066fec006083b791f5c3527c40cd8aefac71f"}, - {file = "pywin32-304-cp311-cp311-win32.whl", hash = "sha256:30c53d6ce44c12a316a06c153ea74152d3b1342610f1b99d40ba2795e5af0269"}, - {file = "pywin32-304-cp311-cp311-win_amd64.whl", hash = "sha256:7ffa0c0fa4ae4077e8b8aa73800540ef8c24530057768c3ac57c609f99a14fd4"}, - {file = "pywin32-304-cp311-cp311-win_arm64.whl", hash = "sha256:cbbe34dad39bdbaa2889a424d28752f1b4971939b14b1bb48cbf0182a3bcfc43"}, - {file = "pywin32-304-cp36-cp36m-win32.whl", hash = "sha256:be253e7b14bc601718f014d2832e4c18a5b023cbe72db826da63df76b77507a1"}, - {file = "pywin32-304-cp36-cp36m-win_amd64.whl", hash = "sha256:de9827c23321dcf43d2f288f09f3b6d772fee11e809015bdae9e69fe13213988"}, - {file = "pywin32-304-cp37-cp37m-win32.whl", hash = "sha256:f64c0377cf01b61bd5e76c25e1480ca8ab3b73f0c4add50538d332afdf8f69c5"}, - {file = "pywin32-304-cp37-cp37m-win_amd64.whl", hash = "sha256:bb2ea2aa81e96eee6a6b79d87e1d1648d3f8b87f9a64499e0b92b30d141e76df"}, - {file = "pywin32-304-cp38-cp38-win32.whl", hash = "sha256:94037b5259701988954931333aafd39cf897e990852115656b014ce72e052e96"}, - {file = "pywin32-304-cp38-cp38-win_amd64.whl", hash = "sha256:ead865a2e179b30fb717831f73cf4373401fc62fbc3455a0889a7ddac848f83e"}, - {file = "pywin32-304-cp39-cp39-win32.whl", hash = "sha256:25746d841201fd9f96b648a248f731c1dec851c9a08b8e33da8b56148e4c65cc"}, - {file = "pywin32-304-cp39-cp39-win_amd64.whl", hash = "sha256:d24a3382f013b21aa24a5cfbfad5a2cd9926610c0affde3e8ab5b3d7dbcf4ac9"}, -] -pywinpty = [ - {file = "pywinpty-2.0.8-cp310-none-win_amd64.whl", hash = "sha256:9cbf89834abc8d4d4c5f295f11e15dd93889a8069db876f2bc10cc64aa4060ac"}, - {file = "pywinpty-2.0.8-cp37-none-win_amd64.whl", hash = "sha256:a2f9a95f3b74262ef73f1be5257c295c8caab1f79f081aa3400ca61c724f9bc6"}, - {file = "pywinpty-2.0.8-cp38-none-win_amd64.whl", hash = "sha256:23389d56258d6a1fbc4b41257bd65e5bdabaf6fde7f30a13806e557ea9ee6865"}, - {file = "pywinpty-2.0.8-cp39-none-win_amd64.whl", hash = "sha256:ea7c1da94eed5ef93e75026c67c60d4dca33ea9a1c212fa89221079a7b463c68"}, - {file = "pywinpty-2.0.8.tar.gz", hash = "sha256:a89b9021c63ef78b1e7d8e14f0fac4748c88a0c2e4f529c84f37f6e72b914280"}, -] -pyyaml = [ - {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, - {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, - {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, - {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, - {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, - {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, - {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, - {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, - {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, - {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, - {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, - {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, - {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, - {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, - {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, - {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, -] -pyzmq = [ - {file = "pyzmq-24.0.1-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:28b119ba97129d3001673a697b7cce47fe6de1f7255d104c2f01108a5179a066"}, - {file = "pyzmq-24.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bcbebd369493d68162cddb74a9c1fcebd139dfbb7ddb23d8f8e43e6c87bac3a6"}, - {file = "pyzmq-24.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae61446166983c663cee42c852ed63899e43e484abf080089f771df4b9d272ef"}, - {file = "pyzmq-24.0.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87f7ac99b15270db8d53f28c3c7b968612993a90a5cf359da354efe96f5372b4"}, - {file = "pyzmq-24.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9dca7c3956b03b7663fac4d150f5e6d4f6f38b2462c1e9afd83bcf7019f17913"}, - {file = "pyzmq-24.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8c78bfe20d4c890cb5580a3b9290f700c570e167d4cdcc55feec07030297a5e3"}, - {file = "pyzmq-24.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:48f721f070726cd2a6e44f3c33f8ee4b24188e4b816e6dd8ba542c8c3bb5b246"}, - {file = "pyzmq-24.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:afe1f3bc486d0ce40abb0a0c9adb39aed3bbac36ebdc596487b0cceba55c21c1"}, - {file = "pyzmq-24.0.1-cp310-cp310-win32.whl", hash = "sha256:3e6192dbcefaaa52ed81be88525a54a445f4b4fe2fffcae7fe40ebb58bd06bfd"}, - {file = "pyzmq-24.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:86de64468cad9c6d269f32a6390e210ca5ada568c7a55de8e681ca3b897bb340"}, - {file = "pyzmq-24.0.1-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:838812c65ed5f7c2bd11f7b098d2e5d01685a3f6d1f82849423b570bae698c00"}, - {file = "pyzmq-24.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dfb992dbcd88d8254471760879d48fb20836d91baa90f181c957122f9592b3dc"}, - {file = "pyzmq-24.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7abddb2bd5489d30ffeb4b93a428130886c171b4d355ccd226e83254fcb6b9ef"}, - {file = "pyzmq-24.0.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:94010bd61bc168c103a5b3b0f56ed3b616688192db7cd5b1d626e49f28ff51b3"}, - {file = "pyzmq-24.0.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:8242543c522d84d033fe79be04cb559b80d7eb98ad81b137ff7e0a9020f00ace"}, - {file = "pyzmq-24.0.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ccb94342d13e3bf3ffa6e62f95b5e3f0bc6bfa94558cb37f4b3d09d6feb536ff"}, - {file = "pyzmq-24.0.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6640f83df0ae4ae1104d4c62b77e9ef39be85ebe53f636388707d532bee2b7b8"}, - {file = "pyzmq-24.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a180dbd5ea5d47c2d3b716d5c19cc3fb162d1c8db93b21a1295d69585bfddac1"}, - {file = "pyzmq-24.0.1-cp311-cp311-win32.whl", hash = "sha256:624321120f7e60336be8ec74a172ae7fba5c3ed5bf787cc85f7e9986c9e0ebc2"}, - {file = "pyzmq-24.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:1724117bae69e091309ffb8255412c4651d3f6355560d9af312d547f6c5bc8b8"}, - {file = "pyzmq-24.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:15975747462ec49fdc863af906bab87c43b2491403ab37a6d88410635786b0f4"}, - {file = "pyzmq-24.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b947e264f0e77d30dcbccbb00f49f900b204b922eb0c3a9f0afd61aaa1cedc3d"}, - {file = "pyzmq-24.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0ec91f1bad66f3ee8c6deb65fa1fe418e8ad803efedd69c35f3b5502f43bd1dc"}, - {file = "pyzmq-24.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:db03704b3506455d86ec72c3358a779e9b1d07b61220dfb43702b7b668edcd0d"}, - {file = "pyzmq-24.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e7e66b4e403c2836ac74f26c4b65d8ac0ca1eef41dfcac2d013b7482befaad83"}, - {file = "pyzmq-24.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:7a23ccc1083c260fa9685c93e3b170baba45aeed4b524deb3f426b0c40c11639"}, - {file = "pyzmq-24.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:fa0ae3275ef706c0309556061185dd0e4c4cd3b7d6f67ae617e4e677c7a41e2e"}, - {file = "pyzmq-24.0.1-cp36-cp36m-win32.whl", hash = "sha256:f01de4ec083daebf210531e2cca3bdb1608dbbbe00a9723e261d92087a1f6ebc"}, - {file = "pyzmq-24.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:de4217b9eb8b541cf2b7fde4401ce9d9a411cc0af85d410f9d6f4333f43640be"}, - {file = "pyzmq-24.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:78068e8678ca023594e4a0ab558905c1033b2d3e806a0ad9e3094e231e115a33"}, - {file = "pyzmq-24.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77c2713faf25a953c69cf0f723d1b7dd83827b0834e6c41e3fb3bbc6765914a1"}, - {file = "pyzmq-24.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8bb4af15f305056e95ca1bd086239b9ebc6ad55e9f49076d27d80027f72752f6"}, - {file = "pyzmq-24.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:0f14cffd32e9c4c73da66db97853a6aeceaac34acdc0fae9e5bbc9370281864c"}, - {file = "pyzmq-24.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0108358dab8c6b27ff6b985c2af4b12665c1bc659648284153ee501000f5c107"}, - {file = "pyzmq-24.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:d66689e840e75221b0b290b0befa86f059fb35e1ee6443bce51516d4d61b6b99"}, - {file = "pyzmq-24.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ae08ac90aa8fa14caafc7a6251bd218bf6dac518b7bff09caaa5e781119ba3f2"}, - {file = "pyzmq-24.0.1-cp37-cp37m-win32.whl", hash = "sha256:8421aa8c9b45ea608c205db9e1c0c855c7e54d0e9c2c2f337ce024f6843cab3b"}, - {file = "pyzmq-24.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:54d8b9c5e288362ec8595c1d98666d36f2070fd0c2f76e2b3c60fbad9bd76227"}, - {file = "pyzmq-24.0.1-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:acbd0a6d61cc954b9f535daaa9ec26b0a60a0d4353c5f7c1438ebc88a359a47e"}, - {file = "pyzmq-24.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:47b11a729d61a47df56346283a4a800fa379ae6a85870d5a2e1e4956c828eedc"}, - {file = "pyzmq-24.0.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:abe6eb10122f0d746a0d510c2039ae8edb27bc9af29f6d1b05a66cc2401353ff"}, - {file = "pyzmq-24.0.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:07bec1a1b22dacf718f2c0e71b49600bb6a31a88f06527dfd0b5aababe3fa3f7"}, - {file = "pyzmq-24.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0d945a85b70da97ae86113faf9f1b9294efe66bd4a5d6f82f2676d567338b66"}, - {file = "pyzmq-24.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1b7928bb7580736ffac5baf814097be342ba08d3cfdfb48e52773ec959572287"}, - {file = "pyzmq-24.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:b946da90dc2799bcafa682692c1d2139b2a96ec3c24fa9fc6f5b0da782675330"}, - {file = "pyzmq-24.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c8840f064b1fb377cffd3efeaad2b190c14d4c8da02316dae07571252d20b31f"}, - {file = "pyzmq-24.0.1-cp38-cp38-win32.whl", hash = "sha256:4854f9edc5208f63f0841c0c667260ae8d6846cfa233c479e29fdc85d42ebd58"}, - {file = "pyzmq-24.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:42d4f97b9795a7aafa152a36fe2ad44549b83a743fd3e77011136def512e6c2a"}, - {file = "pyzmq-24.0.1-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:52afb0ac962963fff30cf1be775bc51ae083ef4c1e354266ab20e5382057dd62"}, - {file = "pyzmq-24.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8bad8210ad4df68c44ff3685cca3cda448ee46e20d13edcff8909eba6ec01ca4"}, - {file = "pyzmq-24.0.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:dabf1a05318d95b1537fd61d9330ef4313ea1216eea128a17615038859da3b3b"}, - {file = "pyzmq-24.0.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5bd3d7dfd9cd058eb68d9a905dec854f86649f64d4ddf21f3ec289341386c44b"}, - {file = "pyzmq-24.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8012bce6836d3f20a6c9599f81dfa945f433dab4dbd0c4917a6fb1f998ab33d"}, - {file = "pyzmq-24.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c31805d2c8ade9b11feca4674eee2b9cce1fec3e8ddb7bbdd961a09dc76a80ea"}, - {file = "pyzmq-24.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:3104f4b084ad5d9c0cb87445cc8cfd96bba710bef4a66c2674910127044df209"}, - {file = "pyzmq-24.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:df0841f94928f8af9c7a1f0aaaffba1fb74607af023a152f59379c01c53aee58"}, - {file = "pyzmq-24.0.1-cp39-cp39-win32.whl", hash = "sha256:a435ef8a3bd95c8a2d316d6e0ff70d0db524f6037411652803e118871d703333"}, - {file = "pyzmq-24.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:2032d9cb994ce3b4cba2b8dfae08c7e25bc14ba484c770d4d3be33c27de8c45b"}, - {file = "pyzmq-24.0.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bb5635c851eef3a7a54becde6da99485eecf7d068bd885ac8e6d173c4ecd68b0"}, - {file = "pyzmq-24.0.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:83ea1a398f192957cb986d9206ce229efe0ee75e3c6635baff53ddf39bd718d5"}, - {file = "pyzmq-24.0.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:941fab0073f0a54dc33d1a0460cb04e0d85893cb0c5e1476c785000f8b359409"}, - {file = "pyzmq-24.0.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e8f482c44ccb5884bf3f638f29bea0f8dc68c97e38b2061769c4cb697f6140d"}, - {file = "pyzmq-24.0.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:613010b5d17906c4367609e6f52e9a2595e35d5cc27d36ff3f1b6fa6e954d944"}, - {file = "pyzmq-24.0.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:65c94410b5a8355cfcf12fd600a313efee46ce96a09e911ea92cf2acf6708804"}, - {file = "pyzmq-24.0.1-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:20e7eeb1166087db636c06cae04a1ef59298627f56fb17da10528ab52a14c87f"}, - {file = "pyzmq-24.0.1-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a2712aee7b3834ace51738c15d9ee152cc5a98dc7d57dd93300461b792ab7b43"}, - {file = "pyzmq-24.0.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a7c280185c4da99e0cc06c63bdf91f5b0b71deb70d8717f0ab870a43e376db8"}, - {file = "pyzmq-24.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:858375573c9225cc8e5b49bfac846a77b696b8d5e815711b8d4ba3141e6e8879"}, - {file = "pyzmq-24.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:80093b595921eed1a2cead546a683b9e2ae7f4a4592bb2ab22f70d30174f003a"}, - {file = "pyzmq-24.0.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f3f3154fde2b1ff3aa7b4f9326347ebc89c8ef425ca1db8f665175e6d3bd42f"}, - {file = "pyzmq-24.0.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abb756147314430bee5d10919b8493c0ccb109ddb7f5dfd2fcd7441266a25b75"}, - {file = "pyzmq-24.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44e706bac34e9f50779cb8c39f10b53a4d15aebb97235643d3112ac20bd577b4"}, - {file = "pyzmq-24.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:687700f8371643916a1d2c61f3fdaa630407dd205c38afff936545d7b7466066"}, - {file = "pyzmq-24.0.1.tar.gz", hash = "sha256:216f5d7dbb67166759e59b0479bca82b8acf9bed6015b526b8eb10143fb08e77"}, -] -qtconsole = [ - {file = "qtconsole-5.3.2-py3-none-any.whl", hash = "sha256:c29d24464f57cdbaa17d6f6060be6e6d5e29126e7feb57eebc1747433382b3d1"}, - {file = "qtconsole-5.3.2.tar.gz", hash = "sha256:8eadf012e83ab018295803c247c6ab7eacd3d5ab1e1d88a0f37fdcfdab9295a3"}, -] -qtpy = [ - {file = "QtPy-2.2.1-py3-none-any.whl", hash = "sha256:268cf5328f41353be1b127e04a81bc74ec9a9b54c9ac75dd8fe0ff48d8ad6ead"}, - {file = "QtPy-2.2.1.tar.gz", hash = "sha256:7d5231133b772e40b4ee514b6673aca558331e4b88ca038b26c9e16c5c95524f"}, -] -requests = [ - {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"}, - {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"}, -] -"ruamel.yaml" = [ - {file = "ruamel.yaml-0.17.21-py3-none-any.whl", hash = "sha256:742b35d3d665023981bd6d16b3d24248ce5df75fdb4e2924e93a05c1f8b61ca7"}, - {file = "ruamel.yaml-0.17.21.tar.gz", hash = "sha256:8b7ce697a2f212752a35c1ac414471dc16c424c9573be4926b56ff3f5d23b7af"}, -] -"ruamel.yaml.clib" = [ - {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6e7be2c5bcb297f5b82fee9c665eb2eb7001d1050deaba8471842979293a80b0"}, - {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:066f886bc90cc2ce44df8b5f7acfc6a7e2b2e672713f027136464492b0c34d7c"}, - {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:221eca6f35076c6ae472a531afa1c223b9c29377e62936f61bc8e6e8bdc5f9e7"}, - {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-win32.whl", hash = "sha256:1070ba9dd7f9370d0513d649420c3b362ac2d687fe78c6e888f5b12bf8bc7bee"}, - {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:77df077d32921ad46f34816a9a16e6356d8100374579bc35e15bab5d4e9377de"}, - {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:cfdb9389d888c5b74af297e51ce357b800dd844898af9d4a547ffc143fa56751"}, - {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7b2927e92feb51d830f531de4ccb11b320255ee95e791022555971c466af4527"}, - {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-win32.whl", hash = "sha256:ada3f400d9923a190ea8b59c8f60680c4ef8a4b0dfae134d2f2ff68429adfab5"}, - {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-win_amd64.whl", hash = "sha256:de9c6b8a1ba52919ae919f3ae96abb72b994dd0350226e28f3686cb4f142165c"}, - {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d67f273097c368265a7b81e152e07fb90ed395df6e552b9fa858c6d2c9f42502"}, - {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:72a2b8b2ff0a627496aad76f37a652bcef400fd861721744201ef1b45199ab78"}, - {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:d3c620a54748a3d4cf0bcfe623e388407c8e85a4b06b8188e126302bcab93ea8"}, - {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-win32.whl", hash = "sha256:9efef4aab5353387b07f6b22ace0867032b900d8e91674b5d8ea9150db5cae94"}, - {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-win_amd64.whl", hash = "sha256:846fc8336443106fe23f9b6d6b8c14a53d38cef9a375149d61f99d78782ea468"}, - {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0847201b767447fc33b9c235780d3aa90357d20dd6108b92be544427bea197dd"}, - {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:78988ed190206672da0f5d50c61afef8f67daa718d614377dcd5e3ed85ab4a99"}, - {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:210c8fcfeff90514b7133010bf14e3bad652c8efde6b20e00c43854bf94fa5a6"}, - {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-win32.whl", hash = "sha256:a49e0161897901d1ac9c4a79984b8410f450565bbad64dbfcbf76152743a0cdb"}, - {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-win_amd64.whl", hash = "sha256:bf75d28fa071645c529b5474a550a44686821decebdd00e21127ef1fd566eabe"}, - {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a32f8d81ea0c6173ab1b3da956869114cae53ba1e9f72374032e33ba3118c233"}, - {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7f7ecb53ae6848f959db6ae93bdff1740e651809780822270eab111500842a84"}, - {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:61bc5e5ca632d95925907c569daa559ea194a4d16084ba86084be98ab1cec1c6"}, - {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-win32.whl", hash = "sha256:89221ec6d6026f8ae859c09b9718799fea22c0e8da8b766b0b2c9a9ba2db326b"}, - {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-win_amd64.whl", hash = "sha256:31ea73e564a7b5fbbe8188ab8b334393e06d997914a4e184975348f204790277"}, - {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dc6a613d6c74eef5a14a214d433d06291526145431c3b964f5e16529b1842bed"}, - {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:1866cf2c284a03b9524a5cc00daca56d80057c5ce3cdc86a52020f4c720856f0"}, - {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:1b4139a6ffbca8ef60fdaf9b33dec05143ba746a6f0ae0f9d11d38239211d335"}, - {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-win32.whl", hash = "sha256:3fb9575a5acd13031c57a62cc7823e5d2ff8bc3835ba4d94b921b4e6ee664104"}, - {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-win_amd64.whl", hash = "sha256:825d5fccef6da42f3c8eccd4281af399f21c02b32d98e113dbc631ea6a6ecbc7"}, - {file = "ruamel.yaml.clib-0.2.6.tar.gz", hash = "sha256:4ff604ce439abb20794f05613c374759ce10e3595d1867764dd1ae675b85acbd"}, -] -safety = [ - {file = "safety-2.3.1-py3-none-any.whl", hash = "sha256:8f098d12b607db2756886280e85c28ece8db1bba4f45fc5f981f4663217bd619"}, - {file = "safety-2.3.1.tar.gz", hash = "sha256:6e6fcb7d4e8321098cf289f59b65051cafd3467f089c6e57c9f894ae32c23b71"}, -] -send2trash = [ - {file = "Send2Trash-1.8.0-py3-none-any.whl", hash = "sha256:f20eaadfdb517eaca5ce077640cb261c7d2698385a6a0f072a4a5447fd49fa08"}, - {file = "Send2Trash-1.8.0.tar.gz", hash = "sha256:d2c24762fd3759860a0aff155e45871447ea58d2be6bdd39b5c8f966a0c99c2d"}, -] -six = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] -smmap = [ - {file = "smmap-5.0.0-py3-none-any.whl", hash = "sha256:2aba19d6a040e78d8b09de5c57e96207b09ed71d8e55ce0959eeee6c8e190d94"}, - {file = "smmap-5.0.0.tar.gz", hash = "sha256:c840e62059cd3be204b0c9c9f74be2c09d5648eddd4580d9314c3ecde0b30936"}, -] -snowballstemmer = [ - {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, - {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, -] -soupsieve = [ - {file = "soupsieve-2.3.2.post1-py3-none-any.whl", hash = "sha256:3b2503d3c7084a42b1ebd08116e5f81aadfaea95863628c80a3b774a11b7c759"}, - {file = "soupsieve-2.3.2.post1.tar.gz", hash = "sha256:fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d"}, -] -sphinx = [ - {file = "Sphinx-5.3.0.tar.gz", hash = "sha256:51026de0a9ff9fc13c05d74913ad66047e104f56a129ff73e174eb5c3ee794b5"}, - {file = "sphinx-5.3.0-py3-none-any.whl", hash = "sha256:060ca5c9f7ba57a08a1219e547b269fadf125ae25b06b9fa7f66768efb652d6d"}, -] -sphinx-rtd-theme = [ - {file = "sphinx_rtd_theme-1.2.0-py2.py3-none-any.whl", hash = "sha256:f823f7e71890abe0ac6aaa6013361ea2696fc8d3e1fa798f463e82bdb77eeff2"}, - {file = "sphinx_rtd_theme-1.2.0.tar.gz", hash = "sha256:a0d8bd1a2ed52e0b338cbe19c4b2eef3c5e7a048769753dac6a9f059c7b641b8"}, -] -sphinxcontrib-applehelp = [ - {file = "sphinxcontrib-applehelp-1.0.4.tar.gz", hash = "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e"}, - {file = "sphinxcontrib_applehelp-1.0.4-py3-none-any.whl", hash = "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228"}, -] -sphinxcontrib-devhelp = [ - {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, - {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, -] -sphinxcontrib-htmlhelp = [ - {file = "sphinxcontrib-htmlhelp-2.0.1.tar.gz", hash = "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff"}, - {file = "sphinxcontrib_htmlhelp-2.0.1-py3-none-any.whl", hash = "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903"}, -] -sphinxcontrib-jquery = [ - {file = "sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a"}, - {file = "sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae"}, -] -sphinxcontrib-jsmath = [ - {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, - {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, -] -sphinxcontrib-qthelp = [ - {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, - {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, -] -sphinxcontrib-serializinghtml = [ - {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, - {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, -] -sqlalchemy = [ - {file = "SQLAlchemy-2.0.13-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7ad24c85f2a1caf0cd1ae8c2fdb668777a51a02246d9039420f94bd7dbfd37ed"}, - {file = "SQLAlchemy-2.0.13-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:db24d2738add6db19d66ca820479d2f8f96d3f5a13c223f27fa28dd2f268a4bd"}, - {file = "SQLAlchemy-2.0.13-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:72746ec17a7d9c5acf2c57a6e6190ceba3dad7127cd85bb17f24e90acc0e8e3f"}, - {file = "SQLAlchemy-2.0.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:755f653d693f9b8f4286d987aec0d4279821bf8d179a9de8e8a5c685e77e57d6"}, - {file = "SQLAlchemy-2.0.13-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e0d20f27edfd6f35b388da2bdcd7769e4ffa374fef8994980ced26eb287e033a"}, - {file = "SQLAlchemy-2.0.13-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:37de4010f53f452e94e5ed6684480432cfe6a7a8914307ef819cd028b05b98d5"}, - {file = "SQLAlchemy-2.0.13-cp310-cp310-win32.whl", hash = "sha256:31f72bb300eed7bfdb373c7c046121d84fa0ae6f383089db9505ff553ac27cef"}, - {file = "SQLAlchemy-2.0.13-cp310-cp310-win_amd64.whl", hash = "sha256:ec2f525273528425ed2f51861b7b88955160cb95dddb17af0914077040aff4a5"}, - {file = "SQLAlchemy-2.0.13-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2424a84f131901fbb20a99844d47b38b517174c6e964c8efb15ea6bb9ced8c2b"}, - {file = "SQLAlchemy-2.0.13-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4f9832815257969b3ca9bf0501351e4c02c8d60cbd3ec9f9070d5b0f8852900e"}, - {file = "SQLAlchemy-2.0.13-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a30e4db983faa5145e00ef6eaf894a2d503b3221dbf40a595f3011930d3d0bac"}, - {file = "SQLAlchemy-2.0.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f717944aee40e9f48776cf85b523bb376aa2d9255a268d6d643c57ab387e7264"}, - {file = "SQLAlchemy-2.0.13-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9119795d2405eb23bf7e6707e228fe38124df029494c1b3576459aa3202ea432"}, - {file = "SQLAlchemy-2.0.13-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2ad9688debf1f0ae9c6e0706a4e2d33b1a01281317cee9bd1d7eef8020c5baac"}, - {file = "SQLAlchemy-2.0.13-cp311-cp311-win32.whl", hash = "sha256:c61b89803a87a3b2a394089a7dadb79a6c64c89f2e8930cc187fec43b319f8d2"}, - {file = "SQLAlchemy-2.0.13-cp311-cp311-win_amd64.whl", hash = "sha256:0aa2cbde85a6eab9263ab480f19e8882d022d30ebcdc14d69e6a8d7c07b0a871"}, - {file = "SQLAlchemy-2.0.13-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:9ad883ac4f5225999747f0849643c4d0ec809d9ffe0ddc81a81dd3e68d0af463"}, - {file = "SQLAlchemy-2.0.13-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e481e54db8cec1457ee7c05f6d2329e3298a304a70d3b5e2e82e77170850b385"}, - {file = "SQLAlchemy-2.0.13-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4e08e3831671008888bad5d160d757ef35ce34dbb73b78c3998d16aa1334c97"}, - {file = "SQLAlchemy-2.0.13-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:f234ba3bb339ad17803009c8251f5ee65dcf283a380817fe486823b08b26383d"}, - {file = "SQLAlchemy-2.0.13-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:375b7ba88f261dbd79d044f20cbcd919d88befb63f26af9d084614f10cdf97a6"}, - {file = "SQLAlchemy-2.0.13-cp37-cp37m-win32.whl", hash = "sha256:9136d596111c742d061c0f99bab95c5370016c4101a32e72c2b634ad5e0757e6"}, - {file = "SQLAlchemy-2.0.13-cp37-cp37m-win_amd64.whl", hash = "sha256:7612a7366a0855a04430363fb4ab392dc6818aaece0b2e325ff30ee77af9b21f"}, - {file = "SQLAlchemy-2.0.13-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:49c138856035cb97f0053e5e57ba90ec936b28a0b8b0020d44965c7b0c0bf03a"}, - {file = "SQLAlchemy-2.0.13-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a5e9e78332a5d841422b88b8c490dfd7f761e64b3430249b66c05d02f72ceab0"}, - {file = "SQLAlchemy-2.0.13-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd0febae872a4042da44e972c070f0fd49a85a0a7727ab6b85425f74348be14e"}, - {file = "SQLAlchemy-2.0.13-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:566a0ac347cf4632f551e7b28bbd0d215af82e6ffaa2556f565a3b6b51dc3f81"}, - {file = "SQLAlchemy-2.0.13-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e5e5dc300a0ca8755ada1569f5caccfcdca28607dfb98b86a54996b288a8ebd3"}, - {file = "SQLAlchemy-2.0.13-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a25b4c4fdd633501233924f873e6f6cd8970732859ecfe4ecfb60635881f70be"}, - {file = "SQLAlchemy-2.0.13-cp38-cp38-win32.whl", hash = "sha256:6777673d346071451bf7cccf8d0499024f1bd6a835fc90b4fe7af50373d92ce6"}, - {file = "SQLAlchemy-2.0.13-cp38-cp38-win_amd64.whl", hash = "sha256:2f0a355264af0952570f18457102984e1f79510f856e5e0ae652e63316d1ca23"}, - {file = "SQLAlchemy-2.0.13-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d93ebbff3dcf05274843ad8cf650b48ee634626e752c5d73614e5ec9df45f0ce"}, - {file = "SQLAlchemy-2.0.13-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fec56c7d1b6a22c8f01557de3975d962ee40270b81b60d1cfdadf2a105d10e84"}, - {file = "SQLAlchemy-2.0.13-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0eb14a386a5b610305bec6639b35540b47f408b0a59f75999199aed5b3d40079"}, - {file = "SQLAlchemy-2.0.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2f3b5236079bc3e318a92bab2cc3f669cc32127075ab03ff61cacbae1c392b8"}, - {file = "SQLAlchemy-2.0.13-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bf1aae95e80acea02a0a622e1c12d3fefc52ffd0fe7bda70a30d070373fbb6c3"}, - {file = "SQLAlchemy-2.0.13-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cdf80359b641185ae7e580afb9f88cf560298f309a38182972091165bfe1225d"}, - {file = "SQLAlchemy-2.0.13-cp39-cp39-win32.whl", hash = "sha256:f463598f9e51ccc04f0fe08500f9a0c3251a7086765350be418598b753b5561d"}, - {file = "SQLAlchemy-2.0.13-cp39-cp39-win_amd64.whl", hash = "sha256:881cc388dded44ae6e17a1666364b98bd76bcdc71b869014ae725f06ba298e0e"}, - {file = "SQLAlchemy-2.0.13-py3-none-any.whl", hash = "sha256:0d6979c9707f8b82366ba34b38b5a6fe32f75766b2e901f9820e271e95384070"}, - {file = "SQLAlchemy-2.0.13.tar.gz", hash = "sha256:8d97b37b4e60073c38bcf94e289e3be09ef9be870de88d163f16e08f2b9ded1a"}, -] -stack-data = [ - {file = "stack_data-0.5.1-py3-none-any.whl", hash = "sha256:5120731a18ba4c82cefcf84a945f6f3e62319ef413bfc210e32aca3a69310ba2"}, - {file = "stack_data-0.5.1.tar.gz", hash = "sha256:95eb784942e861a3d80efd549ff9af6cf847d88343a12eb681d7157cfcb6e32b"}, -] -stevedore = [ - {file = "stevedore-4.0.0-py3-none-any.whl", hash = "sha256:87e4d27fe96d0d7e4fc24f0cbe3463baae4ec51e81d95fbe60d2474636e0c7d8"}, - {file = "stevedore-4.0.0.tar.gz", hash = "sha256:f82cc99a1ff552310d19c379827c2c64dd9f85a38bcd5559db2470161867b786"}, -] -tabulate = [ - {file = "tabulate-0.8.10-py3-none-any.whl", hash = "sha256:0ba055423dbaa164b9e456abe7920c5e8ed33fcc16f6d1b2f2d152c8e1e8b4fc"}, - {file = "tabulate-0.8.10-py3.8.egg", hash = "sha256:436f1c768b424654fce8597290d2764def1eea6a77cfa5c33be00b1bc0f4f63d"}, - {file = "tabulate-0.8.10.tar.gz", hash = "sha256:6c57f3f3dd7ac2782770155f3adb2db0b1a269637e42f27599925e64b114f519"}, -] -terminado = [ - {file = "terminado-0.16.0-py3-none-any.whl", hash = "sha256:3e995072a7178a104c41134548ce9b03e4e7f0a538e9c29df4f1fbc81c7cfc75"}, - {file = "terminado-0.16.0.tar.gz", hash = "sha256:fac14374eb5498bdc157ed32e510b1f60d5c3c7981a9f5ba018bb9a64cec0c25"}, -] -tinycss2 = [ - {file = "tinycss2-1.1.1-py3-none-any.whl", hash = "sha256:fe794ceaadfe3cf3e686b22155d0da5780dd0e273471a51846d0a02bc204fec8"}, - {file = "tinycss2-1.1.1.tar.gz", hash = "sha256:b2e44dd8883c360c35dd0d1b5aad0b610e5156c2cb3b33434634e539ead9d8bf"}, -] -toml = [ - {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, - {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, -] -tomli = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, -] -tomlkit = [ - {file = "tomlkit-0.11.5-py3-none-any.whl", hash = "sha256:f2ef9da9cef846ee027947dc99a45d6b68a63b0ebc21944649505bf2e8bc5fe7"}, - {file = "tomlkit-0.11.5.tar.gz", hash = "sha256:571854ebbb5eac89abcb4a2e47d7ea27b89bf29e09c35395da6f03dd4ae23d1c"}, -] -tornado = [ - {file = "tornado-6.2-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:20f638fd8cc85f3cbae3c732326e96addff0a15e22d80f049e00121651e82e72"}, - {file = "tornado-6.2-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:87dcafae3e884462f90c90ecc200defe5e580a7fbbb4365eda7c7c1eb809ebc9"}, - {file = "tornado-6.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba09ef14ca9893954244fd872798b4ccb2367c165946ce2dd7376aebdde8e3ac"}, - {file = "tornado-6.2-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8150f721c101abdef99073bf66d3903e292d851bee51910839831caba341a75"}, - {file = "tornado-6.2-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e"}, - {file = "tornado-6.2-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:5f8c52d219d4995388119af7ccaa0bcec289535747620116a58d830e7c25d8a8"}, - {file = "tornado-6.2-cp37-abi3-musllinux_1_1_i686.whl", hash = "sha256:6fdfabffd8dfcb6cf887428849d30cf19a3ea34c2c248461e1f7d718ad30b66b"}, - {file = "tornado-6.2-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:1d54d13ab8414ed44de07efecb97d4ef7c39f7438cf5e976ccd356bebb1b5fca"}, - {file = "tornado-6.2-cp37-abi3-win32.whl", hash = "sha256:5c87076709343557ef8032934ce5f637dbb552efa7b21d08e89ae7619ed0eb23"}, - {file = "tornado-6.2-cp37-abi3-win_amd64.whl", hash = "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b"}, - {file = "tornado-6.2.tar.gz", hash = "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13"}, -] -traitlets = [ - {file = "traitlets-5.4.0-py3-none-any.whl", hash = "sha256:93663cc8236093d48150e2af5e2ed30fc7904a11a6195e21bab0408af4e6d6c8"}, - {file = "traitlets-5.4.0.tar.gz", hash = "sha256:3f2c4e435e271592fe4390f1746ea56836e3a080f84e7833f0f801d9613fec39"}, -] -typing-extensions = [ - {file = "typing_extensions-4.4.0-py3-none-any.whl", hash = "sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e"}, - {file = "typing_extensions-4.4.0.tar.gz", hash = "sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa"}, -] -urllib3 = [ - {file = "urllib3-1.26.15-py2.py3-none-any.whl", hash = "sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42"}, - {file = "urllib3-1.26.15.tar.gz", hash = "sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305"}, -] -virtualenv = [ - {file = "virtualenv-20.16.5-py3-none-any.whl", hash = "sha256:d07dfc5df5e4e0dbc92862350ad87a36ed505b978f6c39609dc489eadd5b0d27"}, - {file = "virtualenv-20.16.5.tar.gz", hash = "sha256:227ea1b9994fdc5ea31977ba3383ef296d7472ea85be9d6732e42a91c04e80da"}, -] -wcwidth = [ - {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, - {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, -] -webencodings = [ - {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, - {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, -] -widgetsnbextension = [ - {file = "widgetsnbextension-4.0.3-py3-none-any.whl", hash = "sha256:7f3b0de8fda692d31ef03743b598620e31c2668b835edbd3962d080ccecf31eb"}, - {file = "widgetsnbextension-4.0.3.tar.gz", hash = "sha256:34824864c062b0b3030ad78210db5ae6a3960dfb61d5b27562d6631774de0286"}, -] -wrapt = [ - {file = "wrapt-1.14.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:1b376b3f4896e7930f1f772ac4b064ac12598d1c38d04907e696cc4d794b43d3"}, - {file = "wrapt-1.14.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:903500616422a40a98a5a3c4ff4ed9d0066f3b4c951fa286018ecdf0750194ef"}, - {file = "wrapt-1.14.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5a9a0d155deafd9448baff28c08e150d9b24ff010e899311ddd63c45c2445e28"}, - {file = "wrapt-1.14.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ddaea91abf8b0d13443f6dac52e89051a5063c7d014710dcb4d4abb2ff811a59"}, - {file = "wrapt-1.14.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:36f582d0c6bc99d5f39cd3ac2a9062e57f3cf606ade29a0a0d6b323462f4dd87"}, - {file = "wrapt-1.14.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:7ef58fb89674095bfc57c4069e95d7a31cfdc0939e2a579882ac7d55aadfd2a1"}, - {file = "wrapt-1.14.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:e2f83e18fe2f4c9e7db597e988f72712c0c3676d337d8b101f6758107c42425b"}, - {file = "wrapt-1.14.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:ee2b1b1769f6707a8a445162ea16dddf74285c3964f605877a20e38545c3c462"}, - {file = "wrapt-1.14.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:833b58d5d0b7e5b9832869f039203389ac7cbf01765639c7309fd50ef619e0b1"}, - {file = "wrapt-1.14.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:80bb5c256f1415f747011dc3604b59bc1f91c6e7150bd7db03b19170ee06b320"}, - {file = "wrapt-1.14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:07f7a7d0f388028b2df1d916e94bbb40624c59b48ecc6cbc232546706fac74c2"}, - {file = "wrapt-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02b41b633c6261feff8ddd8d11c711df6842aba629fdd3da10249a53211a72c4"}, - {file = "wrapt-1.14.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2fe803deacd09a233e4762a1adcea5db5d31e6be577a43352936179d14d90069"}, - {file = "wrapt-1.14.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:257fd78c513e0fb5cdbe058c27a0624c9884e735bbd131935fd49e9fe719d310"}, - {file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4fcc4649dc762cddacd193e6b55bc02edca674067f5f98166d7713b193932b7f"}, - {file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:11871514607b15cfeb87c547a49bca19fde402f32e2b1c24a632506c0a756656"}, - {file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8ad85f7f4e20964db4daadcab70b47ab05c7c1cf2a7c1e51087bfaa83831854c"}, - {file = "wrapt-1.14.1-cp310-cp310-win32.whl", hash = "sha256:a9a52172be0b5aae932bef82a79ec0a0ce87288c7d132946d645eba03f0ad8a8"}, - {file = "wrapt-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:6d323e1554b3d22cfc03cd3243b5bb815a51f5249fdcbb86fda4bf62bab9e164"}, - {file = "wrapt-1.14.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:43ca3bbbe97af00f49efb06e352eae40434ca9d915906f77def219b88e85d907"}, - {file = "wrapt-1.14.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:6b1a564e6cb69922c7fe3a678b9f9a3c54e72b469875aa8018f18b4d1dd1adf3"}, - {file = "wrapt-1.14.1-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:00b6d4ea20a906c0ca56d84f93065b398ab74b927a7a3dbd470f6fc503f95dc3"}, - {file = "wrapt-1.14.1-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:a85d2b46be66a71bedde836d9e41859879cc54a2a04fad1191eb50c2066f6e9d"}, - {file = "wrapt-1.14.1-cp35-cp35m-win32.whl", hash = "sha256:dbcda74c67263139358f4d188ae5faae95c30929281bc6866d00573783c422b7"}, - {file = "wrapt-1.14.1-cp35-cp35m-win_amd64.whl", hash = "sha256:b21bb4c09ffabfa0e85e3a6b623e19b80e7acd709b9f91452b8297ace2a8ab00"}, - {file = "wrapt-1.14.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:9e0fd32e0148dd5dea6af5fee42beb949098564cc23211a88d799e434255a1f4"}, - {file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9736af4641846491aedb3c3f56b9bc5568d92b0692303b5a305301a95dfd38b1"}, - {file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b02d65b9ccf0ef6c34cba6cf5bf2aab1bb2f49c6090bafeecc9cd81ad4ea1c1"}, - {file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21ac0156c4b089b330b7666db40feee30a5d52634cc4560e1905d6529a3897ff"}, - {file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:9f3e6f9e05148ff90002b884fbc2a86bd303ae847e472f44ecc06c2cd2fcdb2d"}, - {file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:6e743de5e9c3d1b7185870f480587b75b1cb604832e380d64f9504a0535912d1"}, - {file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:d79d7d5dc8a32b7093e81e97dad755127ff77bcc899e845f41bf71747af0c569"}, - {file = "wrapt-1.14.1-cp36-cp36m-win32.whl", hash = "sha256:81b19725065dcb43df02b37e03278c011a09e49757287dca60c5aecdd5a0b8ed"}, - {file = "wrapt-1.14.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b014c23646a467558be7da3d6b9fa409b2c567d2110599b7cf9a0c5992b3b471"}, - {file = "wrapt-1.14.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:88bd7b6bd70a5b6803c1abf6bca012f7ed963e58c68d76ee20b9d751c74a3248"}, - {file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5901a312f4d14c59918c221323068fad0540e34324925c8475263841dbdfe68"}, - {file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d77c85fedff92cf788face9bfa3ebaa364448ebb1d765302e9af11bf449ca36d"}, - {file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d649d616e5c6a678b26d15ece345354f7c2286acd6db868e65fcc5ff7c24a77"}, - {file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7d2872609603cb35ca513d7404a94d6d608fc13211563571117046c9d2bcc3d7"}, - {file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:ee6acae74a2b91865910eef5e7de37dc6895ad96fa23603d1d27ea69df545015"}, - {file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2b39d38039a1fdad98c87279b48bc5dce2c0ca0d73483b12cb72aa9609278e8a"}, - {file = "wrapt-1.14.1-cp37-cp37m-win32.whl", hash = "sha256:60db23fa423575eeb65ea430cee741acb7c26a1365d103f7b0f6ec412b893853"}, - {file = "wrapt-1.14.1-cp37-cp37m-win_amd64.whl", hash = "sha256:709fe01086a55cf79d20f741f39325018f4df051ef39fe921b1ebe780a66184c"}, - {file = "wrapt-1.14.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8c0ce1e99116d5ab21355d8ebe53d9460366704ea38ae4d9f6933188f327b456"}, - {file = "wrapt-1.14.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e3fb1677c720409d5f671e39bac6c9e0e422584e5f518bfd50aa4cbbea02433f"}, - {file = "wrapt-1.14.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:642c2e7a804fcf18c222e1060df25fc210b9c58db7c91416fb055897fc27e8cc"}, - {file = "wrapt-1.14.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7b7c050ae976e286906dd3f26009e117eb000fb2cf3533398c5ad9ccc86867b1"}, - {file = "wrapt-1.14.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef3f72c9666bba2bab70d2a8b79f2c6d2c1a42a7f7e2b0ec83bb2f9e383950af"}, - {file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:01c205616a89d09827986bc4e859bcabd64f5a0662a7fe95e0d359424e0e071b"}, - {file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5a0f54ce2c092aaf439813735584b9537cad479575a09892b8352fea5e988dc0"}, - {file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2cf71233a0ed05ccdabe209c606fe0bac7379fdcf687f39b944420d2a09fdb57"}, - {file = "wrapt-1.14.1-cp38-cp38-win32.whl", hash = "sha256:aa31fdcc33fef9eb2552cbcbfee7773d5a6792c137b359e82879c101e98584c5"}, - {file = "wrapt-1.14.1-cp38-cp38-win_amd64.whl", hash = "sha256:d1967f46ea8f2db647c786e78d8cc7e4313dbd1b0aca360592d8027b8508e24d"}, - {file = "wrapt-1.14.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3232822c7d98d23895ccc443bbdf57c7412c5a65996c30442ebe6ed3df335383"}, - {file = "wrapt-1.14.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:988635d122aaf2bdcef9e795435662bcd65b02f4f4c1ae37fbee7401c440b3a7"}, - {file = "wrapt-1.14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cca3c2cdadb362116235fdbd411735de4328c61425b0aa9f872fd76d02c4e86"}, - {file = "wrapt-1.14.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d52a25136894c63de15a35bc0bdc5adb4b0e173b9c0d07a2be9d3ca64a332735"}, - {file = "wrapt-1.14.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40e7bc81c9e2b2734ea4bc1aceb8a8f0ceaac7c5299bc5d69e37c44d9081d43b"}, - {file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b9b7a708dd92306328117d8c4b62e2194d00c365f18eff11a9b53c6f923b01e3"}, - {file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6a9a25751acb379b466ff6be78a315e2b439d4c94c1e99cb7266d40a537995d3"}, - {file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:34aa51c45f28ba7f12accd624225e2b1e5a3a45206aa191f6f9aac931d9d56fe"}, - {file = "wrapt-1.14.1-cp39-cp39-win32.whl", hash = "sha256:dee0ce50c6a2dd9056c20db781e9c1cfd33e77d2d569f5d1d9321c641bb903d5"}, - {file = "wrapt-1.14.1-cp39-cp39-win_amd64.whl", hash = "sha256:dee60e1de1898bde3b238f18340eec6148986da0455d8ba7848d50470a7a32fb"}, - {file = "wrapt-1.14.1.tar.gz", hash = "sha256:380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d"}, -] -zipp = [ - {file = "zipp-3.9.0-py3-none-any.whl", hash = "sha256:972cfa31bc2fedd3fa838a51e9bc7e64b7fb725a8c00e7431554311f180e9980"}, - {file = "zipp-3.9.0.tar.gz", hash = "sha256:3a7af91c3db40ec72dd9d154ae18e008c69efe8ca88dde4f9a731bb82fe2f9eb"}, -] diff --git a/src/pystatis/cube.py b/src/pystatis/cube.py index 6b73a1b..e46b998 100644 --- a/src/pystatis/cube.py +++ b/src/pystatis/cube.py @@ -103,7 +103,9 @@ def rename_axes( """Rename the generic axes of a cubefile with the names found in the metadata. Args: - cube (dict): A dictionary holding the cube data as returned by `parse_cube()`. rename_classifying_variables (bool, optional): If True, rename classifying variables. Defaults to True. + cube (dict): A dictionary holding the cube data as returned by `parse_cube()`. + rename_classifying_variables (bool, optional): If True, rename classifying variables. + Defaults to True. rename_time_variable (bool, optional): If True, rename the time variable. Defaults to True. Returns: From 55880773c71ea39c66a3d613c79ae2fc39c57431 Mon Sep 17 00:00:00 2001 From: MarcoHuebner <57489799+MarcoHuebner@users.noreply.github.com> Date: Sat, 20 May 2023 22:53:09 +0200 Subject: [PATCH 07/27] Updated ReadMe, added developer sphinx documentation, added custom pre-commit hook and changed to hard-coded version in docs, added built documentation to artifacts, #3 --- .github/workflows/run-tests.yaml | 47 ++++++++++++++++++-------------- .pre-commit-config.yaml | 7 +++++ README.md | 11 ++++++++ docs/source/conf.py | 4 +-- docs/source/contribute.rst | 33 ++++++++++++++++++++++ docs/source/index.rst | 1 + mypy.ini | 2 +- src/pystatis/cube.py | 3 +- tests/test_version.py | 5 ++++ 9 files changed, 87 insertions(+), 26 deletions(-) create mode 100644 docs/source/contribute.rst diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index 8610cde..aa71edc 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -42,13 +42,15 @@ jobs: run: | poetry run pytest --cov=pystatis tests code-quality: + runs-on: ${{ matrix.os }} + timeout-minutes: 10 strategy: fail-fast: false matrix: python-version: ["3.10"] poetry-version: [1.4.2] os: [ubuntu-latest] - runs-on: ${{ matrix.os }} + steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v2 @@ -80,25 +82,30 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.9", "3.10"] + python-version: ["3.10"] poetry-version: [1.4.2] - os: [ubuntu-latest, macOS-latest, windows-latest] + os: [ubuntu-latest] steps: - - uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v3 - with: - python-version: ${{ matrix.python-version }} - - name: Run poetry image - uses: abatilo/actions-poetry@v2.0.0 - with: - poetry-version: ${{ matrix.poetry-version }} - - name: Install dependencies - run: | - poetry install - - name: Build documentation - run: | - cd docs - poetry run make clean - poetry run make html + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + - name: Run poetry image + uses: abatilo/actions-poetry@v2.0.0 + with: + poetry-version: ${{ matrix.poetry-version }} + - name: Install dependencies + run: | + poetry install + - name: Build documentation + run: | + cd docs + poetry run make clean + poetry run make html + - name: Upload documentation as artifacts + uses: actions/upload-artifact@v3 + with: + name: docs + path: docs/build/html/* diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index eed79bb..9568b0f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -29,3 +29,10 @@ repos: files: ^\.github/workflows/ types: [yaml] args: ["--schemafile", "https://json.schemastore.org/github-workflow"] + - repo: https://github.com/thclark/pre-commit-sphinx + rev: 0.0.1 + hooks: + - id: build-docs + name: "Check if documentation compiles" + args: ['--cache-dir', 'docs/build/doctrees', '--html-dir', 'docs/build/html', '--source-dir', 'docs/source'] + language_version: python3 diff --git a/README.md b/README.md index 8b45820..96524c2 100644 --- a/README.md +++ b/README.md @@ -129,6 +129,16 @@ clear_cache("21311-0001") # only deletes the data for the object with the speci clear_cache() # deletes the complete cache ``` +### Full documentation + +The full documentation currently is not hosted online and has to be build locally. This can is achieved by running + +```bash +cd docs && make html +``` + +from the project root directory. Besides providing parsed docstrings of the individual package modules, the full documentation currently mirrors most of the readme, like installation and usage. More information on how to use sphinx is provided [here](https://docs.readthedocs.io/en/stable/intro/getting-started-with-sphinx.html). + ## License Distributed under the MIT License. See `LICENSE.txt` for more information. @@ -137,6 +147,7 @@ Distributed under the MIT License. See `LICENSE.txt` for more information. A few ideas we should implement in the maybe-near future: +- Host the documentation online, e.g. on [readthedocs](https://readthedocs.org/) - Improve Table parsing. Right now, the parsing is really simple and we should align the cube and table format so that the data frame for tables is more convenient to use. - Mechanism to download data that is newer than the cached version. Right now, once data is cached, it is always retrieved from cache no matter if there is a newer version online. However, this could be quite challenging as the GENESIS API is really bad in providing a good and consistent field for the last update datetime. - Improve Table and Cube metadata so the user can look up the variables contained in the dataset and for each variable the values that this variable can have. diff --git a/docs/source/conf.py b/docs/source/conf.py index 1b9274c..ef04b5d 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -6,8 +6,6 @@ # -- Project information ----------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information -import pystatis - project = "pystatis" copyright = "2022, Michael Aydinbas" authors = [ @@ -20,7 +18,7 @@ "Marco Hübner ", ] maintainers = ["Michael Aydinbas "] -release = pystatis.__version__ +release = "0.1.4" # hard-coded, since pre-commit hook fails to import pystatis version = release diff --git a/docs/source/contribute.rst b/docs/source/contribute.rst new file mode 100644 index 0000000..db3ae9e --- /dev/null +++ b/docs/source/contribute.rst @@ -0,0 +1,33 @@ +Developer Information +===================== + +How to contribute? +------------------ + +Contributions to this project are highly appreciated! You can either contact the maintainers +or directly create a pull request for your proposed changes: + +1. Fork the Project +2. Create your Feature Branch (``git checkout -b feature/``) +3. Commit your changes (``git commit -m 'Added NewFeature'``) +4. Push to remote (``git push origin feature/``) +5. Open a Pull Request to be merged with dev + +Developer information +--------------------- + +To contribute to this project, please follow these steps: + +1. Install `poetry `_. We recommend installing ``poetry`` via `pipx `_ which gives you a global ``poetry`` command in an isolated virtual environment. +2. Clone the repository via git. +3. Change into the project root directory. +4. Run ``poetry install`` to create the virtual environment within ``poetry``'s cache folder (run ``poetry env info`` to see the details of this new virtual environment). ``poetry`` has installed all dependencies for you, as well as the package itself. +5. Install pre-commit: ``poetry run pre-commit install``. This will activate the pre-commit hooks that will run prior every commit to ensure code quality. +6. Do your changes. +7. Run ``poetry run pytest`` to see if all existing tests still run through. It is important to use ``poetry run`` to call ``pytest`` so that ``poetry`` uses the created virtual environment and not the system's default Python interpreter. Alternatively, you can run ``poetry shell`` to let ``poetry`` activate the virtual environment for the current session. Afterwards, you can run ``pytest`` as usual without any prefix. You can leave the poetry shell with the ``exit`` command. +8. Add new tests depending on your changes. +9. Run ``poetry run pytest`` again to make sure your tests are also passed. +10. Commit and push your changes. +11. Create a PR. + +To learn more about ``poetry``, see `Dependency Management With Python Poetry `_ by realpython.com. diff --git a/docs/source/index.rst b/docs/source/index.rst index 5305e60..4f21b6e 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -27,6 +27,7 @@ To learn more about GENESIS refer to the official documentation `here Date: Sun, 22 Oct 2023 14:03:26 +0200 Subject: [PATCH 08/27] Add deployment workflow, needs Repo updates TODOs: - Create `gh-pages` branch - Add index.html and maybe .nojekyll - Add deploy SSH Key: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-create-ssh-deploy-key - setup GitHub Pages in the settings: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-first-deployment-with-github_token - After that, the documentation should automatically be hosted at http://correlaid.github.io/pystatis Detailed walkthrough: https://pages.github.com/ Addresses #10 --- .github/workflows/deploy_docs.yaml | 38 ++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 .github/workflows/deploy_docs.yaml diff --git a/.github/workflows/deploy_docs.yaml b/.github/workflows/deploy_docs.yaml new file mode 100644 index 0000000..f5d3bf6 --- /dev/null +++ b/.github/workflows/deploy_docs.yaml @@ -0,0 +1,38 @@ +name: Deploy docs + +on: + push: + branches: + - main + pull_request: + branches: + - main + workflow_dispatch: + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v3 + with: + python-version: 3.10 + - name: Run poetry image + uses: abatilo/actions-poetry@v2.0.0 + with: + poetry-version: 1.6.1 + - name: Install dependencies + run: | + poetry install + - name: Build docs + run: | + cd docs + make html + - name: Deploy docs + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./docs/build/html + publish_branch: gh-pages # gh-pages is default, but can be changed From 45c938e21ecb07539d557ce2ce8752f9ca20f1f6 Mon Sep 17 00:00:00 2001 From: MarcoHuebner Date: Sun, 29 Oct 2023 01:31:49 +0200 Subject: [PATCH 09/27] Update depencies for Sphinx documentation #10 --- poetry.lock | 669 ++++++++++++++++++++++++++++++++++++------------- pyproject.toml | 4 + 2 files changed, 502 insertions(+), 171 deletions(-) diff --git a/poetry.lock b/poetry.lock index 9ab5195..c2d5e58 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,9 +1,22 @@ -# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.4.2 and should not be changed by hand. + +[[package]] +name = "alabaster" +version = "0.7.13" +description = "A configurable sidebar-enabled Sphinx theme" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, + {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, +] [[package]] name = "anyio" version = "4.0.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -25,6 +38,7 @@ trio = ["trio (>=0.22)"] name = "appnope" version = "0.1.3" description = "Disable App Nap on macOS >= 10.9" +category = "dev" optional = false python-versions = "*" files = [ @@ -36,6 +50,7 @@ files = [ name = "argon2-cffi" version = "23.1.0" description = "Argon2 for Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -56,6 +71,7 @@ typing = ["mypy"] name = "argon2-cffi-bindings" version = "21.2.0" description = "Low-level CFFI bindings for Argon2" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -93,6 +109,7 @@ tests = ["pytest"] name = "arrow" version = "1.3.0" description = "Better dates & times for Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -106,12 +123,13 @@ types-python-dateutil = ">=2.8.10" [package.extras] doc = ["doc8", "sphinx (>=7.0.0)", "sphinx-autobuild", "sphinx-autodoc-typehints", "sphinx_rtd_theme (>=1.3.0)"] -test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (==3.*)"] +test = ["dateparser (>=1.0.0,<2.0.0)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (>=3.0.0,<4.0.0)"] [[package]] name = "astroid" version = "3.0.1" description = "An abstract syntax tree for Python with inference support." +category = "dev" optional = false python-versions = ">=3.8.0" files = [ @@ -124,25 +142,28 @@ typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} [[package]] name = "asttokens" -version = "2.4.0" +version = "2.4.1" description = "Annotate AST trees with source code positions" +category = "dev" optional = false python-versions = "*" files = [ - {file = "asttokens-2.4.0-py2.py3-none-any.whl", hash = "sha256:cf8fc9e61a86461aa9fb161a14a0841a03c405fa829ac6b202670b3495d2ce69"}, - {file = "asttokens-2.4.0.tar.gz", hash = "sha256:2e0171b991b2c959acc6c49318049236844a5da1d65ba2672c4880c1c894834e"}, + {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] -test = ["astroid", "pytest"] +astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] +test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] [[package]] name = "async-lru" version = "2.0.4" description = "Simple LRU cache for asyncio" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -157,6 +178,7 @@ typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} name = "attrs" version = "23.1.0" description = "Classes Without Boilerplate" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -175,6 +197,7 @@ tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pyte name = "babel" version = "2.13.1" description = "Internationalization utilities" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -192,6 +215,7 @@ dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] name = "backcall" version = "0.2.0" description = "Specifications for callback functions passed in to an API" +category = "dev" optional = false python-versions = "*" files = [ @@ -203,6 +227,7 @@ files = [ name = "bandit" version = "1.7.5" description = "Security oriented static analyser for python code." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -226,6 +251,7 @@ yaml = ["PyYAML"] name = "beautifulsoup4" version = "4.12.2" description = "Screen-scraping library" +category = "dev" optional = false python-versions = ">=3.6.0" files = [ @@ -244,6 +270,7 @@ lxml = ["lxml"] name = "black" version = "23.10.1" description = "The uncompromising code formatter." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -286,6 +313,7 @@ uvloop = ["uvloop (>=0.15.2)"] name = "bleach" version = "6.1.0" description = "An easy safelist-based HTML-sanitizing tool." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -304,6 +332,7 @@ css = ["tinycss2 (>=1.1.0,<1.3)"] name = "certifi" version = "2023.7.22" description = "Python package for providing Mozilla's CA Bundle." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -315,6 +344,7 @@ files = [ name = "cffi" version = "1.16.0" description = "Foreign Function Interface for Python calling C code." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -379,6 +409,7 @@ pycparser = "*" name = "cfgv" version = "3.4.0" description = "Validate configuration and produce human readable error messages." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -390,6 +421,7 @@ files = [ name = "charset-normalizer" version = "3.3.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -489,6 +521,7 @@ files = [ name = "click" version = "8.1.7" description = "Composable command line interface toolkit" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -503,6 +536,7 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -514,6 +548,7 @@ files = [ name = "comm" version = "0.1.4" description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -533,6 +568,7 @@ typing = ["mypy (>=0.990)"] name = "coverage" version = "7.3.2" description = "Code coverage measurement for Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -600,6 +636,7 @@ toml = ["tomli"] name = "debugpy" version = "1.8.0" description = "An implementation of the Debug Adapter Protocol for Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -627,6 +664,7 @@ files = [ name = "decorator" version = "5.1.1" description = "Decorators for Humans" +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -638,6 +676,7 @@ files = [ name = "defusedxml" version = "0.7.1" description = "XML bomb protection for Python stdlib modules" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -649,6 +688,7 @@ files = [ name = "dill" version = "0.3.7" description = "serialize all of Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -663,6 +703,7 @@ graph = ["objgraph (>=1.7.2)"] name = "distlib" version = "0.3.7" description = "Distribution utilities" +category = "dev" optional = false python-versions = "*" files = [ @@ -670,10 +711,23 @@ files = [ {file = "distlib-0.3.7.tar.gz", hash = "sha256:9dafe54b34a028eafd95039d5e5d4851a13734540f1331060d31c9916e7147a8"}, ] +[[package]] +name = "docutils" +version = "0.18.1" +description = "Docutils -- Python Documentation Utilities" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "docutils-0.18.1-py2.py3-none-any.whl", hash = "sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c"}, + {file = "docutils-0.18.1.tar.gz", hash = "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"}, +] + [[package]] name = "dparse" version = "0.6.3" description = "A parser for Python dependency files" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -693,6 +747,7 @@ pipenv = ["pipenv (<=2022.12.19)"] name = "exceptiongroup" version = "1.1.3" description = "Backport of PEP 654 (exception groups)" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -707,6 +762,7 @@ test = ["pytest (>=6)"] name = "executing" version = "2.0.0" description = "Get the currently executing AST node of a frame, and other information" +category = "dev" optional = false python-versions = "*" files = [ @@ -721,6 +777,7 @@ tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipyth name = "fastjsonschema" version = "2.18.1" description = "Fastest Python implementation of JSON schema" +category = "dev" optional = false python-versions = "*" files = [ @@ -733,24 +790,26 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc [[package]] name = "filelock" -version = "3.12.4" +version = "3.13.0" description = "A platform independent file lock." +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "filelock-3.12.4-py3-none-any.whl", hash = "sha256:08c21d87ded6e2b9da6728c3dff51baf1dcecf973b768ef35bcbc3447edb9ad4"}, - {file = "filelock-3.12.4.tar.gz", hash = "sha256:2e6f249f1f3654291606e046b09f1fd5eac39b360664c27f5aad072012f8bcbd"}, + {file = "filelock-3.13.0-py3-none-any.whl", hash = "sha256:a552f4fde758f4eab33191e9548f671970f8b06d436d31388c9aa1e5861a710f"}, + {file = "filelock-3.13.0.tar.gz", hash = "sha256:63c6052c82a1a24c873a549fbd39a26982e8f35a3016da231ead11a5be9dad44"}, ] [package.extras] -docs = ["furo (>=2023.7.26)", "sphinx (>=7.1.2)", "sphinx-autodoc-typehints (>=1.24)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.3)", "diff-cover (>=7.7)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-timeout (>=2.1)"] -typing = ["typing-extensions (>=4.7.1)"] +docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.24)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] +typing = ["typing-extensions (>=4.8)"] [[package]] name = "flake8" version = "3.9.2" description = "the modular source code checker: pep8 pyflakes and co" +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -767,6 +826,7 @@ pyflakes = ">=2.3.0,<2.4.0" name = "flake8-docstrings" version = "1.7.0" description = "Extension for flake8 which uses pydocstyle to check docstrings" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -782,6 +842,7 @@ pydocstyle = ">=2.1" name = "fqdn" version = "1.5.1" description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" +category = "dev" optional = false python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" files = [ @@ -793,6 +854,7 @@ files = [ name = "gitdb" version = "4.0.11" description = "Git Object Database" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -807,6 +869,7 @@ smmap = ">=3.0.1,<6" name = "gitpython" version = "3.1.40" description = "GitPython is a Python library used to interact with Git repositories" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -820,89 +883,16 @@ 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 = "greenlet" -version = "2.0.2" -description = "Lightweight in-process concurrent programming" -category = "dev" -optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" -files = [ - {file = "greenlet-2.0.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:bdfea8c661e80d3c1c99ad7c3ff74e6e87184895bbaca6ee8cc61209f8b9b85d"}, - {file = "greenlet-2.0.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:9d14b83fab60d5e8abe587d51c75b252bcc21683f24699ada8fb275d7712f5a9"}, - {file = "greenlet-2.0.2-cp27-cp27m-win32.whl", hash = "sha256:6c3acb79b0bfd4fe733dff8bc62695283b57949ebcca05ae5c129eb606ff2d74"}, - {file = "greenlet-2.0.2-cp27-cp27m-win_amd64.whl", hash = "sha256:283737e0da3f08bd637b5ad058507e578dd462db259f7f6e4c5c365ba4ee9343"}, - {file = "greenlet-2.0.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:d27ec7509b9c18b6d73f2f5ede2622441de812e7b1a80bbd446cb0633bd3d5ae"}, - {file = "greenlet-2.0.2-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:30bcf80dda7f15ac77ba5af2b961bdd9dbc77fd4ac6105cee85b0d0a5fcf74df"}, - {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26fbfce90728d82bc9e6c38ea4d038cba20b7faf8a0ca53a9c07b67318d46088"}, - {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9190f09060ea4debddd24665d6804b995a9c122ef5917ab26e1566dcc712ceeb"}, - {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d75209eed723105f9596807495d58d10b3470fa6732dd6756595e89925ce2470"}, - {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3a51c9751078733d88e013587b108f1b7a1fb106d402fb390740f002b6f6551a"}, - {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:76ae285c8104046b3a7f06b42f29c7b73f77683df18c49ab5af7983994c2dd91"}, - {file = "greenlet-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:2d4686f195e32d36b4d7cf2d166857dbd0ee9f3d20ae349b6bf8afc8485b3645"}, - {file = "greenlet-2.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c4302695ad8027363e96311df24ee28978162cdcdd2006476c43970b384a244c"}, - {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c48f54ef8e05f04d6eff74b8233f6063cb1ed960243eacc474ee73a2ea8573ca"}, - {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a1846f1b999e78e13837c93c778dcfc3365902cfb8d1bdb7dd73ead37059f0d0"}, - {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a06ad5312349fec0ab944664b01d26f8d1f05009566339ac6f63f56589bc1a2"}, - {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:eff4eb9b7eb3e4d0cae3d28c283dc16d9bed6b193c2e1ace3ed86ce48ea8df19"}, - {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5454276c07d27a740c5892f4907c86327b632127dd9abec42ee62e12427ff7e3"}, - {file = "greenlet-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:7cafd1208fdbe93b67c7086876f061f660cfddc44f404279c1585bbf3cdc64c5"}, - {file = "greenlet-2.0.2-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:910841381caba4f744a44bf81bfd573c94e10b3045ee00de0cbf436fe50673a6"}, - {file = "greenlet-2.0.2-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:18a7f18b82b52ee85322d7a7874e676f34ab319b9f8cce5de06067384aa8ff43"}, - {file = "greenlet-2.0.2-cp35-cp35m-win32.whl", hash = "sha256:03a8f4f3430c3b3ff8d10a2a86028c660355ab637cee9333d63d66b56f09d52a"}, - {file = "greenlet-2.0.2-cp35-cp35m-win_amd64.whl", hash = "sha256:4b58adb399c4d61d912c4c331984d60eb66565175cdf4a34792cd9600f21b394"}, - {file = "greenlet-2.0.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:703f18f3fda276b9a916f0934d2fb6d989bf0b4fb5a64825260eb9bfd52d78f0"}, - {file = "greenlet-2.0.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:32e5b64b148966d9cccc2c8d35a671409e45f195864560829f395a54226408d3"}, - {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dd11f291565a81d71dab10b7033395b7a3a5456e637cf997a6f33ebdf06f8db"}, - {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0f72c9ddb8cd28532185f54cc1453f2c16fb417a08b53a855c4e6a418edd099"}, - {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd021c754b162c0fb55ad5d6b9d960db667faad0fa2ff25bb6e1301b0b6e6a75"}, - {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:3c9b12575734155d0c09d6c3e10dbd81665d5c18e1a7c6597df72fd05990c8cf"}, - {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b9ec052b06a0524f0e35bd8790686a1da006bd911dd1ef7d50b77bfbad74e292"}, - {file = "greenlet-2.0.2-cp36-cp36m-win32.whl", hash = "sha256:dbfcfc0218093a19c252ca8eb9aee3d29cfdcb586df21049b9d777fd32c14fd9"}, - {file = "greenlet-2.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:9f35ec95538f50292f6d8f2c9c9f8a3c6540bbfec21c9e5b4b751e0a7c20864f"}, - {file = "greenlet-2.0.2-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:d5508f0b173e6aa47273bdc0a0b5ba055b59662ba7c7ee5119528f466585526b"}, - {file = "greenlet-2.0.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:f82d4d717d8ef19188687aa32b8363e96062911e63ba22a0cff7802a8e58e5f1"}, - {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9c59a2120b55788e800d82dfa99b9e156ff8f2227f07c5e3012a45a399620b7"}, - {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2780572ec463d44c1d3ae850239508dbeb9fed38e294c68d19a24d925d9223ca"}, - {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:937e9020b514ceedb9c830c55d5c9872abc90f4b5862f89c0887033ae33c6f73"}, - {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:36abbf031e1c0f79dd5d596bfaf8e921c41df2bdf54ee1eed921ce1f52999a86"}, - {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:18e98fb3de7dba1c0a852731c3070cf022d14f0d68b4c87a19cc1016f3bb8b33"}, - {file = "greenlet-2.0.2-cp37-cp37m-win32.whl", hash = "sha256:3f6ea9bd35eb450837a3d80e77b517ea5bc56b4647f5502cd28de13675ee12f7"}, - {file = "greenlet-2.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:7492e2b7bd7c9b9916388d9df23fa49d9b88ac0640db0a5b4ecc2b653bf451e3"}, - {file = "greenlet-2.0.2-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:b864ba53912b6c3ab6bcb2beb19f19edd01a6bfcbdfe1f37ddd1778abfe75a30"}, - {file = "greenlet-2.0.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:ba2956617f1c42598a308a84c6cf021a90ff3862eddafd20c3333d50f0edb45b"}, - {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc3a569657468b6f3fb60587e48356fe512c1754ca05a564f11366ac9e306526"}, - {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8eab883b3b2a38cc1e050819ef06a7e6344d4a990d24d45bc6f2cf959045a45b"}, - {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acd2162a36d3de67ee896c43effcd5ee3de247eb00354db411feb025aa319857"}, - {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0bf60faf0bc2468089bdc5edd10555bab6e85152191df713e2ab1fcc86382b5a"}, - {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b0ef99cdbe2b682b9ccbb964743a6aca37905fda5e0452e5ee239b1654d37f2a"}, - {file = "greenlet-2.0.2-cp38-cp38-win32.whl", hash = "sha256:b80f600eddddce72320dbbc8e3784d16bd3fb7b517e82476d8da921f27d4b249"}, - {file = "greenlet-2.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:4d2e11331fc0c02b6e84b0d28ece3a36e0548ee1a1ce9ddde03752d9b79bba40"}, - {file = "greenlet-2.0.2-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:88d9ab96491d38a5ab7c56dd7a3cc37d83336ecc564e4e8816dbed12e5aaefc8"}, - {file = "greenlet-2.0.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:561091a7be172ab497a3527602d467e2b3fbe75f9e783d8b8ce403fa414f71a6"}, - {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:971ce5e14dc5e73715755d0ca2975ac88cfdaefcaab078a284fea6cfabf866df"}, - {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be4ed120b52ae4d974aa40215fcdfde9194d63541c7ded40ee12eb4dda57b76b"}, - {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94c817e84245513926588caf1152e3b559ff794d505555211ca041f032abbb6b"}, - {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1a819eef4b0e0b96bb0d98d797bef17dc1b4a10e8d7446be32d1da33e095dbb8"}, - {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7efde645ca1cc441d6dc4b48c0f7101e8d86b54c8530141b09fd31cef5149ec9"}, - {file = "greenlet-2.0.2-cp39-cp39-win32.whl", hash = "sha256:ea9872c80c132f4663822dd2a08d404073a5a9b5ba6155bea72fb2a79d1093b5"}, - {file = "greenlet-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:db1a39669102a1d8d12b57de2bb7e2ec9066a6f2b3da35ae511ff93b01b5d564"}, - {file = "greenlet-2.0.2.tar.gz", hash = "sha256:e7c8dc13af7db097bed64a051d2dd49e9f0af495c26995c00a9ee842690d34c0"}, -] - -[package.extras] -docs = ["Sphinx", "docutils (<0.18)"] -test = ["objgraph", "psutil"] - [[package]] name = "identify" -version = "2.5.30" +version = "2.5.31" description = "File identification library for Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "identify-2.5.30-py2.py3-none-any.whl", hash = "sha256:afe67f26ae29bab007ec21b03d4114f41316ab9dd15aa8736a167481e108da54"}, - {file = "identify-2.5.30.tar.gz", hash = "sha256:f302a4256a15c849b91cfcdcec052a8ce914634b2f77ae87dad29cd749f2d88d"}, + {file = "identify-2.5.31-py2.py3-none-any.whl", hash = "sha256:90199cb9e7bd3c5407a9b7e81b4abec4bb9d249991c79439ec8af740afc6293d"}, + {file = "identify-2.5.31.tar.gz", hash = "sha256:7736b3c7a28233637e3c36550646fc6389bedd74ae84cb788200cc8e2dd60b75"}, ] [package.extras] @@ -912,6 +902,7 @@ license = ["ukkonen"] name = "idna" version = "3.4" description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -919,10 +910,23 @@ files = [ {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, ] +[[package]] +name = "imagesize" +version = "1.4.1" +description = "Getting image size from png/jpeg/jpeg2000/gif file" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, + {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, +] + [[package]] name = "importlib-metadata" version = "6.8.0" description = "Read metadata from Python packages" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -942,6 +946,7 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -953,6 +958,7 @@ files = [ name = "ipykernel" version = "6.26.0" description = "IPython Kernel for Jupyter" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -966,7 +972,7 @@ comm = ">=0.1.1" debugpy = ">=1.6.5" ipython = ">=7.23.1" jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" matplotlib-inline = ">=0.1" nest-asyncio = "*" packaging = "*" @@ -986,6 +992,7 @@ test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio" name = "ipython" version = "8.16.1" description = "IPython: Productive Interactive Computing" +category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -1026,6 +1033,7 @@ test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pa name = "ipython-genutils" version = "0.2.0" description = "Vestigial utilities from IPython" +category = "dev" optional = false python-versions = "*" files = [ @@ -1037,6 +1045,7 @@ files = [ name = "ipywidgets" version = "8.1.1" description = "Jupyter interactive widgets" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1058,6 +1067,7 @@ test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] name = "isoduration" version = "20.11.0" description = "Operations with ISO 8601 durations" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1072,6 +1082,7 @@ arrow = ">=0.15.0" name = "isort" version = "5.12.0" description = "A Python utility / library to sort Python imports." +category = "dev" optional = false python-versions = ">=3.8.0" files = [ @@ -1089,6 +1100,7 @@ requirements-deprecated-finder = ["pip-api", "pipreqs"] name = "jedi" version = "0.19.1" description = "An autocompletion tool for Python that can be used for text editors." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1108,6 +1120,7 @@ testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] name = "jinja2" version = "3.1.2" description = "A very fast and expressive template engine." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1125,6 +1138,7 @@ i18n = ["Babel (>=2.7)"] name = "json5" version = "0.9.14" description = "A Python implementation of the JSON5 data format." +category = "dev" optional = false python-versions = "*" files = [ @@ -1139,6 +1153,7 @@ dev = ["hypothesis"] name = "jsonpointer" version = "2.4" description = "Identify specific nodes in a JSON document (RFC 6901)" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" files = [ @@ -1150,6 +1165,7 @@ files = [ name = "jsonschema" version = "4.19.1" description = "An implementation of JSON Schema validation for Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1179,6 +1195,7 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- name = "jsonschema-specifications" version = "2023.7.1" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1193,6 +1210,7 @@ referencing = ">=0.28.0" name = "jupyter" version = "1.0.0" description = "Jupyter metapackage. Install all the Jupyter components in one go." +category = "dev" optional = false python-versions = "*" files = [ @@ -1209,38 +1227,11 @@ nbconvert = "*" notebook = "*" qtconsole = "*" -[[package]] -name = "jupyter-cache" -version = "0.6.1" -description = "A defined interface for working with a cache of jupyter notebooks." -category = "dev" -optional = false -python-versions = "~=3.8" -files = [ - {file = "jupyter-cache-0.6.1.tar.gz", hash = "sha256:26f83901143edf4af2f3ff5a91e2d2ad298e46e2cee03c8071d37a23a63ccbfc"}, - {file = "jupyter_cache-0.6.1-py3-none-any.whl", hash = "sha256:2fce7d4975805c77f75bdfc1bc2e82bc538b8e5b1af27f2f5e06d55b9f996a82"}, -] - -[package.dependencies] -attrs = "*" -click = "*" -importlib-metadata = "*" -nbclient = ">=0.2,<0.8" -nbformat = "*" -pyyaml = "*" -sqlalchemy = ">=1.3.12,<3" -tabulate = "*" - -[package.extras] -cli = ["click-log"] -code-style = ["pre-commit (>=2.12,<4.0)"] -rtd = ["ipykernel", "jupytext", "myst-nb", "nbdime", "sphinx-book-theme", "sphinx-copybutton"] -testing = ["coverage", "ipykernel", "jupytext", "matplotlib", "nbdime", "nbformat (>=5.1)", "numpy", "pandas", "pytest (>=6,<8)", "pytest-cov", "pytest-regressions", "sympy"] - [[package]] name = "jupyter-client" version = "8.5.0" description = "Jupyter protocol implementation and client libraries" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1250,7 +1241,7 @@ files = [ [package.dependencies] importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" python-dateutil = ">=2.8.2" pyzmq = ">=23.0" tornado = ">=6.2" @@ -1264,6 +1255,7 @@ test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pyt name = "jupyter-console" version = "6.6.3" description = "Jupyter terminal console" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1275,7 +1267,7 @@ files = [ ipykernel = ">=6.14" ipython = "*" jupyter-client = ">=7.0.0" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" prompt-toolkit = ">=3.0.30" pygments = "*" pyzmq = ">=17" @@ -1288,6 +1280,7 @@ test = ["flaky", "pexpect", "pytest"] name = "jupyter-core" version = "5.4.0" description = "Jupyter core package. A base package on which Jupyter projects rely." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1308,6 +1301,7 @@ test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] name = "jupyter-events" version = "0.8.0" description = "Jupyter Event System library" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1333,6 +1327,7 @@ test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "p name = "jupyter-lsp" version = "2.2.0" description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1346,13 +1341,14 @@ jupyter-server = ">=1.1.2" [[package]] name = "jupyter-server" -version = "2.9.0" +version = "2.9.1" description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_server-2.9.0-py3-none-any.whl", hash = "sha256:c02501c5028af95242558c39ac986420be55b92ad69c2f94709a26ee521d87aa"}, - {file = "jupyter_server-2.9.0.tar.gz", hash = "sha256:06a334ffba7797e84c9e0e26c510b78bb8cc9051485ecab7f4e3c0963b8fc714"}, + {file = "jupyter_server-2.9.1-py3-none-any.whl", hash = "sha256:21ad1a3d455d5a79ce4bef5201925cd17510c17898cf9d54e3ccfb6b12734948"}, + {file = "jupyter_server-2.9.1.tar.gz", hash = "sha256:9ba71be4b9c16e479e4c50c929f8ac4b1015baf90237a08681397a98c76c7e5e"}, ] [package.dependencies] @@ -1360,7 +1356,7 @@ anyio = ">=3.1.0" argon2-cffi = "*" jinja2 = "*" jupyter-client = ">=7.4.4" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" jupyter-events = ">=0.6.0" jupyter-server-terminals = "*" nbconvert = ">=6.4.4" @@ -1384,6 +1380,7 @@ test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-sc name = "jupyter-server-terminals" version = "0.4.4" description = "A Jupyter Server Extension Providing Terminals." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1403,6 +1400,7 @@ test = ["coverage", "jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-cov", name = "jupyterlab" version = "4.0.7" description = "JupyterLab computational environment" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1435,6 +1433,7 @@ test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-cons name = "jupyterlab-pygments" version = "0.2.2" description = "Pygments theme using JupyterLab CSS variables" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1446,6 +1445,7 @@ files = [ name = "jupyterlab-server" version = "2.25.0" description = "A set of server components for JupyterLab and JupyterLab like applications." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1472,6 +1472,7 @@ test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-v name = "jupyterlab-widgets" version = "3.0.9" description = "Jupyter interactive widgets for JupyterLab" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1483,6 +1484,7 @@ files = [ name = "markdown-it-py" version = "3.0.0" description = "Python port of markdown-it. Markdown parsing, done right!" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1507,6 +1509,7 @@ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] name = "markupsafe" version = "2.1.3" description = "Safely add untrusted strings to HTML/XML markup." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1530,16 +1533,6 @@ files = [ {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-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, {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"}, @@ -1576,6 +1569,7 @@ files = [ name = "matplotlib-inline" version = "0.1.6" description = "Inline Matplotlib backend for Jupyter" +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -1590,6 +1584,7 @@ traitlets = "*" name = "mccabe" version = "0.6.1" description = "McCabe checker, plugin for flake8" +category = "dev" optional = false python-versions = "*" files = [ @@ -1597,10 +1592,31 @@ files = [ {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, ] +[[package]] +name = "mdit-py-plugins" +version = "0.4.0" +description = "Collection of plugins for markdown-it-py" +category = "dev" +optional = false +python-versions = ">=3.8" +files = [ + {file = "mdit_py_plugins-0.4.0-py3-none-any.whl", hash = "sha256:b51b3bb70691f57f974e257e367107857a93b36f322a9e6d44ca5bf28ec2def9"}, + {file = "mdit_py_plugins-0.4.0.tar.gz", hash = "sha256:d8ab27e9aed6c38aa716819fedfde15ca275715955f8a185a8e1cf90fb1d2c1b"}, +] + +[package.dependencies] +markdown-it-py = ">=1.0.0,<4.0.0" + +[package.extras] +code-style = ["pre-commit"] +rtd = ["myst-parser", "sphinx-book-theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + [[package]] name = "mdurl" version = "0.1.2" description = "Markdown URL utilities" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1610,19 +1626,21 @@ files = [ [[package]] name = "mistune" -version = "3.0.2" -description = "A sane and fast Markdown parser with useful plugins and renderers" +version = "2.0.5" +description = "A sane Markdown parser with useful plugins and renderers" +category = "dev" optional = false -python-versions = ">=3.7" +python-versions = "*" files = [ - {file = "mistune-3.0.2-py3-none-any.whl", hash = "sha256:71481854c30fdbc938963d3605b72501f5c10a9320ecd412c121c163a1c7d205"}, - {file = "mistune-3.0.2.tar.gz", hash = "sha256:fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8"}, + {file = "mistune-2.0.5-py2.py3-none-any.whl", hash = "sha256:bad7f5d431886fcbaf5f758118ecff70d31f75231b34024a1341120340a65ce8"}, + {file = "mistune-2.0.5.tar.gz", hash = "sha256:0246113cb2492db875c6be56974a7c893333bf26cd92891c85f63151cee09d34"}, ] [[package]] name = "mypy" version = "1.6.1" description = "Optional static typing for Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1669,6 +1687,7 @@ reports = ["lxml"] name = "mypy-extensions" version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -1676,10 +1695,38 @@ files = [ {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, ] +[[package]] +name = "myst-parser" +version = "2.0.0" +description = "An extended [CommonMark](https://spec.commonmark.org/) compliant parser," +category = "dev" +optional = false +python-versions = ">=3.8" +files = [ + {file = "myst_parser-2.0.0-py3-none-any.whl", hash = "sha256:7c36344ae39c8e740dad7fdabf5aa6fc4897a813083c6cc9990044eb93656b14"}, + {file = "myst_parser-2.0.0.tar.gz", hash = "sha256:ea929a67a6a0b1683cdbe19b8d2e724cd7643f8aa3e7bb18dd65beac3483bead"}, +] + +[package.dependencies] +docutils = ">=0.16,<0.21" +jinja2 = "*" +markdown-it-py = ">=3.0,<4.0" +mdit-py-plugins = ">=0.4,<1.0" +pyyaml = "*" +sphinx = ">=6,<8" + +[package.extras] +code-style = ["pre-commit (>=3.0,<4.0)"] +linkify = ["linkify-it-py (>=2.0,<3.0)"] +rtd = ["ipython", "pydata-sphinx-theme (==v0.13.0rc4)", "sphinx-autodoc2 (>=0.4.2,<0.5.0)", "sphinx-book-theme (==1.0.0rc2)", "sphinx-copybutton", "sphinx-design2", "sphinx-pyscript", "sphinx-tippy (>=0.3.1)", "sphinx-togglebutton", "sphinxext-opengraph (>=0.8.2,<0.9.0)", "sphinxext-rediraffe (>=0.2.7,<0.3.0)"] +testing = ["beautifulsoup4", "coverage[toml]", "pytest (>=7,<8)", "pytest-cov", "pytest-param-files (>=0.3.4,<0.4.0)", "pytest-regressions", "sphinx-pytest"] +testing-docutils = ["pygments", "pytest (>=7,<8)", "pytest-param-files (>=0.3.4,<0.4.0)"] + [[package]] name = "nbclient" version = "0.8.0" description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." +category = "dev" optional = false python-versions = ">=3.8.0" files = [ @@ -1689,7 +1736,7 @@ files = [ [package.dependencies] jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" nbformat = ">=5.1" traitlets = ">=5.4" @@ -1702,6 +1749,7 @@ test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>= name = "nbconvert" version = "7.9.2" description = "Converting Jupyter Notebooks" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1740,6 +1788,7 @@ webpdf = ["playwright"] name = "nbformat" version = "5.9.2" description = "The Jupyter Notebook format" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1761,6 +1810,7 @@ test = ["pep440", "pre-commit", "pytest", "testpath"] name = "nest-asyncio" version = "1.5.8" description = "Patch asyncio to allow nested event loops" +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -1772,6 +1822,7 @@ files = [ name = "nodeenv" version = "1.8.0" description = "Node.js virtual environment builder" +category = "dev" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" files = [ @@ -1786,6 +1837,7 @@ setuptools = "*" name = "notebook" version = "7.0.6" description = "Jupyter Notebook - A web-based notebook environment for interactive computing" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1809,6 +1861,7 @@ test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4 name = "notebook-shim" version = "0.2.3" description = "A shim layer for notebook traits and config" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1826,6 +1879,7 @@ test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync" name = "numpy" version = "1.25.2" description = "Fundamental package for array computing in Python" +category = "main" optional = false python-versions = ">=3.9" files = [ @@ -1860,6 +1914,7 @@ files = [ name = "numpy" version = "1.26.1" description = "Fundamental package for array computing in Python" +category = "main" optional = false python-versions = "<3.13,>=3.9" files = [ @@ -1901,6 +1956,7 @@ files = [ name = "overrides" version = "7.4.0" description = "A decorator to automatically detect mismatch when overriding a method." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1912,6 +1968,7 @@ files = [ name = "packaging" version = "23.2" description = "Core utilities for Python packages" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1923,6 +1980,7 @@ files = [ name = "pandas" version = "2.1.0" description = "Powerful data structures for data analysis, time series, and statistics" +category = "main" optional = false python-versions = ">=3.9" files = [ @@ -1979,42 +2037,43 @@ xml = ["lxml (>=4.8.0)"] [[package]] name = "pandas" -version = "2.1.1" +version = "2.1.2" description = "Powerful data structures for data analysis, time series, and statistics" +category = "main" optional = false python-versions = ">=3.9" files = [ - {file = "pandas-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:58d997dbee0d4b64f3cb881a24f918b5f25dd64ddf31f467bb9b67ae4c63a1e4"}, - {file = "pandas-2.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02304e11582c5d090e5a52aec726f31fe3f42895d6bfc1f28738f9b64b6f0614"}, - {file = "pandas-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffa8f0966de2c22de408d0e322db2faed6f6e74265aa0856f3824813cf124363"}, - {file = "pandas-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1f84c144dee086fe4f04a472b5cd51e680f061adf75c1ae4fc3a9275560f8f4"}, - {file = "pandas-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:75ce97667d06d69396d72be074f0556698c7f662029322027c226fd7a26965cb"}, - {file = "pandas-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:4c3f32fd7c4dccd035f71734df39231ac1a6ff95e8bdab8d891167197b7018d2"}, - {file = "pandas-2.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9e2959720b70e106bb1d8b6eadd8ecd7c8e99ccdbe03ee03260877184bb2877d"}, - {file = "pandas-2.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:25e8474a8eb258e391e30c288eecec565bfed3e026f312b0cbd709a63906b6f8"}, - {file = "pandas-2.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b8bd1685556f3374520466998929bade3076aeae77c3e67ada5ed2b90b4de7f0"}, - {file = "pandas-2.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc3657869c7902810f32bd072f0740487f9e030c1a3ab03e0af093db35a9d14e"}, - {file = "pandas-2.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:05674536bd477af36aa2effd4ec8f71b92234ce0cc174de34fd21e2ee99adbc2"}, - {file = "pandas-2.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:b407381258a667df49d58a1b637be33e514b07f9285feb27769cedb3ab3d0b3a"}, - {file = "pandas-2.1.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c747793c4e9dcece7bb20156179529898abf505fe32cb40c4052107a3c620b49"}, - {file = "pandas-2.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3bcad1e6fb34b727b016775bea407311f7721db87e5b409e6542f4546a4951ea"}, - {file = "pandas-2.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5ec7740f9ccb90aec64edd71434711f58ee0ea7f5ed4ac48be11cfa9abf7317"}, - {file = "pandas-2.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:29deb61de5a8a93bdd033df328441a79fcf8dd3c12d5ed0b41a395eef9cd76f0"}, - {file = "pandas-2.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4f99bebf19b7e03cf80a4e770a3e65eee9dd4e2679039f542d7c1ace7b7b1daa"}, - {file = "pandas-2.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:84e7e910096416adec68075dc87b986ff202920fb8704e6d9c8c9897fe7332d6"}, - {file = "pandas-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:366da7b0e540d1b908886d4feb3d951f2f1e572e655c1160f5fde28ad4abb750"}, - {file = "pandas-2.1.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9e50e72b667415a816ac27dfcfe686dc5a0b02202e06196b943d54c4f9c7693e"}, - {file = "pandas-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc1ab6a25da197f03ebe6d8fa17273126120874386b4ac11c1d687df288542dd"}, - {file = "pandas-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0dbfea0dd3901ad4ce2306575c54348d98499c95be01b8d885a2737fe4d7a98"}, - {file = "pandas-2.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0489b0e6aa3d907e909aef92975edae89b1ee1654db5eafb9be633b0124abe97"}, - {file = "pandas-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:4cdb0fab0400c2cb46dafcf1a0fe084c8bb2480a1fa8d81e19d15e12e6d4ded2"}, - {file = "pandas-2.1.1.tar.gz", hash = "sha256:fecb198dc389429be557cde50a2d46da8434a17fe37d7d41ff102e3987fd947b"}, + {file = "pandas-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:24057459f19db9ebb02984c6fdd164a970b31a95f38e4a49cf7615b36a1b532c"}, + {file = "pandas-2.1.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a6cf8fcc8a63d333970b950a7331a30544cf59b1a97baf0a7409e09eafc1ac38"}, + {file = "pandas-2.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ae6ffbd9d614c20d028c7117ee911fc4e266b4dca2065d5c5909e401f8ff683"}, + {file = "pandas-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eff794eeb7883c5aefb1ed572e7ff533ae779f6c6277849eab9e77986e352688"}, + {file = "pandas-2.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:02954e285e8e2f4006b6f22be6f0df1f1c3c97adbb7ed211c6b483426f20d5c8"}, + {file = "pandas-2.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:5b40c9f494e1f27588c369b9e4a6ca19cd924b3a0e1ef9ef1a8e30a07a438f43"}, + {file = "pandas-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:08d287b68fd28906a94564f15118a7ca8c242e50ae7f8bd91130c362b2108a81"}, + {file = "pandas-2.1.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bbd98dcdcd32f408947afdb3f7434fade6edd408c3077bbce7bd840d654d92c6"}, + {file = "pandas-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e90c95abb3285d06f6e4feedafc134306a8eced93cb78e08cf50e224d5ce22e2"}, + {file = "pandas-2.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:52867d69a54e71666cd184b04e839cff7dfc8ed0cd6b936995117fdae8790b69"}, + {file = "pandas-2.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8d0382645ede2fde352da2a885aac28ec37d38587864c0689b4b2361d17b1d4c"}, + {file = "pandas-2.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:65177d1c519b55e5b7f094c660ed357bb7d86e799686bb71653b8a4803d8ff0d"}, + {file = "pandas-2.1.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5aa6b86802e8cf7716bf4b4b5a3c99b12d34e9c6a9d06dad254447a620437931"}, + {file = "pandas-2.1.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d594e2ce51b8e0b4074e6644758865dc2bb13fd654450c1eae51201260a539f1"}, + {file = "pandas-2.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3223f997b6d2ebf9c010260cf3d889848a93f5d22bb4d14cd32638b3d8bba7ad"}, + {file = "pandas-2.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc4944dc004ca6cc701dfa19afb8bdb26ad36b9bed5bcec617d2a11e9cae6902"}, + {file = "pandas-2.1.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3f76280ce8ec216dde336e55b2b82e883401cf466da0fe3be317c03fb8ee7c7d"}, + {file = "pandas-2.1.2-cp312-cp312-win_amd64.whl", hash = "sha256:7ad20d24acf3a0042512b7e8d8fdc2e827126ed519d6bd1ed8e6c14ec8a2c813"}, + {file = "pandas-2.1.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:021f09c15e1381e202d95d4a21ece8e7f2bf1388b6d7e9cae09dfe27bd2043d1"}, + {file = "pandas-2.1.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e7f12b2de0060b0b858cfec0016e7d980ae5bae455a1746bfcc70929100ee633"}, + {file = "pandas-2.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83c166b9bb27c1715bed94495d9598a7f02950b4749dba9349c1dd2cbf10729d"}, + {file = "pandas-2.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25c9976c17311388fcd953cb3d0697999b2205333f4e11e669d90ff8d830d429"}, + {file = "pandas-2.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:851b5afbb0d62f6129ae891b533aa508cc357d5892c240c91933d945fff15731"}, + {file = "pandas-2.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:e78507adcc730533619de07bfdd1c62b2918a68cd4419ea386e28abf7f6a1e5c"}, + {file = "pandas-2.1.2.tar.gz", hash = "sha256:52897edc2774d2779fbeb6880d2cfb305daa0b1a29c16b91f531a18918a6e0f3"}, ] [package.dependencies] numpy = [ - {version = ">=1.22.4", markers = "python_version < \"3.11\""}, - {version = ">=1.23.2", markers = "python_version == \"3.11\""}, + {version = ">=1.22.4,<2", markers = "python_version < \"3.11\""}, + {version = ">=1.23.2,<2", markers = "python_version == \"3.11\""}, ] python-dateutil = ">=2.8.2" pytz = ">=2020.1" @@ -2048,6 +2107,7 @@ xml = ["lxml (>=4.8.0)"] name = "pandocfilters" version = "1.5.0" description = "Utilities for writing pandoc filters in python" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -2059,6 +2119,7 @@ files = [ name = "parso" version = "0.8.3" description = "A Python Parser" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2074,6 +2135,7 @@ testing = ["docopt", "pytest (<6.0.0)"] name = "pathspec" version = "0.11.2" description = "Utility library for gitignore style pattern matching of file paths." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2085,6 +2147,7 @@ files = [ name = "pbr" version = "5.11.1" description = "Python Build Reasonableness" +category = "dev" optional = false python-versions = ">=2.6" files = [ @@ -2096,6 +2159,7 @@ files = [ name = "pexpect" version = "4.8.0" description = "Pexpect allows easy control of interactive console applications." +category = "dev" optional = false python-versions = "*" files = [ @@ -2110,6 +2174,7 @@ ptyprocess = ">=0.5" name = "pickleshare" version = "0.7.5" description = "Tiny 'shelve'-like database with concurrency support" +category = "dev" optional = false python-versions = "*" files = [ @@ -2121,6 +2186,7 @@ files = [ name = "platformdirs" version = "3.11.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2136,6 +2202,7 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-co name = "pluggy" version = "1.3.0" description = "plugin and hook calling mechanisms for python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2151,6 +2218,7 @@ testing = ["pytest", "pytest-benchmark"] name = "pre-commit" version = "3.5.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2169,6 +2237,7 @@ virtualenv = ">=20.10.0" name = "prometheus-client" version = "0.17.1" description = "Python client for the Prometheus monitoring system." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2183,6 +2252,7 @@ twisted = ["twisted"] name = "prompt-toolkit" version = "3.0.39" description = "Library for building powerful interactive command lines in Python" +category = "dev" optional = false python-versions = ">=3.7.0" files = [ @@ -2197,6 +2267,7 @@ wcwidth = "*" name = "psutil" version = "5.9.6" description = "Cross-platform lib for process and system monitoring in Python." +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -2225,6 +2296,7 @@ test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] name = "ptyprocess" version = "0.7.0" description = "Run a subprocess in a pseudo terminal" +category = "dev" optional = false python-versions = "*" files = [ @@ -2236,6 +2308,7 @@ files = [ name = "pure-eval" version = "0.2.2" description = "Safely evaluate AST nodes without side effects" +category = "dev" optional = false python-versions = "*" files = [ @@ -2250,6 +2323,7 @@ tests = ["pytest"] name = "pycodestyle" version = "2.7.0" description = "Python style guide checker" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -2261,6 +2335,7 @@ files = [ name = "pycparser" version = "2.21" description = "C parser in Python" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -2272,6 +2347,7 @@ files = [ name = "pydocstyle" version = "6.3.0" description = "Python docstring style checker" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2289,6 +2365,7 @@ toml = ["tomli (>=1.2.3)"] name = "pyflakes" version = "2.3.1" description = "passive checker of Python programs" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -2300,6 +2377,7 @@ files = [ name = "pygments" version = "2.16.1" description = "Pygments is a syntax highlighting package written in Python." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2314,6 +2392,7 @@ plugins = ["importlib-metadata"] name = "pylint" version = "3.0.2" description = "python code static checker" +category = "dev" optional = false python-versions = ">=3.8.0" files = [ @@ -2326,8 +2405,8 @@ astroid = ">=3.0.1,<=3.1.0-dev0" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} dill = [ {version = ">=0.2", markers = "python_version < \"3.11\""}, + {version = ">=0.3.6", markers = "python_version >= \"3.11\""}, {version = ">=0.3.7", markers = "python_version >= \"3.12\""}, - {version = ">=0.3.6", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, ] isort = ">=4.2.5,<6" mccabe = ">=0.6,<0.8" @@ -2344,6 +2423,7 @@ testutils = ["gitpython (>3)"] name = "pytest" version = "7.4.3" description = "pytest: simple powerful testing with Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2366,6 +2446,7 @@ testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "no name = "pytest-cov" version = "4.1.0" description = "Pytest plugin for measuring coverage." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2384,6 +2465,7 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale name = "pytest-mock" version = "3.12.0" description = "Thin-wrapper around the mock package for easier use with pytest" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2401,6 +2483,7 @@ dev = ["pre-commit", "pytest-asyncio", "tox"] name = "python-dateutil" version = "2.8.2" description = "Extensions to the standard Python datetime module" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ @@ -2415,6 +2498,7 @@ six = ">=1.5" name = "python-dotenv" version = "1.0.0" description = "Read key-value pairs from a .env file and set them as environment variables" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2429,6 +2513,7 @@ cli = ["click (>=5.0)"] name = "python-json-logger" version = "2.0.7" description = "A python library adding a json log formatter" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2440,6 +2525,7 @@ files = [ name = "pytz" version = "2023.3.post1" description = "World timezone definitions, modern and historical" +category = "main" optional = false python-versions = "*" files = [ @@ -2451,6 +2537,7 @@ files = [ name = "pywin32" version = "306" description = "Python for Window Extensions" +category = "dev" optional = false python-versions = "*" files = [ @@ -2474,6 +2561,7 @@ files = [ name = "pywinpty" version = "2.0.12" description = "Pseudo terminal support for Windows from Python." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2489,6 +2577,7 @@ files = [ name = "pyyaml" version = "6.0.1" description = "YAML parser and emitter for Python" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2548,6 +2637,7 @@ files = [ name = "pyzmq" version = "25.1.1" description = "Python bindings for 0MQ" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2653,6 +2743,7 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} name = "qtconsole" version = "5.4.4" description = "Jupyter Qt console" +category = "dev" optional = false python-versions = ">= 3.7" files = [ @@ -2679,6 +2770,7 @@ test = ["flaky", "pytest", "pytest-qt"] name = "qtpy" version = "2.4.1" description = "Provides an abstraction layer on top of the various Qt bindings (PyQt5/6 and PySide2/6)." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2696,6 +2788,7 @@ test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] name = "referencing" version = "0.30.2" description = "JSON Referencing + Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2711,6 +2804,7 @@ rpds-py = ">=0.7.0" name = "requests" version = "2.31.0" description = "Python HTTP for Humans." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2732,6 +2826,7 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "rfc3339-validator" version = "0.1.4" description = "A pure python RFC3339 validator" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -2746,6 +2841,7 @@ six = "*" name = "rfc3986-validator" version = "0.1.1" description = "Pure python rfc3986 validator" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -2757,6 +2853,7 @@ files = [ name = "rich" version = "13.6.0" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +category = "dev" optional = false python-versions = ">=3.7.0" files = [ @@ -2775,6 +2872,7 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] name = "rpds-py" version = "0.10.6" description = "Python bindings to Rust's persistent data structures (rpds)" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2883,6 +2981,7 @@ files = [ name = "ruamel-yaml" version = "0.18.2" description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" +category = "dev" optional = false python-versions = ">=3" files = [ @@ -2901,6 +3000,7 @@ jinja2 = ["ruamel.yaml.jinja2 (>=0.2)"] name = "ruamel-yaml-clib" version = "0.2.8" description = "C version of reader, parser and emitter for ruamel.yaml derived from libyaml" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2946,6 +3046,7 @@ files = [ name = "safety" version = "2.3.4" description = "Checks installed dependencies for known vulnerabilities and licenses." +category = "dev" optional = false python-versions = "*" files = [ @@ -2956,7 +3057,7 @@ files = [ [package.dependencies] Click = ">=8.0.2" dparse = ">=0.6.2" -packaging = ">=21.0,<22.0" +packaging = ">=21.0" requests = "*" "ruamel.yaml" = ">=0.17.21" setuptools = ">=19.3" @@ -2969,6 +3070,7 @@ gitlab = ["python-gitlab (>=1.3.0)"] name = "send2trash" version = "1.8.2" description = "Send file to trash natively under Mac OS X, Windows and Linux" +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -2985,6 +3087,7 @@ win32 = ["pywin32"] name = "setuptools" version = "68.2.2" description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3001,6 +3104,7 @@ testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jar name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -3012,6 +3116,7 @@ files = [ name = "smmap" version = "5.0.1" description = "A pure Python implementation of a sliding window memory map manager" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3023,6 +3128,7 @@ files = [ name = "sniffio" version = "1.3.0" description = "Sniff out which async library your code is running under" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3034,6 +3140,7 @@ files = [ name = "snowballstemmer" version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." +category = "dev" optional = false python-versions = "*" files = [ @@ -3045,6 +3152,7 @@ files = [ name = "soupsieve" version = "2.5" description = "A modern CSS selector implementation for Beautiful Soup." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3052,10 +3160,209 @@ files = [ {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, ] +[[package]] +name = "sphinx" +version = "7.2.6" +description = "Python documentation generator" +category = "dev" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinx-7.2.6-py3-none-any.whl", hash = "sha256:1e09160a40b956dc623c910118fa636da93bd3ca0b9876a7b3df90f07d691560"}, + {file = "sphinx-7.2.6.tar.gz", hash = "sha256:9a5160e1ea90688d5963ba09a2dcd8bdd526620edbb65c328728f1b2228d5ab5"}, +] + +[package.dependencies] +alabaster = ">=0.7,<0.8" +babel = ">=2.9" +colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} +docutils = ">=0.18.1,<0.21" +imagesize = ">=1.3" +importlib-metadata = {version = ">=4.8", markers = "python_version < \"3.10\""} +Jinja2 = ">=3.0" +packaging = ">=21.0" +Pygments = ">=2.14" +requests = ">=2.25.0" +snowballstemmer = ">=2.0" +sphinxcontrib-applehelp = "*" +sphinxcontrib-devhelp = "*" +sphinxcontrib-htmlhelp = ">=2.0.0" +sphinxcontrib-jsmath = "*" +sphinxcontrib-qthelp = "*" +sphinxcontrib-serializinghtml = ">=1.1.9" + +[package.extras] +docs = ["sphinxcontrib-websupport"] +lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-simplify", "isort", "mypy (>=0.990)", "ruff", "sphinx-lint", "types-requests"] +test = ["cython (>=3.0)", "filelock", "html5lib", "pytest (>=4.6)", "setuptools (>=67.0)"] + +[[package]] +name = "sphinx-mdinclude" +version = "0.5.3" +description = "Markdown extension for Sphinx" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "sphinx_mdinclude-0.5.3-py3-none-any.whl", hash = "sha256:02afadf4597aecf8255a702956eff5b8c5cb9658ea995c3d361722d2ed78cca9"}, + {file = "sphinx_mdinclude-0.5.3.tar.gz", hash = "sha256:2998e3d18b3022c9983d1b72191fe37e25ffccd54165cbe3acb22cceedd91af4"}, +] + +[package.dependencies] +docutils = ">=0.16,<1.0" +mistune = ">=2.0,<3.0" +pygments = ">=2.8" + +[[package]] +name = "sphinx-rtd-theme" +version = "1.3.0" +description = "Read the Docs theme for Sphinx" +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "sphinx_rtd_theme-1.3.0-py2.py3-none-any.whl", hash = "sha256:46ddef89cc2416a81ecfbeaceab1881948c014b1b6e4450b815311a89fb977b0"}, + {file = "sphinx_rtd_theme-1.3.0.tar.gz", hash = "sha256:590b030c7abb9cf038ec053b95e5380b5c70d61591eb0b552063fbe7c41f0931"}, +] + +[package.dependencies] +docutils = "<0.19" +sphinx = ">=1.6,<8" +sphinxcontrib-jquery = ">=4,<5" + +[package.extras] +dev = ["bump2version", "sphinxcontrib-httpdomain", "transifex-client", "wheel"] + +[[package]] +name = "sphinxcontrib-applehelp" +version = "1.0.7" +description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" +category = "dev" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_applehelp-1.0.7-py3-none-any.whl", hash = "sha256:094c4d56209d1734e7d252f6e0b3ccc090bd52ee56807a5d9315b19c122ab15d"}, + {file = "sphinxcontrib_applehelp-1.0.7.tar.gz", hash = "sha256:39fdc8d762d33b01a7d8f026a3b7d71563ea3b72787d5f00ad8465bd9d6dfbfa"}, +] + +[package.dependencies] +Sphinx = ">=5" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-devhelp" +version = "1.0.5" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" +category = "dev" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_devhelp-1.0.5-py3-none-any.whl", hash = "sha256:fe8009aed765188f08fcaadbb3ea0d90ce8ae2d76710b7e29ea7d047177dae2f"}, + {file = "sphinxcontrib_devhelp-1.0.5.tar.gz", hash = "sha256:63b41e0d38207ca40ebbeabcf4d8e51f76c03e78cd61abe118cf4435c73d4212"}, +] + +[package.dependencies] +Sphinx = ">=5" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-htmlhelp" +version = "2.0.4" +description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" +category = "dev" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_htmlhelp-2.0.4-py3-none-any.whl", hash = "sha256:8001661c077a73c29beaf4a79968d0726103c5605e27db92b9ebed8bab1359e9"}, + {file = "sphinxcontrib_htmlhelp-2.0.4.tar.gz", hash = "sha256:6c26a118a05b76000738429b724a0568dbde5b72391a688577da08f11891092a"}, +] + +[package.dependencies] +Sphinx = ">=5" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["html5lib", "pytest"] + +[[package]] +name = "sphinxcontrib-jquery" +version = "4.1" +description = "Extension to include jQuery on newer Sphinx releases" +category = "dev" +optional = false +python-versions = ">=2.7" +files = [ + {file = "sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a"}, + {file = "sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae"}, +] + +[package.dependencies] +Sphinx = ">=1.8" + +[[package]] +name = "sphinxcontrib-jsmath" +version = "1.0.1" +description = "A sphinx extension which renders display math in HTML via JavaScript" +category = "dev" +optional = false +python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] + +[package.extras] +test = ["flake8", "mypy", "pytest"] + +[[package]] +name = "sphinxcontrib-qthelp" +version = "1.0.6" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" +category = "dev" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_qthelp-1.0.6-py3-none-any.whl", hash = "sha256:bf76886ee7470b934e363da7a954ea2825650013d367728588732c7350f49ea4"}, + {file = "sphinxcontrib_qthelp-1.0.6.tar.gz", hash = "sha256:62b9d1a186ab7f5ee3356d906f648cacb7a6bdb94d201ee7adf26db55092982d"}, +] + +[package.dependencies] +Sphinx = ">=5" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-serializinghtml" +version = "1.1.9" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" +category = "dev" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinxcontrib_serializinghtml-1.1.9-py3-none-any.whl", hash = "sha256:9b36e503703ff04f20e9675771df105e58aa029cfcbc23b8ed716019b7416ae1"}, + {file = "sphinxcontrib_serializinghtml-1.1.9.tar.gz", hash = "sha256:0c64ff898339e1fac29abd2bf5f11078f3ec413cfe9c046d3120d7ca65530b54"}, +] + +[package.dependencies] +Sphinx = ">=5" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + [[package]] name = "stack-data" version = "0.6.3" description = "Extract data from python stack frames and tracebacks for informative displays" +category = "dev" optional = false python-versions = "*" files = [ @@ -3075,6 +3382,7 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] name = "stevedore" version = "5.1.0" description = "Manage dynamic plugins for Python applications" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3089,6 +3397,7 @@ pbr = ">=2.0.0,<2.1.0 || >2.1.0" name = "tabulate" version = "0.8.10" description = "Pretty-print tabular data" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -3103,6 +3412,7 @@ widechars = ["wcwidth"] name = "terminado" version = "0.17.1" description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3123,6 +3433,7 @@ test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] name = "tinycss2" version = "1.2.1" description = "A tiny CSS parser" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3141,6 +3452,7 @@ test = ["flake8", "isort", "pytest"] name = "tomli" version = "2.0.1" description = "A lil' TOML parser" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3152,6 +3464,7 @@ files = [ name = "tomlkit" version = "0.12.1" description = "Style preserving TOML library" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3163,6 +3476,7 @@ files = [ name = "tornado" version = "6.3.3" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +category = "dev" optional = false python-versions = ">= 3.8" files = [ @@ -3183,6 +3497,7 @@ files = [ name = "traitlets" version = "5.12.0" description = "Traitlets Python configuration system" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3198,6 +3513,7 @@ test = ["argcomplete (>=3.0.3)", "mypy (>=1.6.0)", "pre-commit", "pytest (>=7.0, name = "types-python-dateutil" version = "2.8.19.14" description = "Typing stubs for python-dateutil" +category = "dev" optional = false python-versions = "*" files = [ @@ -3209,6 +3525,7 @@ files = [ name = "typing-extensions" version = "4.8.0" description = "Backported and Experimental Type Hints for Python 3.8+" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3220,6 +3537,7 @@ files = [ name = "tzdata" version = "2023.3" description = "Provider of IANA time zone data" +category = "main" optional = false python-versions = ">=2" files = [ @@ -3231,6 +3549,7 @@ files = [ name = "uri-template" version = "1.3.0" description = "RFC 6570 URI Template Processor" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3245,6 +3564,7 @@ dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake name = "urllib3" version = "2.0.7" description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3262,6 +3582,7 @@ zstd = ["zstandard (>=0.18.0)"] name = "virtualenv" version = "20.24.6" description = "Virtual Python Environment builder" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3282,6 +3603,7 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess name = "wcwidth" version = "0.2.8" description = "Measures the displayed width of unicode strings in a terminal" +category = "dev" optional = false python-versions = "*" files = [ @@ -3293,6 +3615,7 @@ files = [ name = "webcolors" version = "1.13" description = "A library for working with the color formats defined by HTML and CSS." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3308,6 +3631,7 @@ tests = ["pytest", "pytest-cov"] name = "webencodings" version = "0.5.1" description = "Character encoding aliases for legacy web content" +category = "dev" optional = false python-versions = "*" files = [ @@ -3319,6 +3643,7 @@ files = [ name = "websocket-client" version = "1.6.4" description = "WebSocket client for Python with low level API options" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3335,6 +3660,7 @@ test = ["websockets"] name = "widgetsnbextension" version = "4.0.9" description = "Jupyter interactive widgets for Jupyter Notebook" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3346,6 +3672,7 @@ files = [ name = "zipp" version = "3.17.0" description = "Backport of pathlib-compatible object wrapper for zip files" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3360,4 +3687,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = "^3.9" -content-hash = "2d7e7a3af1e597dfe6076741513ab7296bf2800a33357752f626f1e4e0b032c8" +content-hash = "1d4b23a983a28196f4a3b0492c26f8f8825b292a93df500dc41ab691e57fe987" diff --git a/pyproject.toml b/pyproject.toml index 6982380..7865d55 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -58,6 +58,10 @@ flake8 = "^3.0" jupyter = "^1.0.0" pytest-mock = "^3.8.2" python-dotenv = "^1.0.0" +sphinx = "^7.0" +sphinx-rtd-theme = "^1.3.0" +myst-parser = "^2.0.0" +sphinx-mdinclude = "^0.5.3" [tool.black] line-length = 80 From 399d8409838292e73e043071eace57754ffa4207 Mon Sep 17 00:00:00 2001 From: MarcoHuebner Date: Sun, 29 Oct 2023 01:32:41 +0200 Subject: [PATCH 10/27] Remove redundant docu information #10 Render parts of the README.md in the respective .rst files --- docs/source/conf.py | 2 + docs/source/contribute.rst | 33 ++--------------- docs/source/index.rst | 19 +++------- docs/source/install.rst | 17 ++------- docs/source/license.rst | 7 ++++ docs/source/roadmap.rst | 10 ++--- docs/source/start.rst | 35 ++---------------- docs/source/use.rst | 75 ++------------------------------------ 8 files changed, 34 insertions(+), 164 deletions(-) create mode 100644 docs/source/license.rst diff --git a/docs/source/conf.py b/docs/source/conf.py index ef04b5d..eb6cbdd 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -26,6 +26,8 @@ # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration extensions = [ + "myst_parser", + # "sphinx_mdinclude", "sphinx.ext.autodoc", "sphinx.ext.autosummary", # used to generate overview tables ] diff --git a/docs/source/contribute.rst b/docs/source/contribute.rst index db3ae9e..6cf3327 100644 --- a/docs/source/contribute.rst +++ b/docs/source/contribute.rst @@ -1,33 +1,6 @@ Developer Information ===================== -How to contribute? ------------------- - -Contributions to this project are highly appreciated! You can either contact the maintainers -or directly create a pull request for your proposed changes: - -1. Fork the Project -2. Create your Feature Branch (``git checkout -b feature/``) -3. Commit your changes (``git commit -m 'Added NewFeature'``) -4. Push to remote (``git push origin feature/``) -5. Open a Pull Request to be merged with dev - -Developer information ---------------------- - -To contribute to this project, please follow these steps: - -1. Install `poetry `_. We recommend installing ``poetry`` via `pipx `_ which gives you a global ``poetry`` command in an isolated virtual environment. -2. Clone the repository via git. -3. Change into the project root directory. -4. Run ``poetry install`` to create the virtual environment within ``poetry``'s cache folder (run ``poetry env info`` to see the details of this new virtual environment). ``poetry`` has installed all dependencies for you, as well as the package itself. -5. Install pre-commit: ``poetry run pre-commit install``. This will activate the pre-commit hooks that will run prior every commit to ensure code quality. -6. Do your changes. -7. Run ``poetry run pytest`` to see if all existing tests still run through. It is important to use ``poetry run`` to call ``pytest`` so that ``poetry`` uses the created virtual environment and not the system's default Python interpreter. Alternatively, you can run ``poetry shell`` to let ``poetry`` activate the virtual environment for the current session. Afterwards, you can run ``pytest`` as usual without any prefix. You can leave the poetry shell with the ``exit`` command. -8. Add new tests depending on your changes. -9. Run ``poetry run pytest`` again to make sure your tests are also passed. -10. Commit and push your changes. -11. Create a PR. - -To learn more about ``poetry``, see `Dependency Management With Python Poetry `_ by realpython.com. +.. include:: ../../README.md + :parser: myst_parser.sphinx_ + :start-after: ## How to contribute? diff --git a/docs/source/index.rst b/docs/source/index.rst index 4f21b6e..1843a88 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -4,20 +4,12 @@ contain the root `toctree` directive. pystatis -==================================== +======== -```pystatis``` is a Python wrapper for the GENESIS web service interface (API). It simplifies accessing the data from the German statistical federal office. - -The main features are: - -- **Simplified access** to the API. No more need to write cumbersome API calls. -- **Credential management** removes need to manually add credentials. -- **Integrated workflow** enables an end-to-end process from finding the relevant data to download it. -- **Pandas support** instead of manually parsing results. -- **Caching** to enable productive work despite strict query limits. -- **Starting and handling background jobs** for datasets that are to big to be downloaded directly from GENESIS. - -To learn more about GENESIS refer to the official documentation `here `_. +.. include:: ../../README.md + :parser: myst_parser.sphinx_ + :start-after: # ``pystatis`` + :end-before: ## Installation .. toctree:: :maxdepth: 2 @@ -28,6 +20,7 @@ To learn more about GENESIS refer to the official documentation `here `_. - -Once you have a registered user, you can use your username and password as credentials for authentication against the GENESIS-Online API. - -To avoid entering your credentials each time you use ``pystatis``, your credentials will be stored locally with the `init_config()` helper function. This function accepts both a `username` and `password` argument and stores your credentials in a configuration file named `config.ini` that is stored under `/.pystatis/config.ini` by default. You can change this path with the optional `config_dir` argument. - -So before you can use ``pystatis`` you have to execute the following code **once**: - -.. code-block:: python - - from pystatis import init_config - - init_config(username="myusername", password="mypassword") - - -After executing this code you should have a new `config.ini` file under the `/.pystatis` directory. - -Each time ``pystatis`` is communicating with GENESIS-Online via the API, it is automatically using the stored credentials in this `config.ini`, so you don't have to specify them again. In case of updated credentials, you can either run `init_config()` again or update the values directly in the `config.ini` file. - -GENESIS-Online provides a `helloworld` endpoint that can be used to check your credentials: - -.. code-block:: python - - from pystatis import logincheck - - logincheck() - >>> '{"Status":"Sie wurden erfolgreich an- und abgemeldet!","Username":"ASFJ582LJ"}' - -If you can see a response like this, your setup is complete and you can start downloading data. - -For more details, please study the provided sample notebook for `cache `_. \ No newline at end of file +.. include:: ../../README.md + :parser: myst_parser.sphinx_ + :start-after: ## Get started + :end-before: ## How to use diff --git a/docs/source/use.rst b/docs/source/use.rst index c9f1b45..5b295ef 100644 --- a/docs/source/use.rst +++ b/docs/source/use.rst @@ -1,74 +1,7 @@ Usage ========== -The GENESIS data model ----------------------- - -The Genesis data structure consists of multiple elements as summarized in the image below. - -.. image:: ../../assets/structure.png - :align: center - :alt: Structure - -This package currently supports retrieving the following data types: - -- Cubes: Multi-dimensional data objects -- Tables: Derivatives of cubes that are already packaged into logical units - -Find the right data -------------------- - -``pystatis`` offers the `Find` class to search for any piece of information with GENESIS. Behind the scene it's using the `find` endpoint. - -Example: - -.. code-block:: python - - from pystatis import Find - - results = Find("Rohöl") # Initiates object that contains all variables, statistics, tables and cubes - results.run() # Runs the query - results.tables.df # Results for tables - results.tables.get_code([1,2,3]) # Gets the table codes, e.g. for downloading the table - results.tables.get_metadata([1,2]) # Gets the metadata for the table - -A complete overview of all use cases is provided in the sample notebook for `find `_. - -Download data -------------- - -Data can be downloaded in to forms: as tables and as cubes. Both interfaces have been aligned to be as close as possible to each other. - -Example for downloading a Table: - -.. code-block:: python - - from pystatis import Table - - t = Table(name="21311-0001") # data is not yet downloaded - t.get_data() # Only now the data is either fetched from GENESIS or loaded from cache. If the data is downloaded from online, it will be also cached, so next time the data is loaded from cache. - t.data # a pandas data frame - -Example for downloading a Cube: - -.. code-block:: python - - from pystatis import Cube - - c = Cube(name="22922KJ1141") # data is not yet downloaded - c.get_data() # Only now the data is either fetched from GENESIS or loaded from cache. If the data is downloaded from online, it will be also cached, so next time the data is loaded from cache. - c.data # a pandas data frame - -For more details, please study the provided sample notebook for `tables _` and `cubes `_. - -Clear Cache ------------ - -When a cube or table is queried, it will be put into cache automatically. The cache can be cleared using the following function: - -.. code-block:: python - - from pystatis import clear_cache - - clear_cache("21311-0001") # only deletes the data for the object with the specified name - clear_cache() # deletes the complete cache +.. include:: ../../README.md + :parser: myst_parser.sphinx_ + :start-after: ## How to use + :end-before: ## License From 3d64188224b6da922025be0d579f542e697c0f84 Mon Sep 17 00:00:00 2001 From: MarcoHuebner Date: Sun, 29 Oct 2023 01:52:02 +0200 Subject: [PATCH 11/27] Remove unused mdinclude, fix run-test py version, update pre-commit #10 --- .github/workflows/run-tests.yaml | 2 +- .pre-commit-config.yaml | 1 + docs/source/conf.py | 1 - poetry.lock | 29 ++++++----------------------- pyproject.toml | 1 - 5 files changed, 8 insertions(+), 26 deletions(-) diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index 48a903b..9dd6823 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -92,7 +92,7 @@ jobs: - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v3 with: - python-version: $POETRY_VERSION + python-version: ${{ matrix.python-version }} - name: Run poetry image uses: abatilo/actions-poetry@v2.0.0 with: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b172303..a12c86e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -36,3 +36,4 @@ repos: name: "Check if documentation compiles" args: ['--cache-dir', 'docs/build/doctrees', '--html-dir', 'docs/build/html', '--source-dir', 'docs/source'] language_version: python3 + additional_dependencies: [myst-parser] diff --git a/docs/source/conf.py b/docs/source/conf.py index eb6cbdd..62f75a2 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -27,7 +27,6 @@ extensions = [ "myst_parser", - # "sphinx_mdinclude", "sphinx.ext.autodoc", "sphinx.ext.autosummary", # used to generate overview tables ] diff --git a/poetry.lock b/poetry.lock index c2d5e58..34701c2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1626,14 +1626,14 @@ files = [ [[package]] name = "mistune" -version = "2.0.5" -description = "A sane Markdown parser with useful plugins and renderers" +version = "3.0.2" +description = "A sane and fast Markdown parser with useful plugins and renderers" category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.7" files = [ - {file = "mistune-2.0.5-py2.py3-none-any.whl", hash = "sha256:bad7f5d431886fcbaf5f758118ecff70d31f75231b34024a1341120340a65ce8"}, - {file = "mistune-2.0.5.tar.gz", hash = "sha256:0246113cb2492db875c6be56974a7c893333bf26cd92891c85f63151cee09d34"}, + {file = "mistune-3.0.2-py3-none-any.whl", hash = "sha256:71481854c30fdbc938963d3605b72501f5c10a9320ecd412c121c163a1c7d205"}, + {file = "mistune-3.0.2.tar.gz", hash = "sha256:fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8"}, ] [[package]] @@ -3196,23 +3196,6 @@ docs = ["sphinxcontrib-websupport"] lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-simplify", "isort", "mypy (>=0.990)", "ruff", "sphinx-lint", "types-requests"] test = ["cython (>=3.0)", "filelock", "html5lib", "pytest (>=4.6)", "setuptools (>=67.0)"] -[[package]] -name = "sphinx-mdinclude" -version = "0.5.3" -description = "Markdown extension for Sphinx" -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "sphinx_mdinclude-0.5.3-py3-none-any.whl", hash = "sha256:02afadf4597aecf8255a702956eff5b8c5cb9658ea995c3d361722d2ed78cca9"}, - {file = "sphinx_mdinclude-0.5.3.tar.gz", hash = "sha256:2998e3d18b3022c9983d1b72191fe37e25ffccd54165cbe3acb22cceedd91af4"}, -] - -[package.dependencies] -docutils = ">=0.16,<1.0" -mistune = ">=2.0,<3.0" -pygments = ">=2.8" - [[package]] name = "sphinx-rtd-theme" version = "1.3.0" @@ -3687,4 +3670,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = "^3.9" -content-hash = "1d4b23a983a28196f4a3b0492c26f8f8825b292a93df500dc41ab691e57fe987" +content-hash = "d01f16c94c55a535a235a005de4ad68c743fcbda6a09d4fd34bfe5b9448e3957" diff --git a/pyproject.toml b/pyproject.toml index 7865d55..922a65d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -61,7 +61,6 @@ python-dotenv = "^1.0.0" sphinx = "^7.0" sphinx-rtd-theme = "^1.3.0" myst-parser = "^2.0.0" -sphinx-mdinclude = "^0.5.3" [tool.black] line-length = 80 From c14d7810215dd6608e43319049146802d3ff0b04 Mon Sep 17 00:00:00 2001 From: MarcoHuebner Date: Sun, 29 Oct 2023 01:55:56 +0200 Subject: [PATCH 12/27] Fix dependency group for SPhinx workflow #10 --- .github/workflows/run-tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index 9dd6823..285cbb5 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -99,7 +99,7 @@ jobs: poetry-version: $POETRY_VERSION - name: Install dependencies run: | - poetry install + poetry install --with dev - name: Build documentation run: | cd docs From ddf5a922d0063451cf9d5a580fa69b2f037dbf00 Mon Sep 17 00:00:00 2001 From: MarcoHuebner Date: Fri, 3 Nov 2023 00:19:19 +0100 Subject: [PATCH 13/27] FIx docstring parameter rendering in Sphinx #10 --- docs/source/conf.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/source/conf.py b/docs/source/conf.py index 62f75a2..8fce913 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -29,6 +29,7 @@ "myst_parser", "sphinx.ext.autodoc", "sphinx.ext.autosummary", # used to generate overview tables + "sphinx.ext.napoleon", # used for google-style docstrings ] templates_path = ["_templates"] @@ -45,3 +46,4 @@ html_short_title = "pystatis documentation" html_logo = "_static/pystatis_logo.png" html_favicon = "_static/pystatis_logo.ico" +autodoc_typehints = 'description' From 5780d164decc753a1260bda881f9c4db954a3ca5 Mon Sep 17 00:00:00 2001 From: MarcoHuebner Date: Fri, 3 Nov 2023 00:19:55 +0100 Subject: [PATCH 14/27] Fix image rendering by mimicing folder structure #10 --- docs/source/assets/structure.png | Bin 0 -> 211484 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/source/assets/structure.png diff --git a/docs/source/assets/structure.png b/docs/source/assets/structure.png new file mode 100644 index 0000000000000000000000000000000000000000..02d899fab35f623196899b037bda58e02e28c9a7 GIT binary patch literal 211484 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�mGZl@Vo=4!)-{0}aW9|t+Z-e3V79Ol^f^rr-V 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 h&OUt+~looCA}eYA@qgHQmYC?c2+wt(L^ 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 literal 0 HcmV?d00001 From 1ef778e9ca3babfaf0cfa583a60c3ed0f0652a6b Mon Sep 17 00:00:00 2001 From: MarcoHuebner Date: Fri, 3 Nov 2023 00:20:16 +0100 Subject: [PATCH 15/27] Add comment on warnings related to ext.napoleon #10 --- docs/source/pystatis.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/source/pystatis.rst b/docs/source/pystatis.rst index deef29d..b962d0a 100644 --- a/docs/source/pystatis.rst +++ b/docs/source/pystatis.rst @@ -75,8 +75,9 @@ pystatis.table module :undoc-members: :show-inheritance: -Module contents ---------------- +.. NOTE: duplicate objects warning seems to be unfixable https://github.com/sphinx-doc/sphinx/issues/8664 +Overall Module contents +======================= .. automodule:: pystatis :members: From 085b8dc41ab94ef671d889a58334cb412cb9f28e Mon Sep 17 00:00:00 2001 From: MarcoHuebner Date: Fri, 3 Nov 2023 00:29:42 +0100 Subject: [PATCH 16/27] Rename deploy-docs #10 --- .github/workflows/{deploy_docs.yaml => deploy-docs.yaml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename .github/workflows/{deploy_docs.yaml => deploy-docs.yaml} (96%) diff --git a/.github/workflows/deploy_docs.yaml b/.github/workflows/deploy-docs.yaml similarity index 96% rename from .github/workflows/deploy_docs.yaml rename to .github/workflows/deploy-docs.yaml index 006ab88..15efcab 100644 --- a/.github/workflows/deploy_docs.yaml +++ b/.github/workflows/deploy-docs.yaml @@ -25,7 +25,7 @@ jobs: poetry-version: 1.6.1 - name: Install dependencies run: | - poetry install + poetry install --with dev - name: Build docs run: | cd docs From 0a7d4866303f502ecf90f37b4a590b2811b66b00 Mon Sep 17 00:00:00 2001 From: MarcoHuebner Date: Fri, 3 Nov 2023 00:33:00 +0100 Subject: [PATCH 17/27] Fix black format issue in conf.py #10 --- docs/source/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 8fce913..0edd59f 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -46,4 +46,4 @@ html_short_title = "pystatis documentation" html_logo = "_static/pystatis_logo.png" html_favicon = "_static/pystatis_logo.ico" -autodoc_typehints = 'description' +autodoc_typehints = "description" From 280e55288293413c0b01c9c06bed7a53e1910134 Mon Sep 17 00:00:00 2001 From: MarcoHuebner Date: Sat, 4 Nov 2023 14:20:00 +0100 Subject: [PATCH 18/27] Update deploy key, add deploy trigger comment #10 --- .github/workflows/deploy-docs.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy-docs.yaml b/.github/workflows/deploy-docs.yaml index 15efcab..1466c0d 100644 --- a/.github/workflows/deploy-docs.yaml +++ b/.github/workflows/deploy-docs.yaml @@ -4,6 +4,7 @@ on: push: branches: - main + # TODO: discuss whether to leave this in and whether to also include dev pull_request: branches: - main @@ -34,6 +35,6 @@ jobs: - name: Deploy docs uses: peaceiris/actions-gh-pages@v3 with: - github_token: ${{ secrets.GITHUB_TOKEN }} + deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} publish_dir: ./docs/build/html publish_branch: gh-pages # gh-pages is default, but can be changed From 8afd5976fc4d666ec9abb82906c17848c68f379b Mon Sep 17 00:00:00 2001 From: MarcoHuebner Date: Sat, 4 Nov 2023 17:16:59 +0100 Subject: [PATCH 19/27] Update documentation deploy workflow #10 --- .github/workflows/deploy-docs.yaml | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy-docs.yaml b/.github/workflows/deploy-docs.yaml index 1466c0d..d7e4d65 100644 --- a/.github/workflows/deploy-docs.yaml +++ b/.github/workflows/deploy-docs.yaml @@ -4,10 +4,11 @@ on: push: branches: - main - # TODO: discuss whether to leave this in and whether to also include dev + - dev pull_request: branches: - - main + - main + - dev workflow_dispatch: jobs: @@ -32,9 +33,22 @@ jobs: cd docs poetry run make clean poetry run make html - - name: Deploy docs + # create distinguished subdirectories for each branch + # NOTE: force_orphan will delete all files in the branch (thus main & dev could not be concurrently deployed) + - name: Deploy docs main + uses: peaceiris/actions-gh-pages@v3 + if: github.ref == 'refs/heads/main' || (github.event_name == 'pull_request' && github.head_ref == 'main') + with: + deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} + publish_dir: ./docs/build/html + publish_branch: gh-pages + keep_files: true + - name: Deploy docs dev uses: peaceiris/actions-gh-pages@v3 + if: github.ref == 'refs/heads/dev' || (github.event_name == 'pull_request' && github.head_ref == 'dev') with: deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} publish_dir: ./docs/build/html - publish_branch: gh-pages # gh-pages is default, but can be changed + destination_dir: dev + publish_branch: gh-pages + keep_files: true From 2e12450caec8b02a3fd42b510a275eb259aa9b85 Mon Sep 17 00:00:00 2001 From: MarcoHuebner Date: Sat, 4 Nov 2023 17:33:38 +0100 Subject: [PATCH 20/27] Switch to matrix.os definition #10 --- .github/workflows/deploy-docs.yaml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy-docs.yaml b/.github/workflows/deploy-docs.yaml index d7e4d65..1e1d48c 100644 --- a/.github/workflows/deploy-docs.yaml +++ b/.github/workflows/deploy-docs.yaml @@ -11,20 +11,30 @@ on: - dev workflow_dispatch: +env: + POETRY_VERSION: 1.6.1 + jobs: build-and-deploy: - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} + timeout-minutes: 10 + strategy: + fail-fast: false + matrix: + # only support specific python version, as guidelines differ beween (minor) versions + python-version: ["3.10.13"] + os: [ubuntu-latest] steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v3 with: - python-version: 3.10 + python-version: ${{ matrix.python-version }} - name: Run poetry image uses: abatilo/actions-poetry@v2.0.0 with: - poetry-version: 1.6.1 + poetry-version: $POETRY_VERSION - name: Install dependencies run: | poetry install --with dev From 203a56a8e3e2bc7cfe90d565f21d0784f608dc8c Mon Sep 17 00:00:00 2001 From: MarcoHuebner Date: Sat, 4 Nov 2023 17:39:20 +0100 Subject: [PATCH 21/27] Fix pull_request target in deploy workflow #10 --- .github/workflows/deploy-docs.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy-docs.yaml b/.github/workflows/deploy-docs.yaml index 1e1d48c..86c9e53 100644 --- a/.github/workflows/deploy-docs.yaml +++ b/.github/workflows/deploy-docs.yaml @@ -47,7 +47,7 @@ jobs: # NOTE: force_orphan will delete all files in the branch (thus main & dev could not be concurrently deployed) - name: Deploy docs main uses: peaceiris/actions-gh-pages@v3 - if: github.ref == 'refs/heads/main' || (github.event_name == 'pull_request' && github.head_ref == 'main') + if: github.ref == 'refs/heads/main' || (github.event_name == 'pull_request' && github.base_ref == 'main') with: deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} publish_dir: ./docs/build/html @@ -55,7 +55,7 @@ jobs: keep_files: true - name: Deploy docs dev uses: peaceiris/actions-gh-pages@v3 - if: github.ref == 'refs/heads/dev' || (github.event_name == 'pull_request' && github.head_ref == 'dev') + if: github.ref == 'refs/heads/dev' || (github.event_name == 'pull_request' && github.base_ref == 'dev') with: deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} publish_dir: ./docs/build/html From c09bcc72d2aebc739403e36c50dffb3ee8ce054e Mon Sep 17 00:00:00 2001 From: MarcoHuebner Date: Sun, 5 Nov 2023 12:30:59 +0100 Subject: [PATCH 22/27] Update poetry.lock #10 --- poetry.lock | 509 +++++++++++++++++++++++++--------------------------- 1 file changed, 247 insertions(+), 262 deletions(-) diff --git a/poetry.lock b/poetry.lock index 19eaca8..0453ef3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -211,18 +211,6 @@ setuptools = {version = "*", markers = "python_version >= \"3.12\""} [package.extras] dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] -[[package]] -name = "backcall" -version = "0.2.0" -description = "Specifications for callback functions passed in to an API" -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, - {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, -] - [[package]] name = "bandit" version = "1.7.5" @@ -419,102 +407,102 @@ files = [ [[package]] name = "charset-normalizer" -version = "3.3.1" +version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." category = "main" optional = false python-versions = ">=3.7.0" files = [ - {file = "charset-normalizer-3.3.1.tar.gz", hash = "sha256:d9137a876020661972ca6eec0766d81aef8a5627df628b664b234b73396e727e"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8aee051c89e13565c6bd366813c386939f8e928af93c29fda4af86d25b73d8f8"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:352a88c3df0d1fa886562384b86f9a9e27563d4704ee0e9d56ec6fcd270ea690"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:223b4d54561c01048f657fa6ce41461d5ad8ff128b9678cfe8b2ecd951e3f8a2"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f861d94c2a450b974b86093c6c027888627b8082f1299dfd5a4bae8e2292821"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1171ef1fc5ab4693c5d151ae0fdad7f7349920eabbaca6271f95969fa0756c2d"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28f512b9a33235545fbbdac6a330a510b63be278a50071a336afc1b78781b147"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0e842112fe3f1a4ffcf64b06dc4c61a88441c2f02f373367f7b4c1aa9be2ad5"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3f9bc2ce123637a60ebe819f9fccc614da1bcc05798bbbaf2dd4ec91f3e08846"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f194cce575e59ffe442c10a360182a986535fd90b57f7debfaa5c845c409ecc3"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:9a74041ba0bfa9bc9b9bb2cd3238a6ab3b7618e759b41bd15b5f6ad958d17605"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:b578cbe580e3b41ad17b1c428f382c814b32a6ce90f2d8e39e2e635d49e498d1"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:6db3cfb9b4fcecb4390db154e75b49578c87a3b9979b40cdf90d7e4b945656e1"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:debb633f3f7856f95ad957d9b9c781f8e2c6303ef21724ec94bea2ce2fcbd056"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-win32.whl", hash = "sha256:87071618d3d8ec8b186d53cb6e66955ef2a0e4fa63ccd3709c0c90ac5a43520f"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:e372d7dfd154009142631de2d316adad3cc1c36c32a38b16a4751ba78da2a397"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ae4070f741f8d809075ef697877fd350ecf0b7c5837ed68738607ee0a2c572cf"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:58e875eb7016fd014c0eea46c6fa92b87b62c0cb31b9feae25cbbe62c919f54d"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dbd95e300367aa0827496fe75a1766d198d34385a58f97683fe6e07f89ca3e3c"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de0b4caa1c8a21394e8ce971997614a17648f94e1cd0640fbd6b4d14cab13a72"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:985c7965f62f6f32bf432e2681173db41336a9c2611693247069288bcb0c7f8b"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a15c1fe6d26e83fd2e5972425a772cca158eae58b05d4a25a4e474c221053e2d"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae55d592b02c4349525b6ed8f74c692509e5adffa842e582c0f861751701a673"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:be4d9c2770044a59715eb57c1144dedea7c5d5ae80c68fb9959515037cde2008"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:851cf693fb3aaef71031237cd68699dded198657ec1e76a76eb8be58c03a5d1f"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:31bbaba7218904d2eabecf4feec0d07469284e952a27400f23b6628439439fa7"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:871d045d6ccc181fd863a3cd66ee8e395523ebfbc57f85f91f035f50cee8e3d4"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:501adc5eb6cd5f40a6f77fbd90e5ab915c8fd6e8c614af2db5561e16c600d6f3"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f5fb672c396d826ca16a022ac04c9dce74e00a1c344f6ad1a0fdc1ba1f332213"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-win32.whl", hash = "sha256:bb06098d019766ca16fc915ecaa455c1f1cd594204e7f840cd6258237b5079a8"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:8af5a8917b8af42295e86b64903156b4f110a30dca5f3b5aedea123fbd638bff"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:7ae8e5142dcc7a49168f4055255dbcced01dc1714a90a21f87448dc8d90617d1"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5b70bab78accbc672f50e878a5b73ca692f45f5b5e25c8066d748c09405e6a55"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ceca5876032362ae73b83347be8b5dbd2d1faf3358deb38c9c88776779b2e2f"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34d95638ff3613849f473afc33f65c401a89f3b9528d0d213c7037c398a51296"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9edbe6a5bf8b56a4a84533ba2b2f489d0046e755c29616ef8830f9e7d9cf5728"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6a02a3c7950cafaadcd46a226ad9e12fc9744652cc69f9e5534f98b47f3bbcf"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10b8dd31e10f32410751b3430996f9807fc4d1587ca69772e2aa940a82ab571a"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edc0202099ea1d82844316604e17d2b175044f9bcb6b398aab781eba957224bd"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b891a2f68e09c5ef989007fac11476ed33c5c9994449a4e2c3386529d703dc8b"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:71ef3b9be10070360f289aea4838c784f8b851be3ba58cf796262b57775c2f14"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:55602981b2dbf8184c098bc10287e8c245e351cd4fdcad050bd7199d5a8bf514"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:46fb9970aa5eeca547d7aa0de5d4b124a288b42eaefac677bde805013c95725c"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:520b7a142d2524f999447b3a0cf95115df81c4f33003c51a6ab637cbda9d0bf4"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-win32.whl", hash = "sha256:8ec8ef42c6cd5856a7613dcd1eaf21e5573b2185263d87d27c8edcae33b62a61"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:baec8148d6b8bd5cee1ae138ba658c71f5b03e0d69d5907703e3e1df96db5e41"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:63a6f59e2d01310f754c270e4a257426fe5a591dc487f1983b3bbe793cf6bac6"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d6bfc32a68bc0933819cfdfe45f9abc3cae3877e1d90aac7259d57e6e0f85b1"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4f3100d86dcd03c03f7e9c3fdb23d92e32abbca07e7c13ebd7ddfbcb06f5991f"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39b70a6f88eebe239fa775190796d55a33cfb6d36b9ffdd37843f7c4c1b5dc67"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e12f8ee80aa35e746230a2af83e81bd6b52daa92a8afaef4fea4a2ce9b9f4fa"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7b6cefa579e1237ce198619b76eaa148b71894fb0d6bcf9024460f9bf30fd228"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:61f1e3fb621f5420523abb71f5771a204b33c21d31e7d9d86881b2cffe92c47c"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4f6e2a839f83a6a76854d12dbebde50e4b1afa63e27761549d006fa53e9aa80e"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:1ec937546cad86d0dce5396748bf392bb7b62a9eeb8c66efac60e947697f0e58"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:82ca51ff0fc5b641a2d4e1cc8c5ff108699b7a56d7f3ad6f6da9dbb6f0145b48"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:633968254f8d421e70f91c6ebe71ed0ab140220469cf87a9857e21c16687c034"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-win32.whl", hash = "sha256:c0c72d34e7de5604df0fde3644cc079feee5e55464967d10b24b1de268deceb9"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:63accd11149c0f9a99e3bc095bbdb5a464862d77a7e309ad5938fbc8721235ae"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5a3580a4fdc4ac05f9e53c57f965e3594b2f99796231380adb2baaab96e22761"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2465aa50c9299d615d757c1c888bc6fef384b7c4aec81c05a0172b4400f98557"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cb7cd68814308aade9d0c93c5bd2ade9f9441666f8ba5aa9c2d4b389cb5e2a45"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91e43805ccafa0a91831f9cd5443aa34528c0c3f2cc48c4cb3d9a7721053874b"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:854cc74367180beb327ab9d00f964f6d91da06450b0855cbbb09187bcdb02de5"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c15070ebf11b8b7fd1bfff7217e9324963c82dbdf6182ff7050519e350e7ad9f"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c4c99f98fc3a1835af8179dcc9013f93594d0670e2fa80c83aa36346ee763d2"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3fb765362688821404ad6cf86772fc54993ec11577cd5a92ac44b4c2ba52155b"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:dced27917823df984fe0c80a5c4ad75cf58df0fbfae890bc08004cd3888922a2"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a66bcdf19c1a523e41b8e9d53d0cedbfbac2e93c649a2e9502cb26c014d0980c"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ecd26be9f112c4f96718290c10f4caea6cc798459a3a76636b817a0ed7874e42"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:3f70fd716855cd3b855316b226a1ac8bdb3caf4f7ea96edcccc6f484217c9597"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:17a866d61259c7de1bdadef418a37755050ddb4b922df8b356503234fff7932c"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-win32.whl", hash = "sha256:548eefad783ed787b38cb6f9a574bd8664468cc76d1538215d510a3cd41406cb"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:45f053a0ece92c734d874861ffe6e3cc92150e32136dd59ab1fb070575189c97"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bc791ec3fd0c4309a753f95bb6c749ef0d8ea3aea91f07ee1cf06b7b02118f2f"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0c8c61fb505c7dad1d251c284e712d4e0372cef3b067f7ddf82a7fa82e1e9a93"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2c092be3885a1b7899cd85ce24acedc1034199d6fca1483fa2c3a35c86e43041"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c2000c54c395d9e5e44c99dc7c20a64dc371f777faf8bae4919ad3e99ce5253e"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4cb50a0335382aac15c31b61d8531bc9bb657cfd848b1d7158009472189f3d62"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c30187840d36d0ba2893bc3271a36a517a717f9fd383a98e2697ee890a37c273"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe81b35c33772e56f4b6cf62cf4aedc1762ef7162a31e6ac7fe5e40d0149eb67"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0bf89afcbcf4d1bb2652f6580e5e55a840fdf87384f6063c4a4f0c95e378656"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:06cf46bdff72f58645434d467bf5228080801298fbba19fe268a01b4534467f5"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:3c66df3f41abee950d6638adc7eac4730a306b022570f71dd0bd6ba53503ab57"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:cd805513198304026bd379d1d516afbf6c3c13f4382134a2c526b8b854da1c2e"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:9505dc359edb6a330efcd2be825fdb73ee3e628d9010597aa1aee5aa63442e97"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:31445f38053476a0c4e6d12b047b08ced81e2c7c712e5a1ad97bc913256f91b2"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-win32.whl", hash = "sha256:bd28b31730f0e982ace8663d108e01199098432a30a4c410d06fe08fdb9e93f4"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:555fe186da0068d3354cdf4bbcbc609b0ecae4d04c921cc13e209eece7720727"}, - {file = "charset_normalizer-3.3.1-py3-none-any.whl", hash = "sha256:800561453acdecedaac137bf09cd719c7a440b6800ec182f077bb8e7025fb708"}, + {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]] @@ -790,14 +778,14 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc [[package]] name = "filelock" -version = "3.13.0" +version = "3.13.1" description = "A platform independent file lock." category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "filelock-3.13.0-py3-none-any.whl", hash = "sha256:a552f4fde758f4eab33191e9548f671970f8b06d436d31388c9aa1e5861a710f"}, - {file = "filelock-3.13.0.tar.gz", hash = "sha256:63c6052c82a1a24c873a549fbd39a26982e8f35a3016da231ead11a5be9dad44"}, + {file = "filelock-3.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"}, + {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"}, ] [package.extras] @@ -910,6 +898,18 @@ files = [ {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, ] +[[package]] +name = "imagesize" +version = "1.4.1" +description = "Getting image size from png/jpeg/jpeg2000/gif file" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, + {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, +] + [[package]] name = "iniconfig" version = "2.0.0" @@ -958,43 +958,41 @@ test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio" [[package]] name = "ipython" -version = "8.16.1" +version = "8.17.2" description = "IPython: Productive Interactive Computing" category = "dev" optional = false python-versions = ">=3.9" files = [ - {file = "ipython-8.16.1-py3-none-any.whl", hash = "sha256:0852469d4d579d9cd613c220af7bf0c9cc251813e12be647cb9d463939db9b1e"}, - {file = "ipython-8.16.1.tar.gz", hash = "sha256:ad52f58fca8f9f848e256c629eff888efc0528c12fe0f8ec14f33205f23ef938"}, + {file = "ipython-8.17.2-py3-none-any.whl", hash = "sha256:1e4d1d666a023e3c93585ba0d8e962867f7a111af322efff6b9c58062b3e5444"}, + {file = "ipython-8.17.2.tar.gz", hash = "sha256:126bb57e1895594bb0d91ea3090bbd39384f6fe87c3d57fd558d0670f50339bb"}, ] [package.dependencies] appnope = {version = "*", markers = "sys_platform == \"darwin\""} -backcall = "*" colorama = {version = "*", markers = "sys_platform == \"win32\""} decorator = "*" exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} jedi = ">=0.16" matplotlib-inline = "*" pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} -pickleshare = "*" prompt-toolkit = ">=3.0.30,<3.0.37 || >3.0.37,<3.1.0" pygments = ">=2.4.0" stack-data = "*" traitlets = ">=5" [package.extras] -all = ["black", "curio", "docrepr", "exceptiongroup", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.21)", "pandas", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"] +all = ["black", "curio", "docrepr", "exceptiongroup", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.22)", "pandas", "pickleshare", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio (<0.22)", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"] black = ["black"] -doc = ["docrepr", "exceptiongroup", "ipykernel", "matplotlib", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "typing-extensions"] +doc = ["docrepr", "exceptiongroup", "ipykernel", "matplotlib", "pickleshare", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio (<0.22)", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "typing-extensions"] kernel = ["ipykernel"] nbconvert = ["nbconvert"] nbformat = ["nbformat"] notebook = ["ipywidgets", "notebook"] parallel = ["ipyparallel"] qtconsole = ["qtconsole"] -test = ["pytest (<7.1)", "pytest-asyncio", "testpath"] -test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pandas", "pytest (<7.1)", "pytest-asyncio", "testpath", "trio"] +test = ["pickleshare", "pytest (<7.1)", "pytest-asyncio (<0.22)", "testpath"] +test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.22)", "pandas", "pickleshare", "pytest (<7.1)", "pytest-asyncio (<0.22)", "testpath", "trio"] [[package]] name = "ipython-genutils" @@ -1130,14 +1128,14 @@ files = [ [[package]] name = "jsonschema" -version = "4.19.1" +version = "4.19.2" description = "An implementation of JSON Schema validation for Python" category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema-4.19.1-py3-none-any.whl", hash = "sha256:cd5f1f9ed9444e554b38ba003af06c0a8c2868131e56bfbef0550fb450c0330e"}, - {file = "jsonschema-4.19.1.tar.gz", hash = "sha256:ec84cc37cfa703ef7cd4928db24f9cb31428a5d0fa77747b8b51a847458e0bbf"}, + {file = "jsonschema-4.19.2-py3-none-any.whl", hash = "sha256:eee9e502c788e89cb166d4d37f43084e3b64ab405c795c03d343a4dbc2c810fc"}, + {file = "jsonschema-4.19.2.tar.gz", hash = "sha256:c9ff4d7447eed9592c23a12ccee508baf0dd0d59650615e847feb6cdca74f392"}, ] [package.dependencies] @@ -1207,7 +1205,7 @@ files = [ ] [package.dependencies] -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" python-dateutil = ">=2.8.2" pyzmq = ">=23.0" tornado = ">=6.2" @@ -1244,14 +1242,14 @@ test = ["flaky", "pexpect", "pytest"] [[package]] name = "jupyter-core" -version = "5.4.0" +version = "5.5.0" description = "Jupyter core package. A base package on which Jupyter projects rely." category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_core-5.4.0-py3-none-any.whl", hash = "sha256:66e252f675ac04dcf2feb6ed4afb3cd7f68cf92f483607522dc251f32d471571"}, - {file = "jupyter_core-5.4.0.tar.gz", hash = "sha256:e4b98344bb94ee2e3e6c4519a97d001656009f9cb2b7f2baf15b3c205770011d"}, + {file = "jupyter_core-5.5.0-py3-none-any.whl", hash = "sha256:e11e02cd8ae0a9de5c6c44abf5727df9f2581055afe00b22183f621ba3585805"}, + {file = "jupyter_core-5.5.0.tar.gz", hash = "sha256:880b86053bf298a8724994f95e99b99130659022a4f7f45f563084b6223861d3"}, ] [package.dependencies] @@ -1260,7 +1258,7 @@ pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_ traitlets = ">=5.3" [package.extras] -docs = ["myst-parser", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] [[package]] @@ -1363,14 +1361,14 @@ test = ["coverage", "jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-cov", [[package]] name = "jupyterlab" -version = "4.0.7" +version = "4.0.8" description = "JupyterLab computational environment" category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "jupyterlab-4.0.7-py3-none-any.whl", hash = "sha256:08683045117cc495531fdb39c22ababb9aaac6977a45e67cfad20046564c9c7c"}, - {file = "jupyterlab-4.0.7.tar.gz", hash = "sha256:48792efd9f962b2bcda1f87d72168ff122c288b1d97d32109e4a11b33dc862be"}, + {file = "jupyterlab-4.0.8-py3-none-any.whl", hash = "sha256:2ff5aa2a51eb21df241d6011c236e88bd1ff9a5dbb75bebc54472f9c18bfffa4"}, + {file = "jupyterlab-4.0.8.tar.gz", hash = "sha256:c4fe93f977bcc987bd395d7fae5ab02e0c042bf4e0f7c95196f3e2e578c2fb3a"}, ] [package.dependencies] @@ -1388,7 +1386,7 @@ tornado = ">=6.2.0" traitlets = "*" [package.extras] -dev = ["black[jupyter] (==23.7.0)", "build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.0.286)"] +dev = ["black[jupyter] (==23.10.1)", "build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.0.292)"] docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-tornasync", "sphinx (>=1.8,<7.2.0)", "sphinx-copybutton"] docs-screenshots = ["altair (==5.0.1)", "ipython (==8.14.0)", "ipywidgets (==8.0.6)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.0.post0)", "matplotlib (==3.7.1)", "nbconvert (>=7.0.0)", "pandas (==2.0.2)", "scipy (==1.10.1)", "vega-datasets (==0.9.0)"] test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter (>=0.5.3)", "pytest-timeout", "pytest-tornasync", "requests", "requests-cache", "virtualenv"] @@ -1710,14 +1708,14 @@ test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>= [[package]] name = "nbconvert" -version = "7.9.2" +version = "7.10.0" description = "Converting Jupyter Notebooks" category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "nbconvert-7.9.2-py3-none-any.whl", hash = "sha256:39fe4b8bdd1b0104fdd86fc8a43a9077ba64c720bda4c6132690d917a0a154ee"}, - {file = "nbconvert-7.9.2.tar.gz", hash = "sha256:e56cc7588acc4f93e2bb5a34ec69028e4941797b2bfaf6462f18a41d1cc258c9"}, + {file = "nbconvert-7.10.0-py3-none-any.whl", hash = "sha256:8cf1d95e569730f136feb85e4bba25bdcf3a63fefb122d854ddff6771c0ac933"}, + {file = "nbconvert-7.10.0.tar.gz", hash = "sha256:4bedff08848626be544de193b7594d98a048073f392178008ff4f171f5e21d26"}, ] [package.dependencies] @@ -2132,18 +2130,6 @@ files = [ [package.dependencies] ptyprocess = ">=0.5" -[[package]] -name = "pickleshare" -version = "0.7.5" -description = "Tiny 'shelve'-like database with concurrency support" -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, - {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, -] - [[package]] name = "platformdirs" version = "3.11.0" @@ -2197,14 +2183,14 @@ virtualenv = ">=20.10.0" [[package]] name = "prometheus-client" -version = "0.17.1" +version = "0.18.0" description = "Python client for the Prometheus monitoring system." category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "prometheus_client-0.17.1-py3-none-any.whl", hash = "sha256:e537f37160f6807b8202a6fc4764cdd19bac5480ddd3e0d463c3002b34462101"}, - {file = "prometheus_client-0.17.1.tar.gz", hash = "sha256:21e674f39831ae3f8acde238afd9a27a37d0d2fb5a28ea094f0ce25d2cbf2091"}, + {file = "prometheus_client-0.18.0-py3-none-any.whl", hash = "sha256:8de3ae2755f890826f4b6479e5571d4f74ac17a81345fe69a6778fdb92579184"}, + {file = "prometheus_client-0.18.0.tar.gz", hash = "sha256:35f7a8c22139e2bb7ca5a698e92d38145bc8dc74c1c0bf56f25cca886a764e17"}, ] [package.extras] @@ -2367,7 +2353,7 @@ astroid = ">=3.0.1,<=3.1.0-dev0" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} dill = [ {version = ">=0.2", markers = "python_version < \"3.11\""}, - {version = ">=0.3.6", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, + {version = ">=0.3.6", markers = "python_version >= \"3.11\""}, {version = ">=0.3.7", markers = "python_version >= \"3.12\""}, ] isort = ">=4.2.5,<6" @@ -2831,123 +2817,123 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] name = "rpds-py" -version = "0.10.6" +version = "0.12.0" description = "Python bindings to Rust's persistent data structures (rpds)" category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "rpds_py-0.10.6-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:6bdc11f9623870d75692cc33c59804b5a18d7b8a4b79ef0b00b773a27397d1f6"}, - {file = "rpds_py-0.10.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:26857f0f44f0e791f4a266595a7a09d21f6b589580ee0585f330aaccccb836e3"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7f5e15c953ace2e8dde9824bdab4bec50adb91a5663df08d7d994240ae6fa31"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:61fa268da6e2e1cd350739bb61011121fa550aa2545762e3dc02ea177ee4de35"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c48f3fbc3e92c7dd6681a258d22f23adc2eb183c8cb1557d2fcc5a024e80b094"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0503c5b681566e8b722fe8c4c47cce5c7a51f6935d5c7012c4aefe952a35eed"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:734c41f9f57cc28658d98270d3436dba65bed0cfc730d115b290e970150c540d"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a5d7ed104d158c0042a6a73799cf0eb576dfd5fc1ace9c47996e52320c37cb7c"}, - {file = "rpds_py-0.10.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e3df0bc35e746cce42579826b89579d13fd27c3d5319a6afca9893a9b784ff1b"}, - {file = "rpds_py-0.10.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:73e0a78a9b843b8c2128028864901f55190401ba38aae685350cf69b98d9f7c9"}, - {file = "rpds_py-0.10.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5ed505ec6305abd2c2c9586a7b04fbd4baf42d4d684a9c12ec6110deefe2a063"}, - {file = "rpds_py-0.10.6-cp310-none-win32.whl", hash = "sha256:d97dd44683802000277bbf142fd9f6b271746b4846d0acaf0cefa6b2eaf2a7ad"}, - {file = "rpds_py-0.10.6-cp310-none-win_amd64.whl", hash = "sha256:b455492cab07107bfe8711e20cd920cc96003e0da3c1f91297235b1603d2aca7"}, - {file = "rpds_py-0.10.6-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:e8cdd52744f680346ff8c1ecdad5f4d11117e1724d4f4e1874f3a67598821069"}, - {file = "rpds_py-0.10.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:66414dafe4326bca200e165c2e789976cab2587ec71beb80f59f4796b786a238"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc435d059f926fdc5b05822b1be4ff2a3a040f3ae0a7bbbe672babb468944722"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8e7f2219cb72474571974d29a191714d822e58be1eb171f229732bc6fdedf0ac"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3953c6926a63f8ea5514644b7afb42659b505ece4183fdaaa8f61d978754349e"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2bb2e4826be25e72013916eecd3d30f66fd076110de09f0e750163b416500721"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bf347b495b197992efc81a7408e9a83b931b2f056728529956a4d0858608b80"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:102eac53bb0bf0f9a275b438e6cf6904904908562a1463a6fc3323cf47d7a532"}, - {file = "rpds_py-0.10.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:40f93086eef235623aa14dbddef1b9fb4b22b99454cb39a8d2e04c994fb9868c"}, - {file = "rpds_py-0.10.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e22260a4741a0e7a206e175232867b48a16e0401ef5bce3c67ca5b9705879066"}, - {file = "rpds_py-0.10.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f4e56860a5af16a0fcfa070a0a20c42fbb2012eed1eb5ceeddcc7f8079214281"}, - {file = "rpds_py-0.10.6-cp311-none-win32.whl", hash = "sha256:0774a46b38e70fdde0c6ded8d6d73115a7c39d7839a164cc833f170bbf539116"}, - {file = "rpds_py-0.10.6-cp311-none-win_amd64.whl", hash = "sha256:4a5ee600477b918ab345209eddafde9f91c0acd931f3776369585a1c55b04c57"}, - {file = "rpds_py-0.10.6-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:5ee97c683eaface61d38ec9a489e353d36444cdebb128a27fe486a291647aff6"}, - {file = "rpds_py-0.10.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0713631d6e2d6c316c2f7b9320a34f44abb644fc487b77161d1724d883662e31"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5a53f5998b4bbff1cb2e967e66ab2addc67326a274567697379dd1e326bded7"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6a555ae3d2e61118a9d3e549737bb4a56ff0cec88a22bd1dfcad5b4e04759175"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:945eb4b6bb8144909b203a88a35e0a03d22b57aefb06c9b26c6e16d72e5eb0f0"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:52c215eb46307c25f9fd2771cac8135d14b11a92ae48d17968eda5aa9aaf5071"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1b3cd23d905589cb205710b3988fc8f46d4a198cf12862887b09d7aaa6bf9b9"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:64ccc28683666672d7c166ed465c09cee36e306c156e787acef3c0c62f90da5a"}, - {file = "rpds_py-0.10.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:516a611a2de12fbea70c78271e558f725c660ce38e0006f75139ba337d56b1f6"}, - {file = "rpds_py-0.10.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9ff93d3aedef11f9c4540cf347f8bb135dd9323a2fc705633d83210d464c579d"}, - {file = "rpds_py-0.10.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d858532212f0650be12b6042ff4378dc2efbb7792a286bee4489eaa7ba010586"}, - {file = "rpds_py-0.10.6-cp312-none-win32.whl", hash = "sha256:3c4eff26eddac49d52697a98ea01b0246e44ca82ab09354e94aae8823e8bda02"}, - {file = "rpds_py-0.10.6-cp312-none-win_amd64.whl", hash = "sha256:150eec465dbc9cbca943c8e557a21afdcf9bab8aaabf386c44b794c2f94143d2"}, - {file = "rpds_py-0.10.6-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:cf693eb4a08eccc1a1b636e4392322582db2a47470d52e824b25eca7a3977b53"}, - {file = "rpds_py-0.10.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4134aa2342f9b2ab6c33d5c172e40f9ef802c61bb9ca30d21782f6e035ed0043"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e782379c2028a3611285a795b89b99a52722946d19fc06f002f8b53e3ea26ea9"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2f6da6d842195fddc1cd34c3da8a40f6e99e4a113918faa5e60bf132f917c247"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4a9fe992887ac68256c930a2011255bae0bf5ec837475bc6f7edd7c8dfa254e"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b788276a3c114e9f51e257f2a6f544c32c02dab4aa7a5816b96444e3f9ffc336"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:caa1afc70a02645809c744eefb7d6ee8fef7e2fad170ffdeacca267fd2674f13"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bddd4f91eede9ca5275e70479ed3656e76c8cdaaa1b354e544cbcf94c6fc8ac4"}, - {file = "rpds_py-0.10.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:775049dfa63fb58293990fc59473e659fcafd953bba1d00fc5f0631a8fd61977"}, - {file = "rpds_py-0.10.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:c6c45a2d2b68c51fe3d9352733fe048291e483376c94f7723458cfd7b473136b"}, - {file = "rpds_py-0.10.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0699ab6b8c98df998c3eacf51a3b25864ca93dab157abe358af46dc95ecd9801"}, - {file = "rpds_py-0.10.6-cp38-none-win32.whl", hash = "sha256:ebdab79f42c5961682654b851f3f0fc68e6cc7cd8727c2ac4ffff955154123c1"}, - {file = "rpds_py-0.10.6-cp38-none-win_amd64.whl", hash = "sha256:24656dc36f866c33856baa3ab309da0b6a60f37d25d14be916bd3e79d9f3afcf"}, - {file = "rpds_py-0.10.6-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:0898173249141ee99ffcd45e3829abe7bcee47d941af7434ccbf97717df020e5"}, - {file = "rpds_py-0.10.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9e9184fa6c52a74a5521e3e87badbf9692549c0fcced47443585876fcc47e469"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5752b761902cd15073a527b51de76bbae63d938dc7c5c4ad1e7d8df10e765138"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:99a57006b4ec39dbfb3ed67e5b27192792ffb0553206a107e4aadb39c5004cd5"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09586f51a215d17efdb3a5f090d7cbf1633b7f3708f60a044757a5d48a83b393"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e225a6a14ecf44499aadea165299092ab0cba918bb9ccd9304eab1138844490b"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2039f8d545f20c4e52713eea51a275e62153ee96c8035a32b2abb772b6fc9e5"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:34ad87a831940521d462ac11f1774edf867c34172010f5390b2f06b85dcc6014"}, - {file = "rpds_py-0.10.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dcdc88b6b01015da066da3fb76545e8bb9a6880a5ebf89e0f0b2e3ca557b3ab7"}, - {file = "rpds_py-0.10.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:25860ed5c4e7f5e10c496ea78af46ae8d8468e0be745bd233bab9ca99bfd2647"}, - {file = "rpds_py-0.10.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7854a207ef77319ec457c1eb79c361b48807d252d94348305db4f4b62f40f7f3"}, - {file = "rpds_py-0.10.6-cp39-none-win32.whl", hash = "sha256:e6fcc026a3f27c1282c7ed24b7fcac82cdd70a0e84cc848c0841a3ab1e3dea2d"}, - {file = "rpds_py-0.10.6-cp39-none-win_amd64.whl", hash = "sha256:e98c4c07ee4c4b3acf787e91b27688409d918212dfd34c872201273fdd5a0e18"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:68fe9199184c18d997d2e4293b34327c0009a78599ce703e15cd9a0f47349bba"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:3339eca941568ed52d9ad0f1b8eb9fe0958fa245381747cecf2e9a78a5539c42"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a360cfd0881d36c6dc271992ce1eda65dba5e9368575663de993eeb4523d895f"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:031f76fc87644a234883b51145e43985aa2d0c19b063e91d44379cd2786144f8"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f36a9d751f86455dc5278517e8b65580eeee37d61606183897f122c9e51cef3"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:052a832078943d2b2627aea0d19381f607fe331cc0eb5df01991268253af8417"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:023574366002bf1bd751ebaf3e580aef4a468b3d3c216d2f3f7e16fdabd885ed"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:defa2c0c68734f4a82028c26bcc85e6b92cced99866af118cd6a89b734ad8e0d"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:879fb24304ead6b62dbe5034e7b644b71def53c70e19363f3c3be2705c17a3b4"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:53c43e10d398e365da2d4cc0bcaf0854b79b4c50ee9689652cdc72948e86f487"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:3777cc9dea0e6c464e4b24760664bd8831738cc582c1d8aacf1c3f546bef3f65"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:40578a6469e5d1df71b006936ce95804edb5df47b520c69cf5af264d462f2cbb"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:cf71343646756a072b85f228d35b1d7407da1669a3de3cf47f8bbafe0c8183a4"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10f32b53f424fc75ff7b713b2edb286fdbfc94bf16317890260a81c2c00385dc"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:81de24a1c51cfb32e1fbf018ab0bdbc79c04c035986526f76c33e3f9e0f3356c"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac17044876e64a8ea20ab132080ddc73b895b4abe9976e263b0e30ee5be7b9c2"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5e8a78bd4879bff82daef48c14d5d4057f6856149094848c3ed0ecaf49f5aec2"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78ca33811e1d95cac8c2e49cb86c0fb71f4d8409d8cbea0cb495b6dbddb30a55"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c63c3ef43f0b3fb00571cff6c3967cc261c0ebd14a0a134a12e83bdb8f49f21f"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:7fde6d0e00b2fd0dbbb40c0eeec463ef147819f23725eda58105ba9ca48744f4"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:79edd779cfc46b2e15b0830eecd8b4b93f1a96649bcb502453df471a54ce7977"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9164ec8010327ab9af931d7ccd12ab8d8b5dc2f4c6a16cbdd9d087861eaaefa1"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:d29ddefeab1791e3c751e0189d5f4b3dbc0bbe033b06e9c333dca1f99e1d523e"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:30adb75ecd7c2a52f5e76af50644b3e0b5ba036321c390b8e7ec1bb2a16dd43c"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd609fafdcdde6e67a139898196698af37438b035b25ad63704fd9097d9a3482"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6eef672de005736a6efd565577101277db6057f65640a813de6c2707dc69f396"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6cf4393c7b41abbf07c88eb83e8af5013606b1cdb7f6bc96b1b3536b53a574b8"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ad857f42831e5b8d41a32437f88d86ead6c191455a3499c4b6d15e007936d4cf"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d7360573f1e046cb3b0dceeb8864025aa78d98be4bb69f067ec1c40a9e2d9df"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d08f63561c8a695afec4975fae445245386d645e3e446e6f260e81663bfd2e38"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:f0f17f2ce0f3529177a5fff5525204fad7b43dd437d017dd0317f2746773443d"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:442626328600bde1d09dc3bb00434f5374948838ce75c41a52152615689f9403"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e9616f5bd2595f7f4a04b67039d890348ab826e943a9bfdbe4938d0eba606971"}, - {file = "rpds_py-0.10.6.tar.gz", hash = "sha256:4ce5a708d65a8dbf3748d2474b580d606b1b9f91b5c6ab2a316e0b0cf7a4ba50"}, + {file = "rpds_py-0.12.0-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:c694bee70ece3b232df4678448fdda245fd3b1bb4ba481fb6cd20e13bb784c46"}, + {file = "rpds_py-0.12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:30e5ce9f501fb1f970e4a59098028cf20676dee64fc496d55c33e04bbbee097d"}, + {file = "rpds_py-0.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d72a4315514e5a0b9837a086cb433b004eea630afb0cc129de76d77654a9606f"}, + {file = "rpds_py-0.12.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eebaf8c76c39604d52852366249ab807fe6f7a3ffb0dd5484b9944917244cdbe"}, + {file = "rpds_py-0.12.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a239303acb0315091d54c7ff36712dba24554993b9a93941cf301391d8a997ee"}, + {file = "rpds_py-0.12.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ced40cdbb6dd47a032725a038896cceae9ce267d340f59508b23537f05455431"}, + {file = "rpds_py-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c8c0226c71bd0ce9892eaf6afa77ae8f43a3d9313124a03df0b389c01f832de"}, + {file = "rpds_py-0.12.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b8e11715178f3608874508f08e990d3771e0b8c66c73eb4e183038d600a9b274"}, + {file = "rpds_py-0.12.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5210a0018c7e09c75fa788648617ebba861ae242944111d3079034e14498223f"}, + {file = "rpds_py-0.12.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:171d9a159f1b2f42a42a64a985e4ba46fc7268c78299272ceba970743a67ee50"}, + {file = "rpds_py-0.12.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:57ec6baec231bb19bb5fd5fc7bae21231860a1605174b11585660236627e390e"}, + {file = "rpds_py-0.12.0-cp310-none-win32.whl", hash = "sha256:7188ddc1a8887194f984fa4110d5a3d5b9b5cd35f6bafdff1b649049cbc0ce29"}, + {file = "rpds_py-0.12.0-cp310-none-win_amd64.whl", hash = "sha256:1e04581c6117ad9479b6cfae313e212fe0dfa226ac727755f0d539cd54792963"}, + {file = "rpds_py-0.12.0-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:0a38612d07a36138507d69646c470aedbfe2b75b43a4643f7bd8e51e52779624"}, + {file = "rpds_py-0.12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f12d69d568f5647ec503b64932874dade5a20255736c89936bf690951a5e79f5"}, + {file = "rpds_py-0.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f8a1d990dc198a6c68ec3d9a637ba1ce489b38cbfb65440a27901afbc5df575"}, + {file = "rpds_py-0.12.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8c567c664fc2f44130a20edac73e0a867f8e012bf7370276f15c6adc3586c37c"}, + {file = "rpds_py-0.12.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0e9e976e0dbed4f51c56db10831c9623d0fd67aac02853fe5476262e5a22acb7"}, + {file = "rpds_py-0.12.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:efddca2d02254a52078c35cadad34762adbae3ff01c6b0c7787b59d038b63e0d"}, + {file = "rpds_py-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9e7f29c00577aff6b318681e730a519b235af292732a149337f6aaa4d1c5e31"}, + {file = "rpds_py-0.12.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:389c0e38358fdc4e38e9995e7291269a3aead7acfcf8942010ee7bc5baee091c"}, + {file = "rpds_py-0.12.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:33ab498f9ac30598b6406e2be1b45fd231195b83d948ebd4bd77f337cb6a2bff"}, + {file = "rpds_py-0.12.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d56b1cd606ba4cedd64bb43479d56580e147c6ef3f5d1c5e64203a1adab784a2"}, + {file = "rpds_py-0.12.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1fa73ed22c40a1bec98d7c93b5659cd35abcfa5a0a95ce876b91adbda170537c"}, + {file = "rpds_py-0.12.0-cp311-none-win32.whl", hash = "sha256:dbc25baa6abb205766fb8606f8263b02c3503a55957fcb4576a6bb0a59d37d10"}, + {file = "rpds_py-0.12.0-cp311-none-win_amd64.whl", hash = "sha256:c6b52b7028b547866c2413f614ee306c2d4eafdd444b1ff656bf3295bf1484aa"}, + {file = "rpds_py-0.12.0-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:9620650c364c01ed5b497dcae7c3d4b948daeae6e1883ae185fef1c927b6b534"}, + {file = "rpds_py-0.12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2124f9e645a94ab7c853bc0a3644e0ca8ffbe5bb2d72db49aef8f9ec1c285733"}, + {file = "rpds_py-0.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:281c8b219d4f4b3581b918b816764098d04964915b2f272d1476654143801aa2"}, + {file = "rpds_py-0.12.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:27ccc93c7457ef890b0dd31564d2a05e1aca330623c942b7e818e9e7c2669ee4"}, + {file = "rpds_py-0.12.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d1c562a9bb72244fa767d1c1ab55ca1d92dd5f7c4d77878fee5483a22ffac808"}, + {file = "rpds_py-0.12.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e57919c32ee295a2fca458bb73e4b20b05c115627f96f95a10f9f5acbd61172d"}, + {file = "rpds_py-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa35ad36440aaf1ac8332b4a4a433d4acd28f1613f0d480995f5cfd3580e90b7"}, + {file = "rpds_py-0.12.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e6aea5c0eb5b0faf52c7b5c4a47c8bb64437173be97227c819ffa31801fa4e34"}, + {file = "rpds_py-0.12.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:81cf9d306c04df1b45971c13167dc3bad625808aa01281d55f3cf852dde0e206"}, + {file = "rpds_py-0.12.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:08e6e7ff286254016b945e1ab632ee843e43d45e40683b66dd12b73791366dd1"}, + {file = "rpds_py-0.12.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4d0a675a7acbbc16179188d8c6d0afb8628604fc1241faf41007255957335a0b"}, + {file = "rpds_py-0.12.0-cp312-none-win32.whl", hash = "sha256:b2287c09482949e0ca0c0eb68b2aca6cf57f8af8c6dfd29dcd3bc45f17b57978"}, + {file = "rpds_py-0.12.0-cp312-none-win_amd64.whl", hash = "sha256:8015835494b21aa7abd3b43fdea0614ee35ef6b03db7ecba9beb58eadf01c24f"}, + {file = "rpds_py-0.12.0-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:6174d6ad6b58a6bcf67afbbf1723420a53d06c4b89f4c50763d6fa0a6ac9afd2"}, + {file = "rpds_py-0.12.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a689e1ded7137552bea36305a7a16ad2b40be511740b80748d3140614993db98"}, + {file = "rpds_py-0.12.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f45321224144c25a62052035ce96cbcf264667bcb0d81823b1bbc22c4addd194"}, + {file = "rpds_py-0.12.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:aa32205358a76bf578854bf31698a86dc8b2cb591fd1d79a833283f4a403f04b"}, + {file = "rpds_py-0.12.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91bd2b7cf0f4d252eec8b7046fa6a43cee17e8acdfc00eaa8b3dbf2f9a59d061"}, + {file = "rpds_py-0.12.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3acadbab8b59f63b87b518e09c4c64b142e7286b9ca7a208107d6f9f4c393c5c"}, + {file = "rpds_py-0.12.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:429349a510da82c85431f0f3e66212d83efe9fd2850f50f339341b6532c62fe4"}, + {file = "rpds_py-0.12.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:05942656cb2cb4989cd50ced52df16be94d344eae5097e8583966a1d27da73a5"}, + {file = "rpds_py-0.12.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:0c5441b7626c29dbd54a3f6f3713ec8e956b009f419ffdaaa3c80eaf98ddb523"}, + {file = "rpds_py-0.12.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:b6b0e17d39d21698185097652c611f9cf30f7c56ccec189789920e3e7f1cee56"}, + {file = "rpds_py-0.12.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:3b7a64d43e2a1fa2dd46b678e00cabd9a49ebb123b339ce799204c44a593ae1c"}, + {file = "rpds_py-0.12.0-cp38-none-win32.whl", hash = "sha256:e5bbe011a2cea9060fef1bb3d668a2fd8432b8888e6d92e74c9c794d3c101595"}, + {file = "rpds_py-0.12.0-cp38-none-win_amd64.whl", hash = "sha256:bec29b801b4adbf388314c0d050e851d53762ab424af22657021ce4b6eb41543"}, + {file = "rpds_py-0.12.0-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:1096ca0bf2d3426cbe79d4ccc91dc5aaa73629b08ea2d8467375fad8447ce11a"}, + {file = "rpds_py-0.12.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48aa98987d54a46e13e6954880056c204700c65616af4395d1f0639eba11764b"}, + {file = "rpds_py-0.12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7979d90ee2190d000129598c2b0c82f13053dba432b94e45e68253b09bb1f0f6"}, + {file = "rpds_py-0.12.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:88857060b690a57d2ea8569bca58758143c8faa4639fb17d745ce60ff84c867e"}, + {file = "rpds_py-0.12.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4eb74d44776b0fb0782560ea84d986dffec8ddd94947f383eba2284b0f32e35e"}, + {file = "rpds_py-0.12.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f62581d7e884dd01ee1707b7c21148f61f2febb7de092ae2f108743fcbef5985"}, + {file = "rpds_py-0.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f5dcb658d597410bb7c967c1d24eaf9377b0d621358cbe9d2ff804e5dd12e81"}, + {file = "rpds_py-0.12.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9bf9acce44e967a5103fcd820fc7580c7b0ab8583eec4e2051aec560f7b31a63"}, + {file = "rpds_py-0.12.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:240687b5be0f91fbde4936a329c9b7589d9259742766f74de575e1b2046575e4"}, + {file = "rpds_py-0.12.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:25740fb56e8bd37692ed380e15ec734be44d7c71974d8993f452b4527814601e"}, + {file = "rpds_py-0.12.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a54917b7e9cd3a67e429a630e237a90b096e0ba18897bfb99ee8bd1068a5fea0"}, + {file = "rpds_py-0.12.0-cp39-none-win32.whl", hash = "sha256:b92aafcfab3d41580d54aca35a8057341f1cfc7c9af9e8bdfc652f83a20ced31"}, + {file = "rpds_py-0.12.0-cp39-none-win_amd64.whl", hash = "sha256:cd316dbcc74c76266ba94eb021b0cc090b97cca122f50bd7a845f587ff4bf03f"}, + {file = "rpds_py-0.12.0-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:0853da3d5e9bc6a07b2486054a410b7b03f34046c123c6561b535bb48cc509e1"}, + {file = "rpds_py-0.12.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:cb41ad20064e18a900dd427d7cf41cfaec83bcd1184001f3d91a1f76b3fcea4e"}, + {file = "rpds_py-0.12.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b710bf7e7ae61957d5c4026b486be593ed3ec3dca3e5be15e0f6d8cf5d0a4990"}, + {file = "rpds_py-0.12.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a952ae3eb460c6712388ac2ec706d24b0e651b9396d90c9a9e0a69eb27737fdc"}, + {file = "rpds_py-0.12.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0bedd91ae1dd142a4dc15970ed2c729ff6c73f33a40fa84ed0cdbf55de87c777"}, + {file = "rpds_py-0.12.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:761531076df51309075133a6bc1db02d98ec7f66e22b064b1d513bc909f29743"}, + {file = "rpds_py-0.12.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2baa6be130e8a00b6cbb9f18a33611ec150b4537f8563bddadb54c1b74b8193"}, + {file = "rpds_py-0.12.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f05450fa1cd7c525c0b9d1a7916e595d3041ac0afbed2ff6926e5afb6a781b7f"}, + {file = "rpds_py-0.12.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:81c4d1a3a564775c44732b94135d06e33417e829ff25226c164664f4a1046213"}, + {file = "rpds_py-0.12.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:e888be685fa42d8b8a3d3911d5604d14db87538aa7d0b29b1a7ea80d354c732d"}, + {file = "rpds_py-0.12.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:6f8d7fe73d1816eeb5378409adc658f9525ecbfaf9e1ede1e2d67a338b0c7348"}, + {file = "rpds_py-0.12.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:0831d3ecdea22e4559cc1793f22e77067c9d8c451d55ae6a75bf1d116a8e7f42"}, + {file = "rpds_py-0.12.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:513ccbf7420c30e283c25c82d5a8f439d625a838d3ba69e79a110c260c46813f"}, + {file = "rpds_py-0.12.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:301bd744a1adaa2f6a5e06c98f1ac2b6f8dc31a5c23b838f862d65e32fca0d4b"}, + {file = "rpds_py-0.12.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f8832a4f83d4782a8f5a7b831c47e8ffe164e43c2c148c8160ed9a6d630bc02a"}, + {file = "rpds_py-0.12.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4b2416ed743ec5debcf61e1242e012652a4348de14ecc7df3512da072b074440"}, + {file = "rpds_py-0.12.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35585a8cb5917161f42c2104567bb83a1d96194095fc54a543113ed5df9fa436"}, + {file = "rpds_py-0.12.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d389ff1e95b6e46ebedccf7fd1fadd10559add595ac6a7c2ea730268325f832c"}, + {file = "rpds_py-0.12.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9b007c2444705a2dc4a525964fd4dd28c3320b19b3410da6517cab28716f27d3"}, + {file = "rpds_py-0.12.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:188912b22b6c8225f4c4ffa020a2baa6ad8fabb3c141a12dbe6edbb34e7f1425"}, + {file = "rpds_py-0.12.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:1b4cf9ab9a0ae0cb122685209806d3f1dcb63b9fccdf1424fb42a129dc8c2faa"}, + {file = "rpds_py-0.12.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:2d34a5450a402b00d20aeb7632489ffa2556ca7b26f4a63c35f6fccae1977427"}, + {file = "rpds_py-0.12.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:466030a42724780794dea71eb32db83cc51214d66ab3fb3156edd88b9c8f0d78"}, + {file = "rpds_py-0.12.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:68172622a5a57deb079a2c78511c40f91193548e8ab342c31e8cb0764d362459"}, + {file = "rpds_py-0.12.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54cdfcda59251b9c2f87a05d038c2ae02121219a04d4a1e6fc345794295bdc07"}, + {file = "rpds_py-0.12.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6b75b912a0baa033350367a8a07a8b2d44fd5b90c890bfbd063a8a5f945f644b"}, + {file = "rpds_py-0.12.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:47aeceb4363851d17f63069318ba5721ae695d9da55d599b4d6fb31508595278"}, + {file = "rpds_py-0.12.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0525847f83f506aa1e28eb2057b696fe38217e12931c8b1b02198cfe6975e142"}, + {file = "rpds_py-0.12.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efbe0b5e0fd078ed7b005faa0170da4f72666360f66f0bb2d7f73526ecfd99f9"}, + {file = "rpds_py-0.12.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0fadfdda275c838cba5102c7f90a20f2abd7727bf8f4a2b654a5b617529c5c18"}, + {file = "rpds_py-0.12.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:56dd500411d03c5e9927a1eb55621e906837a83b02350a9dc401247d0353717c"}, + {file = "rpds_py-0.12.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:6915fc9fa6b3ec3569566832e1bb03bd801c12cea030200e68663b9a87974e76"}, + {file = "rpds_py-0.12.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:5f1519b080d8ce0a814f17ad9fb49fb3a1d4d7ce5891f5c85fc38631ca3a8dc4"}, + {file = "rpds_py-0.12.0.tar.gz", hash = "sha256:7036316cc26b93e401cedd781a579be606dad174829e6ad9e9c5a0da6e036f80"}, ] [[package]] name = "ruamel-yaml" -version = "0.18.3" +version = "0.18.5" description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" category = "dev" optional = false -python-versions = ">=3" +python-versions = ">=3.7" files = [ - {file = "ruamel.yaml-0.18.3-py3-none-any.whl", hash = "sha256:b5d119e1f9678cf90b58f64bbd2a4e78af76860ae39fab3e73323e622b462df9"}, - {file = "ruamel.yaml-0.18.3.tar.gz", hash = "sha256:36dbbe90390d977f957436570d2bd540bfd600e6ec5a1ea42bcdb9fc7963d802"}, + {file = "ruamel.yaml-0.18.5-py3-none-any.whl", hash = "sha256:a013ac02f99a69cdd6277d9664689eb1acba07069f912823177c5eced21a6ada"}, + {file = "ruamel.yaml-0.18.5.tar.gz", hash = "sha256:61917e3a35a569c1133a8f772e1226961bf5a1198bea7e23f06a0841dea1ab0e"}, ] [package.dependencies] @@ -3139,7 +3125,6 @@ babel = ">=2.9" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} docutils = ">=0.18.1,<0.21" imagesize = ">=1.3" -importlib-metadata = {version = ">=4.8", markers = "python_version < \"3.10\""} Jinja2 = ">=3.0" packaging = ">=21.0" Pygments = ">=2.14" @@ -3406,14 +3391,14 @@ files = [ [[package]] name = "tomlkit" -version = "0.12.1" +version = "0.12.2" description = "Style preserving TOML library" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "tomlkit-0.12.1-py3-none-any.whl", hash = "sha256:712cbd236609acc6a3e2e97253dfc52d4c2082982a88f61b640ecf0817eab899"}, - {file = "tomlkit-0.12.1.tar.gz", hash = "sha256:38e1ff8edb991273ec9f6181244a6a391ac30e9f5098e7535640ea6be97a7c86"}, + {file = "tomlkit-0.12.2-py3-none-any.whl", hash = "sha256:eeea7ac7563faeab0a1ed8fe12c2e5a51c61f933f2502f7e9db0241a65163ad0"}, + {file = "tomlkit-0.12.2.tar.gz", hash = "sha256:df32fab589a81f0d7dc525a4267b6d7a64ee99619cbd1eeb0fae32c1dd426977"}, ] [[package]] @@ -3439,14 +3424,14 @@ files = [ [[package]] name = "traitlets" -version = "5.12.0" +version = "5.13.0" description = "Traitlets Python configuration system" category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "traitlets-5.12.0-py3-none-any.whl", hash = "sha256:81539f07f7aebcde2e4b5ab76727f53eabf18ad155c6ed7979a681411602fa47"}, - {file = "traitlets-5.12.0.tar.gz", hash = "sha256:833273bf645d8ce31dcb613c56999e2e055b1ffe6d09168a164bcd91c36d5d35"}, + {file = "traitlets-5.13.0-py3-none-any.whl", hash = "sha256:baf991e61542da48fe8aef8b779a9ea0aa38d8a54166ee250d5af5ecf4486619"}, + {file = "traitlets-5.13.0.tar.gz", hash = "sha256:9b232b9430c8f57288c1024b34a8f0251ddcc47268927367a0dd3eeaca40deb5"}, ] [package.extras] @@ -3545,14 +3530,14 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess [[package]] name = "wcwidth" -version = "0.2.8" +version = "0.2.9" description = "Measures the displayed width of unicode strings in a terminal" category = "dev" optional = false python-versions = "*" files = [ - {file = "wcwidth-0.2.8-py2.py3-none-any.whl", hash = "sha256:77f719e01648ed600dfa5402c347481c0992263b81a027344f3e1ba25493a704"}, - {file = "wcwidth-0.2.8.tar.gz", hash = "sha256:8705c569999ffbb4f6a87c6d1b80f324bd6db952f5eb0b95bc07517f4c1813d4"}, + {file = "wcwidth-0.2.9-py2.py3-none-any.whl", hash = "sha256:9a929bd8380f6cd9571a968a9c8f4353ca58d7cd812a4822bba831f8d685b223"}, + {file = "wcwidth-0.2.9.tar.gz", hash = "sha256:a675d1a4a2d24ef67096a04b85b02deeecd8e226f57b5e3a72dbb9ed99d27da8"}, ] [[package]] @@ -3615,4 +3600,4 @@ files = [ [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "d9b55b106b5b3edae9285d4be14a504629d795fc12cb760a2ebee088f6892784" +content-hash = "c1b81205f4f2570c4d9c4dc312092c1411e277611d0fe2c994a746ca6589f8a2" From ddf9356672840a8c04fb516dfc82c4790d750d6c Mon Sep 17 00:00:00 2001 From: MarcoHuebner Date: Sun, 5 Nov 2023 12:36:27 +0100 Subject: [PATCH 23/27] Import package version to Sphinx docu #10 --- docs/source/conf.py | 4 +++- tests/test_version.py | 5 ----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 0edd59f..dfe871b 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -1,3 +1,5 @@ +import subprocess + # Configuration file for the Sphinx documentation builder. # # For the full list of built-in configuration values, see the documentation: @@ -18,7 +20,7 @@ "Marco Hübner ", ] maintainers = ["Michael Aydinbas "] -release = "0.1.4" # hard-coded, since pre-commit hook fails to import pystatis +release = subprocess.check_output(["poetry", "version"], text=True).strip().split()[-1] version = release diff --git a/tests/test_version.py b/tests/test_version.py index 61ed518..2bb5737 100644 --- a/tests/test_version.py +++ b/tests/test_version.py @@ -1,6 +1,5 @@ import subprocess -from docs.source.conf import release from pystatis import __version__ @@ -11,7 +10,3 @@ def test_version(): .strip() .split()[-1] ) - - -def test_docs_version(): - assert __version__ == release From 44a2ff1e9279d9c02118c333efd746fde9f9e71c Mon Sep 17 00:00:00 2001 From: MarcoHuebner Date: Sun, 5 Nov 2023 12:46:42 +0100 Subject: [PATCH 24/27] Manually fix black formatting issue #10 --- docs/source/conf.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index dfe871b..f0548f1 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -20,7 +20,11 @@ "Marco Hübner ", ] maintainers = ["Michael Aydinbas "] -release = subprocess.check_output(["poetry", "version"], text=True).strip().split()[-1] +release = ( + subprocess.check_output(["poetry", "version"], text=True) + .strip() + .split()[-1] +) version = release From 45d0b1dab1667909086ea3b657710d4f6c08dada Mon Sep 17 00:00:00 2001 From: MarcoHuebner Date: Sun, 5 Nov 2023 13:03:30 +0100 Subject: [PATCH 25/27] With auto-deploy working, decrease retention days #10 --- .github/workflows/run-tests.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index 157eb7a..4a80535 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -110,3 +110,4 @@ jobs: with: name: docs path: docs/build/html/* + retention-days: 5 From 4f5533eb8238870c59590c1b22336c3bea18ee5a Mon Sep 17 00:00:00 2001 From: MarcoHuebner Date: Sun, 5 Nov 2023 13:06:27 +0100 Subject: [PATCH 26/27] Update readme and Sphinx header references #10 --- README.md | 9 +++++---- docs/source/install.rst | 2 +- docs/source/start.rst | 6 +++--- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index fc4f74f..f5bfc40 100644 --- a/README.md +++ b/README.md @@ -121,13 +121,15 @@ clear_cache() # deletes the complete cache ### Full documentation -The full documentation currently is not hosted online and has to be build locally. This can is achieved by running +The full documentation of the main and dev branches are hosted via [GitHub Pages (main)](https://correlaid.github.io/pystatis/) and [GitHub Pages (dev)](https://correlaid.github.io/pystatis/dev/). It can also be built locally by running ```bash -cd docs && make html +cd docs && make clean && make html ``` -from the project root directory. Besides providing parsed docstrings of the individual package modules, the full documentation currently mirrors most of the readme, like installation and usage. More information on how to use sphinx is provided [here](https://docs.readthedocs.io/en/stable/intro/getting-started-with-sphinx.html). +from the project root directory. Besides providing parsed docstrings of the individual package modules, the full documentation currently mirrors most of the readme, like installation and usage. The mirroring crucially relies on the names of the section headers in the ReadMe, so change them with care! + +More information on how to use sphinx is provided [here](https://docs.readthedocs.io/en/stable/intro/getting-started-with-sphinx.html). ## License @@ -137,7 +139,6 @@ Distributed under the MIT License. See `LICENSE.txt` for more information. A few ideas we should implement in the maybe-near future: -- Host the documentation online, e.g. on [readthedocs](https://readthedocs.org/) - Improve Table parsing. Right now, the parsing is really simple and we should align the cube and table format so that the data frame for tables is more convenient to use. - Mechanism to download data that is newer than the cached version. Right now, once data is cached, it is always retrieved from cache no matter if there is a newer version online. However, this could be quite challenging as the GENESIS API is really bad in providing a good and consistent field for the last update datetime. - Improve Table and Cube metadata so the user can look up the variables contained in the dataset and for each variable the values that this variable can have. diff --git a/docs/source/install.rst b/docs/source/install.rst index 0fbd813..489e751 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -4,4 +4,4 @@ Installation .. include:: ../../README.md :parser: myst_parser.sphinx_ :start-after: ## Installation - :end-before: ## Get started + :end-before: ## Getting started diff --git a/docs/source/start.rst b/docs/source/start.rst index dbc4fed..20d5297 100644 --- a/docs/source/start.rst +++ b/docs/source/start.rst @@ -1,7 +1,7 @@ -Get started -=========== +Getting started +=============== .. include:: ../../README.md :parser: myst_parser.sphinx_ - :start-after: ## Get started + :start-after: ## Getting started :end-before: ## How to use From 1d303c12b159ba81899c0dfc16c86457e3775363 Mon Sep 17 00:00:00 2001 From: MarcoHuebner Date: Sun, 5 Nov 2023 13:18:46 +0100 Subject: [PATCH 27/27] Fix deploy to update files on the remote #10 --- .github/workflows/deploy-docs.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/deploy-docs.yaml b/.github/workflows/deploy-docs.yaml index 3469481..3a5649b 100644 --- a/.github/workflows/deploy-docs.yaml +++ b/.github/workflows/deploy-docs.yaml @@ -51,7 +51,6 @@ jobs: deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} publish_dir: ./docs/build/html publish_branch: gh-pages - keep_files: true - name: Deploy docs dev uses: peaceiris/actions-gh-pages@v3 if: github.ref == 'refs/heads/dev' || (github.event_name == 'pull_request' && github.base_ref == 'dev') @@ -60,4 +59,3 @@ jobs: publish_dir: ./docs/build/html destination_dir: dev publish_branch: gh-pages - keep_files: true