From 07e210b64ab5e1a19e4cc6d6f13d7a4aef02ca9a Mon Sep 17 00:00:00 2001 From: Guillaume Bournique Date: Thu, 19 Dec 2024 23:05:49 +0100 Subject: [PATCH] feat: upgrade to python3.12 and remove requirements.txt files in favour of poetry --- .github/images/ci.png | Bin 0 -> 132899 bytes Makefile | 38 +- README.md | 9 +- api.Dockerfile | 11 +- dashboard.Dockerfile | 10 +- docs/HINTS.md | 85 --- docs/TASK.md | 64 -- poetry.lock | 330 ++++----- portfolio_analytics/api/requirements.txt | 653 ------------------ .../common/data/market_data/fx.snappy.parquet | Bin 102622 -> 102675 bytes .../dashboard/requirements.txt | 439 ------------ pyproject.toml | 2 +- requirements.txt | 206 ------ 13 files changed, 169 insertions(+), 1678 deletions(-) create mode 100644 .github/images/ci.png delete mode 100644 docs/HINTS.md delete mode 100644 docs/TASK.md delete mode 100644 portfolio_analytics/api/requirements.txt delete mode 100644 portfolio_analytics/dashboard/requirements.txt delete mode 100644 requirements.txt diff --git a/.github/images/ci.png b/.github/images/ci.png new file mode 100644 index 0000000000000000000000000000000000000000..5444fae6512de2228eb705c54d1f72dc355cb288 GIT binary patch literal 132899 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

XR#F|4)Ra*k3kY{51<6-x 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 z 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 OOyji9&rek^-u@pbz0~>u literal 0 HcmV?d00001 diff --git a/Makefile b/Makefile index 291d746..3bfa645 100644 --- a/Makefile +++ b/Makefile @@ -6,32 +6,20 @@ DOCKER_COMPOSE := $(shell which docker-compose > /dev/null 2>&1 && echo docker-c # Development -install-poetry: - python3.10 -m pip install poetry -U - -generate-lockfiles: - python3.10 -m poetry lock - python3.10 -m poetry export --with=api,dashboard,dev -f requirements.txt --without-hashes -o requirements.txt - python3.10 -m poetry export --with=api -f requirements.txt -o portfolio_analytics/api/requirements.txt - python3.10 -m poetry export --with=dashboard -f requirements.txt -o portfolio_analytics/dashboard/requirements.txt - -install-deps: - python3.10 -m pip install -e . -r requirements.txt - fmt: - python3.10 -m autoflake --remove-all-unused-imports --remove-unused-variables --in-place --recursive $(codebase) $(tests_dir) - python3.10 -m isort --profile black --line-length 89 $(codebase) $(tests_dir) - python3.10 -m black --line-length 89 --preview --enable-unstable-feature=string_processing $(codebase) $(tests_dir) - python3.10 -m ruff check --fix $(codebase) $(tests_dir) + python3.12 -m autoflake --remove-all-unused-imports --remove-unused-variables --in-place --recursive $(codebase) $(tests_dir) + python3.12 -m isort --profile black --line-length 89 $(codebase) $(tests_dir) + python3.12 -m black --line-length 89 --preview --enable-unstable-feature=string_processing $(codebase) $(tests_dir) + python3.12 -m ruff check --fix $(codebase) $(tests_dir)2 lint: - python3.10 -m autoflake --check --quiet --recursive $(codebase) - python3.10 -m isort --profile black --line-length 89 --check-only $(codebase) - python3.10 -m black --line-length 89 --check $(codebase) - python3.10 -m ruff check $(codebase) - python3.10 -m mypy $(codebase) - python3.10 -m flake8 --max-line-length 89 --max-doc-length 89 $(codebase) - python3.10 -m pylint --fail-under=9.9 $(codebase) + python3.12 -m autoflake --check --quiet --recursive $(codebase) + python3.12 -m isort --profile black --line-length 89 --check-only $(codebase) + python3.12 -m black --line-length 89 --check $(codebase) + python3.12 -m ruff check $(codebase) + python3.12 -m mypy $(codebase) + python3.12 -m flake8 --max-line-length 89 --max-doc-length 89 $(codebase) + python3.12 -m pylint --fail-under=9.9 $(codebase) clean: find . -type f \( -name "*.pyc" -o -name ".DS_Store" -o -name "coverage.xml" \) -delete @@ -41,10 +29,10 @@ clean: # Unit Testing test: - python3.10 -m pytest --cov=$(codebase) -m "not integration" --cov-report html --cov-report xml + python3.12 -m pytest --cov=$(codebase) -m "not integration" --cov-report html --cov-report xml test-coverage: test - cd htmlcov && python3.10 -m http.server + cd htmlcov && python3.12 -m http.server # Docker build diff --git a/README.md b/README.md index 78a3f2e..977a3f8 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Portfolio Analytics [![CI/CD](https://github.com/gbourniq/portfolio-analytics/actions/workflows/ci.yml/badge.svg)](https://github.com/gbourniq/portfolio-analytics/actions/workflows/ci.yml) -[![Python Version](https://img.shields.io/badge/python-3.10-blue.svg)](https://www.python.org/downloads/) +[![Python Version](https://img.shields.io/badge/python-3.12-blue.svg)](https://www.python.org/downloads/) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Pylint Score](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/gbourniq/b149841cbef1088a8bf7671efee16734/raw/pylint.txt)](https://github.com/gbourniq/portfolio-analytics/actions) [![Code Coverage](https://codecov.io/gh/gbourniq/portfolio-analytics/graph/badge.svg?token=O5LIL4YV9L)](https://codecov.io/gh/gbourniq/portfolio-analytics) @@ -55,7 +55,8 @@ make up 1. Install dependencies: ```bash -python3.10 -m pip install -e . -r requirements.txt +python3.12 -m pip install poetry -U +poetry install ``` 2. Start services: @@ -65,6 +66,10 @@ python portfolio_analytics/dashboard/dashboard_main.py python portfolio_analytics/api/api_main.py ``` +### CI + +![CI](.github/images/ci.png) + ## Future Improvements ### Data Pipeline diff --git a/api.Dockerfile b/api.Dockerfile index a5d9511..53d41d5 100644 --- a/api.Dockerfile +++ b/api.Dockerfile @@ -1,13 +1,11 @@ -FROM python:3.10-slim +FROM python:3.12-slim # Set environment variables ENV PYTHONUNBUFFERED=1 \ - PYTHONDONTWRITEBYTECODE=1 \ PYTHONPATH=/app/portfolio_analytics # Add labels LABEL maintainer="guillaume.bournique@gmail.com" \ -version="1.0" \ description="Portfolio Analytics API" # Install curl for healthcheck @@ -19,11 +17,12 @@ RUN groupadd -r appuser && useradd -r -g appuser appuser WORKDIR /app # Install dependencies -COPY portfolio_analytics/api/requirements.txt ./requirements.txt -RUN pip install -r requirements.txt +COPY pyproject.toml ./pyproject.toml +RUN python3.12 -m pip install poetry==1.8.5 && \ + poetry config virtualenvs.create false && \ + poetry install --with=api # Copy source code to the container -COPY pyproject.toml ./pyproject.toml COPY portfolio_analytics/common/utils portfolio_analytics/common/utils COPY portfolio_analytics/api portfolio_analytics/api diff --git a/dashboard.Dockerfile b/dashboard.Dockerfile index 64e4847..1b58abf 100644 --- a/dashboard.Dockerfile +++ b/dashboard.Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.10-slim +FROM python:3.12-slim # Set environment variables ENV PYTHONUNBUFFERED=1 \ @@ -7,7 +7,6 @@ ENV PYTHONUNBUFFERED=1 \ # Add labels LABEL maintainer="guillaume.bournique@gmail.com" \ -version="1.0" \ description="Portfolio Analytics Dashboard" # Install curl for healthcheck @@ -19,11 +18,12 @@ RUN groupadd -r appuser && useradd -r -g appuser appuser WORKDIR /app # Install dependencies -COPY portfolio_analytics/dashboard/requirements.txt ./requirements.txt -RUN pip install -r requirements.txt +COPY pyproject.toml ./pyproject.toml +RUN python3.12 -m pip install poetry==1.8.5 && \ + poetry config virtualenvs.create false && \ + poetry install --with=dashboard # Copy source code to the container -COPY pyproject.toml ./pyproject.toml COPY portfolio_analytics/common/utils portfolio_analytics/common/utils COPY portfolio_analytics/dashboard portfolio_analytics/dashboard diff --git a/docs/HINTS.md b/docs/HINTS.md deleted file mode 100644 index 14c75c6..0000000 --- a/docs/HINTS.md +++ /dev/null @@ -1,85 +0,0 @@ -# Hints - -## General - -* You can get market data using the Yfinance package https://pypi.org/project/yfinance/ -* This useful gist gets all data for the S&P500 https://gist.github.com/quantra-go-algo/ac5180bf164a7894f70969fa563627b2 -* Streamlit (https://streamlit.io/) and Dash (https://dash.plotly.com/) are popular frameworks for build data driven - apps in Python -* Python code structure guidance can be found at https://docs.python-guide.org/writing/structure/ -* There is some useful information about creating a tool - at https://dataheadhunters.com/academy/how-to-create-a-stock-market-analysis-tool-in-python-for-finance/ - -## Portfolio Analysis - -All examples use the [provided portfolio](input/portfolio.csv). - -### Positions v. Trades - -The values are the **end of day position** for the stocks, not the trades. - -``` -Date,AAPL -30/08/2024,0 -03/09/2024,0 -04/09/2024,13 -05/09/2024,24 -06/09/2024,0 -``` - -So this means the trades were. - -``` -Date,AAPL -30/08/2024,0 -03/09/2024,0 -04/09/2024,+13 -05/09/2024,+11 -06/09/2024,-24 -``` - -### Execution Price - -Normally the execution price would be provided as part of the portfolio. For this example please use the Mid-price for -the day in question. - -For AAPL the High, Low and calculated Mid-price would be. - -``` -Date High Low Mid -2024-08-30 230.146792 227.230003 228.688398 -2024-09-03 228.748326 220.926929 224.837628 -2024-09-04 221.536270 217.240993 219.388632 -2024-09-05 225.232189 221.276549 223.254369 -2024-09-06 224.992472 219.528482 222.260477 -``` - -Thus, the trades with execution price would be. - -``` -Date,AAPL -30/08/2024,0 @ 228.688398 -03/09/2024,0 @ 224.837628 -04/09/2024,+13 @ 219.388632 -05/09/2024,+11 @ 223.254369 -06/09/2024,-24 @ 222.260477 -``` - -### Calculating P&L - -As this a technical task rather than a quant/accounting task we will take a naive approach to calculating the P&L. - -All you need to do is calculate the profit made from the hypothetical trades with the Mid-price. - -For our example the total P&L would be \$26.41. - -``` -13 * $219.388632 = $2852.04 -11 * $223.254369 = $2455.80 --24 * $222.260477 = -$5334.25 - -$2852.04 + $2455.80 + -$5334.25 = -$26.41 -``` - -You need to flip the sign on the result to get the P&L or you could invert earlier to represent the cash flow in your -portfolio. You spend cash when buying a stock and gain cash when selling it. diff --git a/docs/TASK.md b/docs/TASK.md deleted file mode 100644 index 8c079ef..0000000 --- a/docs/TASK.md +++ /dev/null @@ -1,64 +0,0 @@ -# RGC Data Engineering Task - -## Task - -Build a dashboard that acts as a portfolio analyser. - -Please use whatever tools you are familiar and comfortable with but bear in mind the notes in the [Implementation](TASK.md#implementation) section below. - -You will find some hints and guidance in the [HINTS](HINTS.md) file. - -## Inputs - -The portfolio analyser will accept a csv file containing the portfolio as a timeseries. - -The portfolio will be for S&P500 stocks and long only, no shorts. It will be tested with the portfolio found in the [input folder](input/portfolio.csv). - -The timeseries will be indexed on date, the stock tickers are the columns and the **closing position** for that date is the value. - -e.g. - -``` -Date,AAPL,ABBV,ALL,BA,BIIB,COP,DE,DVN,EL,EQT,GOOGL,HII,INTC,KDP,MSFT,NEE,NFLX,PAYC,PFE,QRVO,ROP,SMCI,TSLA,UAL -2024-08-30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2024-09-03,0,0,0,0,0,32,0,9,20,0,0,22,0,0,0,0,3,0,2,0,23,0,0,0 -2024-09-04,13,0,0,0,32,0,11,0,0,0,18,11,0,0,0,0,0,30,0,0,49,0,0,0 -2024-09-05,24,0,4,0,54,0,28,0,18,0,51,0,36,0,0,16,21,0,0,0,88,0,0,0 -2024-09-06,0,27,0,0,65,0,66,3,39,0,90,0,83,0,0,0,64,3,0,0,80,0,0,0 -``` - -## Outputs - -Show the P&L of the portfolio, a graph of the P&L over time and a table containing the top 5 winners and bottom 5 losers for the portfolio. - -## Implementation - -Please ensure your code works as is, we will make some effort to rectify any issues but the expectation is your code will run on a Windows 11 machine running Python 3.10. - -If special steps are required to run the dashboard, please document them (e.g. change directory to run the dashboard). - -Functionality is more important than looks, we would prefer a functioning dashboard that doesn't look brilliant instead of a flashy dashboard that doesn't work. - -Comments and documentation in the code are optional - if your code is clear and concise none should be required. - -## Assessment Criteria - -* Project structure - your code and any resources are structured in a relatively standard way -* Python knowledge - you demonstrate a good knowledge of the Python programming language and the package ecosystem -* Error handling - how does your code handle non-existent stocks or malformed data -* Pandas knowledge - good use of pandas when processing data, vectorise operations as much as possible, knowledge of multi-indexes and timeseries functions -* Data structure - importing data and processing it for use in a sensible structure -* Performance - caching of data, efficient data processing operations -* User experience - as mentioned above, the look of the dashboard is not important but a user should still be able to use it in a relatively intuitive manner - -## Extra Credit - -These considerations go above and beyond the basic assessment criteria and will be noted when reviewing your solution. - -* Different file formats to upload - Excel, parquet -* Containerisation - Dockerfile present, builds and runs -* Currency localisation - convert the data to pounds, euros, other currencies -* Additional indices - FTSE, EuroStoxx -* Execution price provided - Allow the user to provide the execution price the stock was traded at -* Additional metrics/analysis - What other information would be of interest to someone analysing their portfolio -* API - add an api endpoint that can be used to submit the portfolio and get results diff --git a/poetry.lock b/poetry.lock index 6fe46c1..75ab682 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. [[package]] name = "annotated-types" @@ -23,7 +23,6 @@ files = [ ] [package.dependencies] -exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} idna = ">=2.8" sniffio = ">=1.1" typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} @@ -131,9 +130,6 @@ files = [ {file = "astroid-3.3.6.tar.gz", hash = "sha256:6aaea045f938c735ead292204afdb977a36e989522b7833ef6fea94de743f442"}, ] -[package.dependencies] -typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} - [[package]] name = "asttokens" version = "3.0.0" @@ -160,9 +156,6 @@ files = [ {file = "async_lru-2.0.4-py3-none-any.whl", hash = "sha256:ff02944ce3c288c5be660c42dbcca0742b32c3b279d6dceda655190240b99224"}, ] -[package.dependencies] -typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} - [[package]] name = "attrs" version = "24.3.0" @@ -195,7 +188,6 @@ files = [ [package.dependencies] pyflakes = ">=3.0.0" -tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} [[package]] name = "babel" @@ -211,21 +203,6 @@ files = [ [package.extras] dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] -[[package]] -name = "backports-tarfile" -version = "1.2.0" -description = "Backport of CPython tarfile module" -optional = false -python-versions = ">=3.8" -files = [ - {file = "backports.tarfile-1.2.0-py3-none-any.whl", hash = "sha256:77e284d754527b01fb1e6fa8a1afe577858ebe4e9dad8919e34c862cb399bc34"}, - {file = "backports_tarfile-1.2.0.tar.gz", hash = "sha256:d75e02c268746e1b8144c278978b6e98e85de6ad16f8e4b0844a154557eca991"}, -] - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["jaraco.test", "pytest (!=8.0.*)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)"] - [[package]] name = "beautifulsoup4" version = "4.12.3" @@ -284,8 +261,6 @@ mypy-extensions = ">=0.4.3" packaging = ">=22.0" pathspec = ">=0.9.0" platformdirs = ">=2" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} [package.extras] colorama = ["colorama (>=0.4.3)"] @@ -725,9 +700,6 @@ files = [ {file = "coverage-7.6.9.tar.gz", hash = "sha256:4a8d8977b0c6ef5aeadcb644da9e69ae0dcfe66ec7f368c89c72e058bd71164d"}, ] -[package.dependencies] -tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} - [package.extras] toml = ["tomli"] @@ -1007,20 +979,6 @@ files = [ {file = "et_xmlfile-2.0.0.tar.gz", hash = "sha256:dab3f4764309081ce75662649be815c4c9081e88f0837825f90fd28317d4da54"}, ] -[[package]] -name = "exceptiongroup" -version = "1.2.2" -description = "Backport of PEP 654 (exception groups)" -optional = false -python-versions = ">=3.7" -files = [ - {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, - {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, -] - -[package.extras] -test = ["pytest (>=6)"] - [[package]] name = "executing" version = "2.1.0" @@ -1475,7 +1433,6 @@ files = [ [package.dependencies] 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\" and sys_platform != \"emscripten\""} @@ -1483,7 +1440,6 @@ prompt_toolkit = ">=3.0.41,<3.1.0" pygments = ">=2.4.0" stack_data = "*" traitlets = ">=5.13.0" -typing_extensions = {version = ">=4.6", markers = "python_version < \"3.12\""} [package.extras] all = ["ipython[black,doc,kernel,matplotlib,nbconvert,nbformat,notebook,parallel,qtconsole]", "ipython[test,test-extra]"] @@ -1588,9 +1544,6 @@ files = [ {file = "jaraco_context-6.0.1.tar.gz", hash = "sha256:9bae4ea555cf0b14938dc0aee7c9f32ed303aa20a3b73e7dc80111628792d1b3"}, ] -[package.dependencies] -"backports.tarfile" = {version = "*", markers = "python_version < \"3.12\""} - [package.extras] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] test = ["portend", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)"] @@ -1917,13 +1870,13 @@ test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (> [[package]] name = "jupyterlab" -version = "4.3.3" +version = "4.3.4" description = "JupyterLab computational environment" optional = false python-versions = ">=3.8" files = [ - {file = "jupyterlab-4.3.3-py3-none-any.whl", hash = "sha256:32a8fd30677e734ffcc3916a4758b9dab21b02015b668c60eb36f84357b7d4b1"}, - {file = "jupyterlab-4.3.3.tar.gz", hash = "sha256:76fa39e548fdac94dc1204af5956c556f54c785f70ee26aa47ea08eda4d5bbcd"}, + {file = "jupyterlab-4.3.4-py3-none-any.whl", hash = "sha256:b754c2601c5be6adf87cb5a1d8495d653ffb945f021939f77776acaa94dae952"}, + {file = "jupyterlab-4.3.4.tar.gz", hash = "sha256:f0bb9b09a04766e3423cccc2fc23169aa2ffedcdf8713e9e0fb33cac0b6859d0"}, ] [package.dependencies] @@ -1938,7 +1891,6 @@ jupyterlab-server = ">=2.27.1,<3" notebook-shim = ">=0.2" packaging = "*" setuptools = ">=40.8.0" -tomli = {version = ">=1.2.2", markers = "python_version < \"3.11\""} tornado = ">=6.2.0" traitlets = "*" @@ -2008,7 +1960,6 @@ files = [ ] [package.dependencies] -importlib-metadata = {version = ">=4.11.4", markers = "python_version < \"3.12\""} "jaraco.classes" = "*" "jaraco.context" = "*" "jaraco.functools" = "*" @@ -2558,7 +2509,6 @@ files = [ [package.dependencies] mypy-extensions = ">=1.0.0" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} typing-extensions = ">=4.6.0" [package.extras] @@ -2581,13 +2531,13 @@ files = [ [[package]] name = "nbclient" -version = "0.10.1" +version = "0.10.2" description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." optional = false -python-versions = ">=3.8.0" +python-versions = ">=3.9.0" files = [ - {file = "nbclient-0.10.1-py3-none-any.whl", hash = "sha256:949019b9240d66897e442888cfb618f69ef23dc71c01cb5fced8499c2cfc084d"}, - {file = "nbclient-0.10.1.tar.gz", hash = "sha256:3e93e348ab27e712acd46fccd809139e356eb9a31aab641d1a7991a6eb4e6f68"}, + {file = "nbclient-0.10.2-py3-none-any.whl", hash = "sha256:4ffee11e788b4a27fabeb7955547e4318a5298f34342a4bfd01f2e1faaeadc3d"}, + {file = "nbclient-0.10.2.tar.gz", hash = "sha256:90b7fc6b810630db87a6d0c2250b1f0ab4cf4d3c27a299b0cde78a4ed3fd9193"}, ] [package.dependencies] @@ -2598,8 +2548,8 @@ traitlets = ">=5.4" [package.extras] dev = ["pre-commit"] -docs = ["autodoc-traits", "flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "mock", "moto", "myst-parser", "nbconvert (>=7.0.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling", "testpath", "xmltodict"] -test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] +docs = ["autodoc-traits", "flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "mock", "moto", "myst-parser", "nbconvert (>=7.1.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling", "testpath", "xmltodict"] +test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.1.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] [[package]] name = "nbconvert" @@ -2895,7 +2845,7 @@ files = [ ] [package.dependencies] -numpy = {version = ">=1.22.4", markers = "python_version < \"3.11\""} +numpy = {version = ">=1.26.0", markers = "python_version >= \"3.12\""} python-dateutil = ">=2.8.2" pytz = ">=2020.1" tzdata = ">=2022.7" @@ -3197,32 +3147,32 @@ wcwidth = "*" [[package]] name = "psutil" -version = "6.1.0" +version = "6.1.1" description = "Cross-platform lib for process and system monitoring in Python." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ - {file = "psutil-6.1.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ff34df86226c0227c52f38b919213157588a678d049688eded74c76c8ba4a5d0"}, - {file = "psutil-6.1.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:c0e0c00aa18ca2d3b2b991643b799a15fc8f0563d2ebb6040f64ce8dc027b942"}, - {file = "psutil-6.1.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:000d1d1ebd634b4efb383f4034437384e44a6d455260aaee2eca1e9c1b55f047"}, - {file = "psutil-6.1.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:5cd2bcdc75b452ba2e10f0e8ecc0b57b827dd5d7aaffbc6821b2a9a242823a76"}, - {file = "psutil-6.1.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:045f00a43c737f960d273a83973b2511430d61f283a44c96bf13a6e829ba8fdc"}, - {file = "psutil-6.1.0-cp27-none-win32.whl", hash = "sha256:9118f27452b70bb1d9ab3198c1f626c2499384935aaf55388211ad982611407e"}, - {file = "psutil-6.1.0-cp27-none-win_amd64.whl", hash = "sha256:a8506f6119cff7015678e2bce904a4da21025cc70ad283a53b099e7620061d85"}, - {file = "psutil-6.1.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6e2dcd475ce8b80522e51d923d10c7871e45f20918e027ab682f94f1c6351688"}, - {file = "psutil-6.1.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0895b8414afafc526712c498bd9de2b063deaac4021a3b3c34566283464aff8e"}, - {file = "psutil-6.1.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9dcbfce5d89f1d1f2546a2090f4fcf87c7f669d1d90aacb7d7582addece9fb38"}, - {file = "psutil-6.1.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:498c6979f9c6637ebc3a73b3f87f9eb1ec24e1ce53a7c5173b8508981614a90b"}, - {file = "psutil-6.1.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d905186d647b16755a800e7263d43df08b790d709d575105d419f8b6ef65423a"}, - {file = "psutil-6.1.0-cp36-cp36m-win32.whl", hash = "sha256:6d3fbbc8d23fcdcb500d2c9f94e07b1342df8ed71b948a2649b5cb060a7c94ca"}, - {file = "psutil-6.1.0-cp36-cp36m-win_amd64.whl", hash = "sha256:1209036fbd0421afde505a4879dee3b2fd7b1e14fee81c0069807adcbbcca747"}, - {file = "psutil-6.1.0-cp37-abi3-win32.whl", hash = "sha256:1ad45a1f5d0b608253b11508f80940985d1d0c8f6111b5cb637533a0e6ddc13e"}, - {file = "psutil-6.1.0-cp37-abi3-win_amd64.whl", hash = "sha256:a8fb3752b491d246034fa4d279ff076501588ce8cbcdbb62c32fd7a377d996be"}, - {file = "psutil-6.1.0.tar.gz", hash = "sha256:353815f59a7f64cdaca1c0307ee13558a0512f6db064e92fe833784f08539c7a"}, + {file = "psutil-6.1.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:9ccc4316f24409159897799b83004cb1e24f9819b0dcf9c0b68bdcb6cefee6a8"}, + {file = "psutil-6.1.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ca9609c77ea3b8481ab005da74ed894035936223422dc591d6772b147421f777"}, + {file = "psutil-6.1.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:8df0178ba8a9e5bc84fed9cfa61d54601b371fbec5c8eebad27575f1e105c0d4"}, + {file = "psutil-6.1.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:1924e659d6c19c647e763e78670a05dbb7feaf44a0e9c94bf9e14dfc6ba50468"}, + {file = "psutil-6.1.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:018aeae2af92d943fdf1da6b58665124897cfc94faa2ca92098838f83e1b1bca"}, + {file = "psutil-6.1.1-cp27-none-win32.whl", hash = "sha256:6d4281f5bbca041e2292be3380ec56a9413b790579b8e593b1784499d0005dac"}, + {file = "psutil-6.1.1-cp27-none-win_amd64.whl", hash = "sha256:c777eb75bb33c47377c9af68f30e9f11bc78e0f07fbf907be4a5d70b2fe5f030"}, + {file = "psutil-6.1.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:fc0ed7fe2231a444fc219b9c42d0376e0a9a1a72f16c5cfa0f68d19f1a0663e8"}, + {file = "psutil-6.1.1-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0bdd4eab935276290ad3cb718e9809412895ca6b5b334f5a9111ee6d9aff9377"}, + {file = "psutil-6.1.1-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6e06c20c05fe95a3d7302d74e7097756d4ba1247975ad6905441ae1b5b66003"}, + {file = "psutil-6.1.1-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97f7cb9921fbec4904f522d972f0c0e1f4fabbdd4e0287813b21215074a0f160"}, + {file = "psutil-6.1.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33431e84fee02bc84ea36d9e2c4a6d395d479c9dd9bba2376c1f6ee8f3a4e0b3"}, + {file = "psutil-6.1.1-cp36-cp36m-win32.whl", hash = "sha256:384636b1a64b47814437d1173be1427a7c83681b17a450bfc309a1953e329603"}, + {file = "psutil-6.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:8be07491f6ebe1a693f17d4f11e69d0dc1811fa082736500f649f79df7735303"}, + {file = "psutil-6.1.1-cp37-abi3-win32.whl", hash = "sha256:eaa912e0b11848c4d9279a93d7e2783df352b082f40111e078388701fd479e53"}, + {file = "psutil-6.1.1-cp37-abi3-win_amd64.whl", hash = "sha256:f35cfccb065fff93529d2afb4a2e89e363fe63ca1e4a5da22b603a85833c2649"}, + {file = "psutil-6.1.1.tar.gz", hash = "sha256:cf8496728c18f2d0b45198f06895be52f36611711746b7f30c464b422b50e2f5"}, ] [package.extras] -dev = ["black", "check-manifest", "coverage", "packaging", "pylint", "pyperf", "pypinfo", "pytest-cov", "requests", "rstcheck", "ruff", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "virtualenv", "wheel"] +dev = ["abi3audit", "black", "check-manifest", "coverage", "packaging", "pylint", "pyperf", "pypinfo", "pytest-cov", "requests", "rstcheck", "ruff", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "virtualenv", "vulture", "wheel"] test = ["pytest", "pytest-xdist", "setuptools"] [[package]] @@ -3328,18 +3278,18 @@ files = [ [[package]] name = "pydantic" -version = "2.10.3" +version = "2.10.4" description = "Data validation using Python type hints" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic-2.10.3-py3-none-any.whl", hash = "sha256:be04d85bbc7b65651c5f8e6b9976ed9c6f41782a55524cef079a34a0bb82144d"}, - {file = "pydantic-2.10.3.tar.gz", hash = "sha256:cb5ac360ce894ceacd69c403187900a02c4b20b693a9dd1d643e1effab9eadf9"}, + {file = "pydantic-2.10.4-py3-none-any.whl", hash = "sha256:597e135ea68be3a37552fb524bc7d0d66dcf93d395acd93a00682f1efcb8ee3d"}, + {file = "pydantic-2.10.4.tar.gz", hash = "sha256:82f12e9723da6de4fe2ba888b5971157b3be7ad914267dea8f05f82b28254f06"}, ] [package.dependencies] annotated-types = ">=0.6.0" -pydantic-core = "2.27.1" +pydantic-core = "2.27.2" typing-extensions = ">=4.12.2" [package.extras] @@ -3348,111 +3298,111 @@ timezone = ["tzdata"] [[package]] name = "pydantic-core" -version = "2.27.1" +version = "2.27.2" description = "Core functionality for Pydantic validation and serialization" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic_core-2.27.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:71a5e35c75c021aaf400ac048dacc855f000bdfed91614b4a726f7432f1f3d6a"}, - {file = "pydantic_core-2.27.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f82d068a2d6ecfc6e054726080af69a6764a10015467d7d7b9f66d6ed5afa23b"}, - {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:121ceb0e822f79163dd4699e4c54f5ad38b157084d97b34de8b232bcaad70278"}, - {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4603137322c18eaf2e06a4495f426aa8d8388940f3c457e7548145011bb68e05"}, - {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a33cd6ad9017bbeaa9ed78a2e0752c5e250eafb9534f308e7a5f7849b0b1bfb4"}, - {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15cc53a3179ba0fcefe1e3ae50beb2784dede4003ad2dfd24f81bba4b23a454f"}, - {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45d9c5eb9273aa50999ad6adc6be5e0ecea7e09dbd0d31bd0c65a55a2592ca08"}, - {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8bf7b66ce12a2ac52d16f776b31d16d91033150266eb796967a7e4621707e4f6"}, - {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:655d7dd86f26cb15ce8a431036f66ce0318648f8853d709b4167786ec2fa4807"}, - {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:5556470f1a2157031e676f776c2bc20acd34c1990ca5f7e56f1ebf938b9ab57c"}, - {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f69ed81ab24d5a3bd93861c8c4436f54afdf8e8cc421562b0c7504cf3be58206"}, - {file = "pydantic_core-2.27.1-cp310-none-win32.whl", hash = "sha256:f5a823165e6d04ccea61a9f0576f345f8ce40ed533013580e087bd4d7442b52c"}, - {file = "pydantic_core-2.27.1-cp310-none-win_amd64.whl", hash = "sha256:57866a76e0b3823e0b56692d1a0bf722bffb324839bb5b7226a7dbd6c9a40b17"}, - {file = "pydantic_core-2.27.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ac3b20653bdbe160febbea8aa6c079d3df19310d50ac314911ed8cc4eb7f8cb8"}, - {file = "pydantic_core-2.27.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a5a8e19d7c707c4cadb8c18f5f60c843052ae83c20fa7d44f41594c644a1d330"}, - {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f7059ca8d64fea7f238994c97d91f75965216bcbe5f695bb44f354893f11d52"}, - {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bed0f8a0eeea9fb72937ba118f9db0cb7e90773462af7962d382445f3005e5a4"}, - {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a3cb37038123447cf0f3ea4c74751f6a9d7afef0eb71aa07bf5f652b5e6a132c"}, - {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84286494f6c5d05243456e04223d5a9417d7f443c3b76065e75001beb26f88de"}, - {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acc07b2cfc5b835444b44a9956846b578d27beeacd4b52e45489e93276241025"}, - {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4fefee876e07a6e9aad7a8c8c9f85b0cdbe7df52b8a9552307b09050f7512c7e"}, - {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:258c57abf1188926c774a4c94dd29237e77eda19462e5bb901d88adcab6af919"}, - {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:35c14ac45fcfdf7167ca76cc80b2001205a8d5d16d80524e13508371fb8cdd9c"}, - {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d1b26e1dff225c31897696cab7d4f0a315d4c0d9e8666dbffdb28216f3b17fdc"}, - {file = "pydantic_core-2.27.1-cp311-none-win32.whl", hash = "sha256:2cdf7d86886bc6982354862204ae3b2f7f96f21a3eb0ba5ca0ac42c7b38598b9"}, - {file = "pydantic_core-2.27.1-cp311-none-win_amd64.whl", hash = "sha256:3af385b0cee8df3746c3f406f38bcbfdc9041b5c2d5ce3e5fc6637256e60bbc5"}, - {file = "pydantic_core-2.27.1-cp311-none-win_arm64.whl", hash = "sha256:81f2ec23ddc1b476ff96563f2e8d723830b06dceae348ce02914a37cb4e74b89"}, - {file = "pydantic_core-2.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9cbd94fc661d2bab2bc702cddd2d3370bbdcc4cd0f8f57488a81bcce90c7a54f"}, - {file = "pydantic_core-2.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5f8c4718cd44ec1580e180cb739713ecda2bdee1341084c1467802a417fe0f02"}, - {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15aae984e46de8d376df515f00450d1522077254ef6b7ce189b38ecee7c9677c"}, - {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ba5e3963344ff25fc8c40da90f44b0afca8cfd89d12964feb79ac1411a260ac"}, - {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:992cea5f4f3b29d6b4f7f1726ed8ee46c8331c6b4eed6db5b40134c6fe1768bb"}, - {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0325336f348dbee6550d129b1627cb8f5351a9dc91aad141ffb96d4937bd9529"}, - {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7597c07fbd11515f654d6ece3d0e4e5093edc30a436c63142d9a4b8e22f19c35"}, - {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3bbd5d8cc692616d5ef6fbbbd50dbec142c7e6ad9beb66b78a96e9c16729b089"}, - {file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:dc61505e73298a84a2f317255fcc72b710b72980f3a1f670447a21efc88f8381"}, - {file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:e1f735dc43da318cad19b4173dd1ffce1d84aafd6c9b782b3abc04a0d5a6f5bb"}, - {file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f4e5658dbffe8843a0f12366a4c2d1c316dbe09bb4dfbdc9d2d9cd6031de8aae"}, - {file = "pydantic_core-2.27.1-cp312-none-win32.whl", hash = "sha256:672ebbe820bb37988c4d136eca2652ee114992d5d41c7e4858cdd90ea94ffe5c"}, - {file = "pydantic_core-2.27.1-cp312-none-win_amd64.whl", hash = "sha256:66ff044fd0bb1768688aecbe28b6190f6e799349221fb0de0e6f4048eca14c16"}, - {file = "pydantic_core-2.27.1-cp312-none-win_arm64.whl", hash = "sha256:9a3b0793b1bbfd4146304e23d90045f2a9b5fd5823aa682665fbdaf2a6c28f3e"}, - {file = "pydantic_core-2.27.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f216dbce0e60e4d03e0c4353c7023b202d95cbaeff12e5fd2e82ea0a66905073"}, - {file = "pydantic_core-2.27.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a2e02889071850bbfd36b56fd6bc98945e23670773bc7a76657e90e6b6603c08"}, - {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42b0e23f119b2b456d07ca91b307ae167cc3f6c846a7b169fca5326e32fdc6cf"}, - {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:764be71193f87d460a03f1f7385a82e226639732214b402f9aa61f0d025f0737"}, - {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c00666a3bd2f84920a4e94434f5974d7bbc57e461318d6bb34ce9cdbbc1f6b2"}, - {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ccaa88b24eebc0f849ce0a4d09e8a408ec5a94afff395eb69baf868f5183107"}, - {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c65af9088ac534313e1963443d0ec360bb2b9cba6c2909478d22c2e363d98a51"}, - {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:206b5cf6f0c513baffaeae7bd817717140770c74528f3e4c3e1cec7871ddd61a"}, - {file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:062f60e512fc7fff8b8a9d680ff0ddaaef0193dba9fa83e679c0c5f5fbd018bc"}, - {file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:a0697803ed7d4af5e4c1adf1670af078f8fcab7a86350e969f454daf598c4960"}, - {file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:58ca98a950171f3151c603aeea9303ef6c235f692fe555e883591103da709b23"}, - {file = "pydantic_core-2.27.1-cp313-none-win32.whl", hash = "sha256:8065914ff79f7eab1599bd80406681f0ad08f8e47c880f17b416c9f8f7a26d05"}, - {file = "pydantic_core-2.27.1-cp313-none-win_amd64.whl", hash = "sha256:ba630d5e3db74c79300d9a5bdaaf6200172b107f263c98a0539eeecb857b2337"}, - {file = "pydantic_core-2.27.1-cp313-none-win_arm64.whl", hash = "sha256:45cf8588c066860b623cd11c4ba687f8d7175d5f7ef65f7129df8a394c502de5"}, - {file = "pydantic_core-2.27.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:5897bec80a09b4084aee23f9b73a9477a46c3304ad1d2d07acca19723fb1de62"}, - {file = "pydantic_core-2.27.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d0165ab2914379bd56908c02294ed8405c252250668ebcb438a55494c69f44ab"}, - {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b9af86e1d8e4cfc82c2022bfaa6f459381a50b94a29e95dcdda8442d6d83864"}, - {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f6c8a66741c5f5447e047ab0ba7a1c61d1e95580d64bce852e3df1f895c4067"}, - {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a42d6a8156ff78981f8aa56eb6394114e0dedb217cf8b729f438f643608cbcd"}, - {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:64c65f40b4cd8b0e049a8edde07e38b476da7e3aaebe63287c899d2cff253fa5"}, - {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdcf339322a3fae5cbd504edcefddd5a50d9ee00d968696846f089b4432cf78"}, - {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bf99c8404f008750c846cb4ac4667b798a9f7de673ff719d705d9b2d6de49c5f"}, - {file = "pydantic_core-2.27.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8f1edcea27918d748c7e5e4d917297b2a0ab80cad10f86631e488b7cddf76a36"}, - {file = "pydantic_core-2.27.1-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:159cac0a3d096f79ab6a44d77a961917219707e2a130739c64d4dd46281f5c2a"}, - {file = "pydantic_core-2.27.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:029d9757eb621cc6e1848fa0b0310310de7301057f623985698ed7ebb014391b"}, - {file = "pydantic_core-2.27.1-cp38-none-win32.whl", hash = "sha256:a28af0695a45f7060e6f9b7092558a928a28553366519f64083c63a44f70e618"}, - {file = "pydantic_core-2.27.1-cp38-none-win_amd64.whl", hash = "sha256:2d4567c850905d5eaaed2f7a404e61012a51caf288292e016360aa2b96ff38d4"}, - {file = "pydantic_core-2.27.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:e9386266798d64eeb19dd3677051f5705bf873e98e15897ddb7d76f477131967"}, - {file = "pydantic_core-2.27.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4228b5b646caa73f119b1ae756216b59cc6e2267201c27d3912b592c5e323b60"}, - {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b3dfe500de26c52abe0477dde16192ac39c98f05bf2d80e76102d394bd13854"}, - {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:aee66be87825cdf72ac64cb03ad4c15ffef4143dbf5c113f64a5ff4f81477bf9"}, - {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b748c44bb9f53031c8cbc99a8a061bc181c1000c60a30f55393b6e9c45cc5bd"}, - {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ca038c7f6a0afd0b2448941b6ef9d5e1949e999f9e5517692eb6da58e9d44be"}, - {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e0bd57539da59a3e4671b90a502da9a28c72322a4f17866ba3ac63a82c4498e"}, - {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ac6c2c45c847bbf8f91930d88716a0fb924b51e0c6dad329b793d670ec5db792"}, - {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b94d4ba43739bbe8b0ce4262bcc3b7b9f31459ad120fb595627eaeb7f9b9ca01"}, - {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:00e6424f4b26fe82d44577b4c842d7df97c20be6439e8e685d0d715feceb9fb9"}, - {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:38de0a70160dd97540335b7ad3a74571b24f1dc3ed33f815f0880682e6880131"}, - {file = "pydantic_core-2.27.1-cp39-none-win32.whl", hash = "sha256:7ccebf51efc61634f6c2344da73e366c75e735960b5654b63d7e6f69a5885fa3"}, - {file = "pydantic_core-2.27.1-cp39-none-win_amd64.whl", hash = "sha256:a57847b090d7892f123726202b7daa20df6694cbd583b67a592e856bff603d6c"}, - {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3fa80ac2bd5856580e242dbc202db873c60a01b20309c8319b5c5986fbe53ce6"}, - {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d950caa237bb1954f1b8c9227b5065ba6875ac9771bb8ec790d956a699b78676"}, - {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e4216e64d203e39c62df627aa882f02a2438d18a5f21d7f721621f7a5d3611d"}, - {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02a3d637bd387c41d46b002f0e49c52642281edacd2740e5a42f7017feea3f2c"}, - {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:161c27ccce13b6b0c8689418da3885d3220ed2eae2ea5e9b2f7f3d48f1d52c27"}, - {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:19910754e4cc9c63bc1c7f6d73aa1cfee82f42007e407c0f413695c2f7ed777f"}, - {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:e173486019cc283dc9778315fa29a363579372fe67045e971e89b6365cc035ed"}, - {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:af52d26579b308921b73b956153066481f064875140ccd1dfd4e77db89dbb12f"}, - {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:981fb88516bd1ae8b0cbbd2034678a39dedc98752f264ac9bc5839d3923fa04c"}, - {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5fde892e6c697ce3e30c61b239330fc5d569a71fefd4eb6512fc6caec9dd9e2f"}, - {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:816f5aa087094099fff7edabb5e01cc370eb21aa1a1d44fe2d2aefdfb5599b31"}, - {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c10c309e18e443ddb108f0ef64e8729363adbfd92d6d57beec680f6261556f3"}, - {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98476c98b02c8e9b2eec76ac4156fd006628b1b2d0ef27e548ffa978393fd154"}, - {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c3027001c28434e7ca5a6e1e527487051136aa81803ac812be51802150d880dd"}, - {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:7699b1df36a48169cdebda7ab5a2bac265204003f153b4bd17276153d997670a"}, - {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:1c39b07d90be6b48968ddc8c19e7585052088fd7ec8d568bb31ff64c70ae3c97"}, - {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:46ccfe3032b3915586e469d4972973f893c0a2bb65669194a5bdea9bacc088c2"}, - {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:62ba45e21cf6571d7f716d903b5b7b6d2617e2d5d67c0923dc47b9d41369f840"}, - {file = "pydantic_core-2.27.1.tar.gz", hash = "sha256:62a763352879b84aa31058fc931884055fd75089cccbd9d58bb6afd01141b235"}, + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"}, + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"}, + {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"}, ] [package.dependencies] @@ -3497,11 +3447,10 @@ files = [ [package.dependencies] astroid = ">=3.3.5,<=3.4.0-dev0" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} -dill = {version = ">=0.2", markers = "python_version < \"3.11\""} +dill = {version = ">=0.3.7", markers = "python_version >= \"3.12\""} isort = ">=4.2.5,<5.13.0 || >5.13.0,<6" mccabe = ">=0.6,<0.8" platformdirs = ">=2.2.0" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} tomlkit = ">=0.10.1" [package.extras] @@ -3535,11 +3484,9 @@ files = [ [package.dependencies] colorama = {version = "*", markers = "sys_platform == \"win32\""} -exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" pluggy = ">=1.5,<2" -tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] @@ -4614,7 +4561,6 @@ files = [ [package.dependencies] click = ">=7.0" h11 = ">=0.8" -typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} [package.extras] standard = ["colorama (>=0.4)", "httptools (>=0.6.3)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] @@ -4774,5 +4720,5 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.0" -python-versions = ">=3.10,<3.11" -content-hash = "de6e92d0a846208f3c18d271c800f499c4bbc3c38ea10b729154891279e6e3e2" +python-versions = ">=3.12,<3.13" +content-hash = "c610d4ace1ab6910ae44681bda9db8569b26348418784f9ed975595c8551a8bd" diff --git a/portfolio_analytics/api/requirements.txt b/portfolio_analytics/api/requirements.txt deleted file mode 100644 index 8ec1f36..0000000 --- a/portfolio_analytics/api/requirements.txt +++ /dev/null @@ -1,653 +0,0 @@ -annotated-types==0.7.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ - --hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89 -anyio==4.7.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:2f834749c602966b7d456a7567cafcb309f96482b5081d14ac93ccd457f9dd48 \ - --hash=sha256:ea60c3723ab42ba6fff7e8ccb0488c898ec538ff4df1f1d5e642c3601d07e352 -beautifulsoup4==4.12.3 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051 \ - --hash=sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed -certifi==2024.12.14 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56 \ - --hash=sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db -charset-normalizer==3.4.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621 \ - --hash=sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6 \ - --hash=sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8 \ - --hash=sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912 \ - --hash=sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c \ - --hash=sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b \ - --hash=sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d \ - --hash=sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d \ - --hash=sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95 \ - --hash=sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e \ - --hash=sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565 \ - --hash=sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64 \ - --hash=sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab \ - --hash=sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be \ - --hash=sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e \ - --hash=sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907 \ - --hash=sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0 \ - --hash=sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2 \ - --hash=sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62 \ - --hash=sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62 \ - --hash=sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23 \ - --hash=sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc \ - --hash=sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284 \ - --hash=sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca \ - --hash=sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455 \ - --hash=sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858 \ - --hash=sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b \ - --hash=sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594 \ - --hash=sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc \ - --hash=sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db \ - --hash=sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b \ - --hash=sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea \ - --hash=sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6 \ - --hash=sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920 \ - --hash=sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749 \ - --hash=sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7 \ - --hash=sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd \ - --hash=sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99 \ - --hash=sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242 \ - --hash=sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee \ - --hash=sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129 \ - --hash=sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2 \ - --hash=sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51 \ - --hash=sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee \ - --hash=sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8 \ - --hash=sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b \ - --hash=sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613 \ - --hash=sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742 \ - --hash=sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe \ - --hash=sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3 \ - --hash=sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5 \ - --hash=sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631 \ - --hash=sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7 \ - --hash=sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15 \ - --hash=sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c \ - --hash=sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea \ - --hash=sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417 \ - --hash=sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250 \ - --hash=sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88 \ - --hash=sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca \ - --hash=sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa \ - --hash=sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99 \ - --hash=sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149 \ - --hash=sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41 \ - --hash=sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574 \ - --hash=sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0 \ - --hash=sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f \ - --hash=sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d \ - --hash=sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654 \ - --hash=sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3 \ - --hash=sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19 \ - --hash=sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90 \ - --hash=sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578 \ - --hash=sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9 \ - --hash=sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1 \ - --hash=sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51 \ - --hash=sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719 \ - --hash=sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236 \ - --hash=sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a \ - --hash=sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c \ - --hash=sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade \ - --hash=sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944 \ - --hash=sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc \ - --hash=sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6 \ - --hash=sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6 \ - --hash=sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27 \ - --hash=sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6 \ - --hash=sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2 \ - --hash=sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12 \ - --hash=sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf \ - --hash=sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114 \ - --hash=sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7 \ - --hash=sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf \ - --hash=sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d \ - --hash=sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b \ - --hash=sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed \ - --hash=sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03 \ - --hash=sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4 \ - --hash=sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67 \ - --hash=sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365 \ - --hash=sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a \ - --hash=sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748 \ - --hash=sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b \ - --hash=sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079 \ - --hash=sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482 -click==8.1.7 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 \ - --hash=sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de -colorama==0.4.6 ; python_version >= "3.10" and python_version < "3.11" and platform_system == "Windows" \ - --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ - --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 -et-xmlfile==2.0.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:7a91720bc756843502c3b7504c77b8fe44217c85c537d85037f0f536151b2caa \ - --hash=sha256:dab3f4764309081ce75662649be815c4c9081e88f0837825f90fd28317d4da54 -exceptiongroup==1.2.2 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b \ - --hash=sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc -fastapi==0.115.6 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:9ec46f7addc14ea472958a96aae5b5de65f39721a46aaf5705c480d9a8b76654 \ - --hash=sha256:e9240b29e36fa8f4bb7290316988e90c381e5092e0cbe84e7818cc3713bcf305 -frozendict==2.4.6 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:02331541611f3897f260900a1815b63389654951126e6e65545e529b63c08361 \ - --hash=sha256:0aaa11e7c472150efe65adbcd6c17ac0f586896096ab3963775e1c5c58ac0098 \ - --hash=sha256:18d50a2598350b89189da9150058191f55057581e40533e470db46c942373acf \ - --hash=sha256:1b4a3f8f6dd51bee74a50995c39b5a606b612847862203dd5483b9cd91b0d36a \ - --hash=sha256:1f42e6b75254ea2afe428ad6d095b62f95a7ae6d4f8272f0bd44a25dddd20f67 \ - --hash=sha256:2d69418479bfb834ba75b0e764f058af46ceee3d655deb6a0dd0c0c1a5e82f09 \ - --hash=sha256:323f1b674a2cc18f86ab81698e22aba8145d7a755e0ac2cccf142ee2db58620d \ - --hash=sha256:377a65be0a700188fc21e669c07de60f4f6d35fae8071c292b7df04776a1c27b \ - --hash=sha256:49344abe90fb75f0f9fdefe6d4ef6d4894e640fadab71f11009d52ad97f370b9 \ - --hash=sha256:49ffaf09241bc1417daa19362a2241a4aa435f758fd4375c39ce9790443a39cd \ - --hash=sha256:622301b1c29c4f9bba633667d592a3a2b093cb408ba3ce578b8901ace3931ef3 \ - --hash=sha256:665fad3f0f815aa41294e561d98dbedba4b483b3968e7e8cab7d728d64b96e33 \ - --hash=sha256:669237c571856be575eca28a69e92a3d18f8490511eff184937283dc6093bd67 \ - --hash=sha256:7088102345d1606450bd1801a61139bbaa2cb0d805b9b692f8d81918ea835da6 \ - --hash=sha256:7134a2bb95d4a16556bb5f2b9736dceb6ea848fa5b6f3f6c2d6dba93b44b4757 \ - --hash=sha256:7291abacf51798d5ffe632771a69c14fb423ab98d63c4ccd1aa382619afe2f89 \ - --hash=sha256:74b6b26c15dddfefddeb89813e455b00ebf78d0a3662b89506b4d55c6445a9f4 \ - --hash=sha256:7730f8ebe791d147a1586cbf6a42629351d4597773317002181b66a2da0d509e \ - --hash=sha256:807862e14b0e9665042458fde692c4431d660c4219b9bb240817f5b918182222 \ - --hash=sha256:94321e646cc39bebc66954a31edd1847d3a2a3483cf52ff051cd0996e7db07db \ - --hash=sha256:9647c74efe3d845faa666d4853cfeabbaee403b53270cabfc635b321f770e6b8 \ - --hash=sha256:9a8a43036754a941601635ea9c788ebd7a7efbed2becba01b54a887b41b175b9 \ - --hash=sha256:a4e3737cb99ed03200cd303bdcd5514c9f34b29ee48f405c1184141bd68611c9 \ - --hash=sha256:a76cee5c4be2a5d1ff063188232fffcce05dde6fd5edd6afe7b75b247526490e \ - --hash=sha256:b8f2829048f29fe115da4a60409be2130e69402e29029339663fac39c90e6e2b \ - --hash=sha256:ba5ef7328706db857a2bdb2c2a17b4cd37c32a19c017cff1bb7eeebc86b0f411 \ - --hash=sha256:c131f10c4d3906866454c4e89b87a7e0027d533cce8f4652aa5255112c4d6677 \ - --hash=sha256:c3a05c0a50cab96b4bb0ea25aa752efbfceed5ccb24c007612bc63e51299336f \ - --hash=sha256:c9905dcf7aa659e6a11b8051114c9fa76dfde3a6e50e6dc129d5aece75b449a2 \ - --hash=sha256:ce1e9217b85eec6ba9560d520d5089c82dbb15f977906eb345d81459723dd7e3 \ - --hash=sha256:d065db6a44db2e2375c23eac816f1a022feb2fa98cbb50df44a9e83700accbea \ - --hash=sha256:da6a10164c8a50b34b9ab508a9420df38f4edf286b9ca7b7df8a91767baecb34 \ - --hash=sha256:df7cd16470fbd26fc4969a208efadc46319334eb97def1ddf48919b351192b8e \ - --hash=sha256:e72fb86e48811957d66ffb3e95580af7b1af1e6fbd760ad63d7bd79b2c9a07f8 \ - --hash=sha256:eabd21d8e5db0c58b60d26b4bb9839cac13132e88277e1376970172a85ee04b3 \ - --hash=sha256:eddabeb769fab1e122d3a6872982c78179b5bcc909fdc769f3cf1964f55a6d20 \ - --hash=sha256:f4c789fd70879ccb6289a603cdebdc4953e7e5dea047d30c1b180529b28257b5 \ - --hash=sha256:f5b94d5b07c00986f9e37a38dd83c13f5fe3bf3f1ccc8e88edea8fe15d6cd88c \ - --hash=sha256:fc67cbb3c96af7a798fab53d52589752c1673027e516b702ab355510ddf6bdff -h11==0.14.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d \ - --hash=sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761 -html5lib==1.1 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:0d78f8fde1c230e99fe37986a60526d7049ed4bf8a9fadbad5f00e22e58e041d \ - --hash=sha256:b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f -idna==3.10 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9 \ - --hash=sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3 -lxml==5.3.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:01220dca0d066d1349bd6a1726856a78f7929f3878f7e2ee83c296c69495309e \ - --hash=sha256:02ced472497b8362c8e902ade23e3300479f4f43e45f4105c85ef43b8db85229 \ - --hash=sha256:052d99051e77a4f3e8482c65014cf6372e61b0a6f4fe9edb98503bb5364cfee3 \ - --hash=sha256:07da23d7ee08577760f0a71d67a861019103e4812c87e2fab26b039054594cc5 \ - --hash=sha256:094cb601ba9f55296774c2d57ad68730daa0b13dc260e1f941b4d13678239e70 \ - --hash=sha256:0a7056921edbdd7560746f4221dca89bb7a3fe457d3d74267995253f46343f15 \ - --hash=sha256:0c120f43553ec759f8de1fee2f4794452b0946773299d44c36bfe18e83caf002 \ - --hash=sha256:0d7b36afa46c97875303a94e8f3ad932bf78bace9e18e603f2085b652422edcd \ - --hash=sha256:0fdf3a3059611f7585a78ee10399a15566356116a4288380921a4b598d807a22 \ - --hash=sha256:109fa6fede314cc50eed29e6e56c540075e63d922455346f11e4d7a036d2b8cf \ - --hash=sha256:146173654d79eb1fc97498b4280c1d3e1e5d58c398fa530905c9ea50ea849b22 \ - --hash=sha256:1473427aff3d66a3fa2199004c3e601e6c4500ab86696edffdbc84954c72d832 \ - --hash=sha256:1483fd3358963cc5c1c9b122c80606a3a79ee0875bcac0204149fa09d6ff2727 \ - --hash=sha256:168f2dfcfdedf611eb285efac1516c8454c8c99caf271dccda8943576b67552e \ - --hash=sha256:17e8d968d04a37c50ad9c456a286b525d78c4a1c15dd53aa46c1d8e06bf6fa30 \ - --hash=sha256:18feb4b93302091b1541221196a2155aa296c363fd233814fa11e181adebc52f \ - --hash=sha256:1afe0a8c353746e610bd9031a630a95bcfb1a720684c3f2b36c4710a0a96528f \ - --hash=sha256:1d04f064bebdfef9240478f7a779e8c5dc32b8b7b0b2fc6a62e39b928d428e51 \ - --hash=sha256:1fdc9fae8dd4c763e8a31e7630afef517eab9f5d5d31a278df087f307bf601f4 \ - --hash=sha256:1ffc23010330c2ab67fac02781df60998ca8fe759e8efde6f8b756a20599c5de \ - --hash=sha256:20094fc3f21ea0a8669dc4c61ed7fa8263bd37d97d93b90f28fc613371e7a875 \ - --hash=sha256:213261f168c5e1d9b7535a67e68b1f59f92398dd17a56d934550837143f79c42 \ - --hash=sha256:218c1b2e17a710e363855594230f44060e2025b05c80d1f0661258142b2add2e \ - --hash=sha256:23e0553b8055600b3bf4a00b255ec5c92e1e4aebf8c2c09334f8368e8bd174d6 \ - --hash=sha256:25f1b69d41656b05885aa185f5fdf822cb01a586d1b32739633679699f220391 \ - --hash=sha256:2b3778cb38212f52fac9fe913017deea2fdf4eb1a4f8e4cfc6b009a13a6d3fcc \ - --hash=sha256:2bc9fd5ca4729af796f9f59cd8ff160fe06a474da40aca03fcc79655ddee1a8b \ - --hash=sha256:2c226a06ecb8cdef28845ae976da407917542c5e6e75dcac7cc33eb04aaeb237 \ - --hash=sha256:2c3406b63232fc7e9b8783ab0b765d7c59e7c59ff96759d8ef9632fca27c7ee4 \ - --hash=sha256:2c86bf781b12ba417f64f3422cfc302523ac9cd1d8ae8c0f92a1c66e56ef2e86 \ - --hash=sha256:2d9b8d9177afaef80c53c0a9e30fa252ff3036fb1c6494d427c066a4ce6a282f \ - --hash=sha256:2dec2d1130a9cda5b904696cec33b2cfb451304ba9081eeda7f90f724097300a \ - --hash=sha256:2dfab5fa6a28a0b60a20638dc48e6343c02ea9933e3279ccb132f555a62323d8 \ - --hash=sha256:2ecdd78ab768f844c7a1d4a03595038c166b609f6395e25af9b0f3f26ae1230f \ - --hash=sha256:315f9542011b2c4e1d280e4a20ddcca1761993dda3afc7a73b01235f8641e903 \ - --hash=sha256:36aef61a1678cb778097b4a6eeae96a69875d51d1e8f4d4b491ab3cfb54b5a03 \ - --hash=sha256:384aacddf2e5813a36495233b64cb96b1949da72bef933918ba5c84e06af8f0e \ - --hash=sha256:3879cc6ce938ff4eb4900d901ed63555c778731a96365e53fadb36437a131a99 \ - --hash=sha256:3c174dc350d3ec52deb77f2faf05c439331d6ed5e702fc247ccb4e6b62d884b7 \ - --hash=sha256:3eb44520c4724c2e1a57c0af33a379eee41792595023f367ba3952a2d96c2aab \ - --hash=sha256:406246b96d552e0503e17a1006fd27edac678b3fcc9f1be71a2f94b4ff61528d \ - --hash=sha256:41ce1f1e2c7755abfc7e759dc34d7d05fd221723ff822947132dc934d122fe22 \ - --hash=sha256:423b121f7e6fa514ba0c7918e56955a1d4470ed35faa03e3d9f0e3baa4c7e492 \ - --hash=sha256:44264ecae91b30e5633013fb66f6ddd05c006d3e0e884f75ce0b4755b3e3847b \ - --hash=sha256:482c2f67761868f0108b1743098640fbb2a28a8e15bf3f47ada9fa59d9fe08c3 \ - --hash=sha256:4b0c7a688944891086ba192e21c5229dea54382f4836a209ff8d0a660fac06be \ - --hash=sha256:4c1fefd7e3d00921c44dc9ca80a775af49698bbfd92ea84498e56acffd4c5469 \ - --hash=sha256:4e109ca30d1edec1ac60cdbe341905dc3b8f55b16855e03a54aaf59e51ec8c6f \ - --hash=sha256:501d0d7e26b4d261fca8132854d845e4988097611ba2531408ec91cf3fd9d20a \ - --hash=sha256:516f491c834eb320d6c843156440fe7fc0d50b33e44387fcec5b02f0bc118a4c \ - --hash=sha256:51806cfe0279e06ed8500ce19479d757db42a30fd509940b1701be9c86a5ff9a \ - --hash=sha256:562e7494778a69086f0312ec9689f6b6ac1c6b65670ed7d0267e49f57ffa08c4 \ - --hash=sha256:56b9861a71575f5795bde89256e7467ece3d339c9b43141dbdd54544566b3b94 \ - --hash=sha256:5b8f5db71b28b8c404956ddf79575ea77aa8b1538e8b2ef9ec877945b3f46442 \ - --hash=sha256:5c2fb570d7823c2bbaf8b419ba6e5662137f8166e364a8b2b91051a1fb40ab8b \ - --hash=sha256:5c54afdcbb0182d06836cc3d1be921e540be3ebdf8b8a51ee3ef987537455f84 \ - --hash=sha256:5d6a6972b93c426ace71e0be9a6f4b2cfae9b1baed2eed2006076a746692288c \ - --hash=sha256:609251a0ca4770e5a8768ff902aa02bf636339c5a93f9349b48eb1f606f7f3e9 \ - --hash=sha256:62d172f358f33a26d6b41b28c170c63886742f5b6772a42b59b4f0fa10526cb1 \ - --hash=sha256:62f7fdb0d1ed2065451f086519865b4c90aa19aed51081979ecd05a21eb4d1be \ - --hash=sha256:658f2aa69d31e09699705949b5fc4719cbecbd4a97f9656a232e7d6c7be1a367 \ - --hash=sha256:65ab5685d56914b9a2a34d67dd5488b83213d680b0c5d10b47f81da5a16b0b0e \ - --hash=sha256:68934b242c51eb02907c5b81d138cb977b2129a0a75a8f8b60b01cb8586c7b21 \ - --hash=sha256:68b87753c784d6acb8a25b05cb526c3406913c9d988d51f80adecc2b0775d6aa \ - --hash=sha256:69959bd3167b993e6e710b99051265654133a98f20cec1d9b493b931942e9c16 \ - --hash=sha256:6a7095eeec6f89111d03dabfe5883a1fd54da319c94e0fb104ee8f23616b572d \ - --hash=sha256:6b038cc86b285e4f9fea2ba5ee76e89f21ed1ea898e287dc277a25884f3a7dfe \ - --hash=sha256:6ba0d3dcac281aad8a0e5b14c7ed6f9fa89c8612b47939fc94f80b16e2e9bc83 \ - --hash=sha256:6e91cf736959057f7aac7adfc83481e03615a8e8dd5758aa1d95ea69e8931dba \ - --hash=sha256:6ee8c39582d2652dcd516d1b879451500f8db3fe3607ce45d7c5957ab2596040 \ - --hash=sha256:6f651ebd0b21ec65dfca93aa629610a0dbc13dbc13554f19b0113da2e61a4763 \ - --hash=sha256:71a8dd38fbd2f2319136d4ae855a7078c69c9a38ae06e0c17c73fd70fc6caad8 \ - --hash=sha256:74068c601baff6ff021c70f0935b0c7bc528baa8ea210c202e03757c68c5a4ff \ - --hash=sha256:7437237c6a66b7ca341e868cda48be24b8701862757426852c9b3186de1da8a2 \ - --hash=sha256:747a3d3e98e24597981ca0be0fd922aebd471fa99d0043a3842d00cdcad7ad6a \ - --hash=sha256:74bcb423462233bc5d6066e4e98b0264e7c1bed7541fff2f4e34fe6b21563c8b \ - --hash=sha256:78d9b952e07aed35fe2e1a7ad26e929595412db48535921c5013edc8aa4a35ce \ - --hash=sha256:7b1cd427cb0d5f7393c31b7496419da594fe600e6fdc4b105a54f82405e6626c \ - --hash=sha256:7d3d1ca42870cdb6d0d29939630dbe48fa511c203724820fc0fd507b2fb46577 \ - --hash=sha256:7e2f58095acc211eb9d8b5771bf04df9ff37d6b87618d1cbf85f92399c98dae8 \ - --hash=sha256:7f41026c1d64043a36fda21d64c5026762d53a77043e73e94b71f0521939cc71 \ - --hash=sha256:81b4e48da4c69313192d8c8d4311e5d818b8be1afe68ee20f6385d0e96fc9512 \ - --hash=sha256:86a6b24b19eaebc448dc56b87c4865527855145d851f9fc3891673ff97950540 \ - --hash=sha256:874a216bf6afaf97c263b56371434e47e2c652d215788396f60477540298218f \ - --hash=sha256:89e043f1d9d341c52bf2af6d02e6adde62e0a46e6755d5eb60dc6e4f0b8aeca2 \ - --hash=sha256:8c72e9563347c7395910de6a3100a4840a75a6f60e05af5e58566868d5eb2d6a \ - --hash=sha256:8dc2c0395bea8254d8daebc76dcf8eb3a95ec2a46fa6fae5eaccee366bfe02ce \ - --hash=sha256:8f0de2d390af441fe8b2c12626d103540b5d850d585b18fcada58d972b74a74e \ - --hash=sha256:92e67a0be1639c251d21e35fe74df6bcc40cba445c2cda7c4a967656733249e2 \ - --hash=sha256:94d6c3782907b5e40e21cadf94b13b0842ac421192f26b84c45f13f3c9d5dc27 \ - --hash=sha256:97acf1e1fd66ab53dacd2c35b319d7e548380c2e9e8c54525c6e76d21b1ae3b1 \ - --hash=sha256:9ada35dd21dc6c039259596b358caab6b13f4db4d4a7f8665764d616daf9cc1d \ - --hash=sha256:9c52100e2c2dbb0649b90467935c4b0de5528833c76a35ea1a2691ec9f1ee7a1 \ - --hash=sha256:9e41506fec7a7f9405b14aa2d5c8abbb4dbbd09d88f9496958b6d00cb4d45330 \ - --hash=sha256:9e4b47ac0f5e749cfc618efdf4726269441014ae1d5583e047b452a32e221920 \ - --hash=sha256:9fb81d2824dff4f2e297a276297e9031f46d2682cafc484f49de182aa5e5df99 \ - --hash=sha256:a0eabd0a81625049c5df745209dc7fcef6e2aea7793e5f003ba363610aa0a3ff \ - --hash=sha256:a3d819eb6f9b8677f57f9664265d0a10dd6551d227afb4af2b9cd7bdc2ccbf18 \ - --hash=sha256:a87de7dd873bf9a792bf1e58b1c3887b9264036629a5bf2d2e6579fe8e73edff \ - --hash=sha256:aa617107a410245b8660028a7483b68e7914304a6d4882b5ff3d2d3eb5948d8c \ - --hash=sha256:aac0bbd3e8dd2d9c45ceb82249e8bdd3ac99131a32b4d35c8af3cc9db1657179 \ - --hash=sha256:ab6dd83b970dc97c2d10bc71aa925b84788c7c05de30241b9e96f9b6d9ea3080 \ - --hash=sha256:ace2c2326a319a0bb8a8b0e5b570c764962e95818de9f259ce814ee666603f19 \ - --hash=sha256:ae5fe5c4b525aa82b8076c1a59d642c17b6e8739ecf852522c6321852178119d \ - --hash=sha256:b11a5d918a6216e521c715b02749240fb07ae5a1fefd4b7bf12f833bc8b4fe70 \ - --hash=sha256:b1c8c20847b9f34e98080da785bb2336ea982e7f913eed5809e5a3c872900f32 \ - --hash=sha256:b369d3db3c22ed14c75ccd5af429086f166a19627e84a8fdade3f8f31426e52a \ - --hash=sha256:b710bc2b8292966b23a6a0121f7a6c51d45d2347edcc75f016ac123b8054d3f2 \ - --hash=sha256:bd96517ef76c8654446fc3db9242d019a1bb5fe8b751ba414765d59f99210b79 \ - --hash=sha256:c00f323cc00576df6165cc9d21a4c21285fa6b9989c5c39830c3903dc4303ef3 \ - --hash=sha256:c162b216070f280fa7da844531169be0baf9ccb17263cf5a8bf876fcd3117fa5 \ - --hash=sha256:c1a69e58a6bb2de65902051d57fde951febad631a20a64572677a1052690482f \ - --hash=sha256:c1f794c02903c2824fccce5b20c339a1a14b114e83b306ff11b597c5f71a1c8d \ - --hash=sha256:c24037349665434f375645fa9d1f5304800cec574d0310f618490c871fd902b3 \ - --hash=sha256:c300306673aa0f3ed5ed9372b21867690a17dba38c68c44b287437c362ce486b \ - --hash=sha256:c56a1d43b2f9ee4786e4658c7903f05da35b923fb53c11025712562d5cc02753 \ - --hash=sha256:c6379f35350b655fd817cd0d6cbeef7f265f3ae5fedb1caae2eb442bbeae9ab9 \ - --hash=sha256:c802e1c2ed9f0c06a65bc4ed0189d000ada8049312cfeab6ca635e39c9608957 \ - --hash=sha256:cb83f8a875b3d9b458cada4f880fa498646874ba4011dc974e071a0a84a1b033 \ - --hash=sha256:cf120cce539453ae086eacc0130a324e7026113510efa83ab42ef3fcfccac7fb \ - --hash=sha256:dd36439be765e2dde7660212b5275641edbc813e7b24668831a5c8ac91180656 \ - --hash=sha256:dd5350b55f9fecddc51385463a4f67a5da829bc741e38cf689f38ec9023f54ab \ - --hash=sha256:df5c7333167b9674aa8ae1d4008fa4bc17a313cc490b2cca27838bbdcc6bb15b \ - --hash=sha256:e63601ad5cd8f860aa99d109889b5ac34de571c7ee902d6812d5d9ddcc77fa7d \ - --hash=sha256:e92ce66cd919d18d14b3856906a61d3f6b6a8500e0794142338da644260595cd \ - --hash=sha256:e99f5507401436fdcc85036a2e7dc2e28d962550afe1cbfc07c40e454256a859 \ - --hash=sha256:ea2e2f6f801696ad7de8aec061044d6c8c0dd4037608c7cab38a9a4d316bfb11 \ - --hash=sha256:eafa2c8658f4e560b098fe9fc54539f86528651f61849b22111a9b107d18910c \ - --hash=sha256:ecd4ad8453ac17bc7ba3868371bffb46f628161ad0eefbd0a855d2c8c32dd81a \ - --hash=sha256:ee70d08fd60c9565ba8190f41a46a54096afa0eeb8f76bd66f2c25d3b1b83005 \ - --hash=sha256:eec1bb8cdbba2925bedc887bc0609a80e599c75b12d87ae42ac23fd199445654 \ - --hash=sha256:ef0c1fe22171dd7c7c27147f2e9c3e86f8bdf473fed75f16b0c2e84a5030ce80 \ - --hash=sha256:f2901429da1e645ce548bf9171784c0f74f0718c3f6150ce166be39e4dd66c3e \ - --hash=sha256:f422a209d2455c56849442ae42f25dbaaba1c6c3f501d58761c619c7836642ec \ - --hash=sha256:f65e5120863c2b266dbcc927b306c5b78e502c71edf3295dfcb9501ec96e5fc7 \ - --hash=sha256:f7d4a670107d75dfe5ad080bed6c341d18c4442f9378c9f58e5851e86eb79965 \ - --hash=sha256:f914c03e6a31deb632e2daa881fe198461f4d06e57ac3d0e05bbcab8eae01945 \ - --hash=sha256:fb66442c2546446944437df74379e9cf9e9db353e61301d1a0e26482f43f0dd8 -multitasking==0.0.11 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:1e5b37a5f8fc1e6cfaafd1a82b6b1cc6d2ed20037d3b89c25a84f499bd7b3dd4 \ - --hash=sha256:4d6bc3cc65f9b2dca72fb5a787850a88dae8f620c2b36ae9b55248e51bcd6026 -numpy==2.2.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:0557eebc699c1c34cccdd8c3778c9294e8196df27d713706895edc6f57d29608 \ - --hash=sha256:0798b138c291d792f8ea40fe3768610f3c7dd2574389e37c3f26573757c8f7ef \ - --hash=sha256:0da8495970f6b101ddd0c38ace92edea30e7e12b9a926b57f5fabb1ecc25bb90 \ - --hash=sha256:0f0986e917aca18f7a567b812ef7ca9391288e2acb7a4308aa9d265bd724bdae \ - --hash=sha256:122fd2fcfafdefc889c64ad99c228d5a1f9692c3a83f56c292618a59aa60ae83 \ - --hash=sha256:140dd80ff8981a583a60980be1a655068f8adebf7a45a06a6858c873fcdcd4a0 \ - --hash=sha256:16757cf28621e43e252c560d25b15f18a2f11da94fea344bf26c599b9cf54b73 \ - --hash=sha256:18142b497d70a34b01642b9feabb70156311b326fdddd875a9981f34a369b671 \ - --hash=sha256:1c92113619f7b272838b8d6702a7f8ebe5edea0df48166c47929611d0b4dea69 \ - --hash=sha256:1e25507d85da11ff5066269d0bd25d06e0a0f2e908415534f3e603d2a78e4ffa \ - --hash=sha256:30bf971c12e4365153afb31fc73f441d4da157153f3400b82db32d04de1e4066 \ - --hash=sha256:3579eaeb5e07f3ded59298ce22b65f877a86ba8e9fe701f5576c99bb17c283da \ - --hash=sha256:36b2b43146f646642b425dd2027730f99bac962618ec2052932157e213a040e9 \ - --hash=sha256:3905a5fffcc23e597ee4d9fb3fcd209bd658c352657548db7316e810ca80458e \ - --hash=sha256:3a4199f519e57d517ebd48cb76b36c82da0360781c6a0353e64c0cac30ecaad3 \ - --hash=sha256:3f2f5cddeaa4424a0a118924b988746db6ffa8565e5829b1841a8a3bd73eb59a \ - --hash=sha256:40deb10198bbaa531509aad0cd2f9fadb26c8b94070831e2208e7df543562b74 \ - --hash=sha256:440cfb3db4c5029775803794f8638fbdbf71ec702caf32735f53b008e1eaece3 \ - --hash=sha256:4723a50e1523e1de4fccd1b9a6dcea750c2102461e9a02b2ac55ffeae09a4410 \ - --hash=sha256:4bddbaa30d78c86329b26bd6aaaea06b1e47444da99eddac7bf1e2fab717bd72 \ - --hash=sha256:4e58666988605e251d42c2818c7d3d8991555381be26399303053b58a5bbf30d \ - --hash=sha256:54dc1d6d66f8d37843ed281773c7174f03bf7ad826523f73435deb88ba60d2d4 \ - --hash=sha256:57fcc997ffc0bef234b8875a54d4058afa92b0b0c4223fc1f62f24b3b5e86038 \ - --hash=sha256:58b92a5828bd4d9aa0952492b7de803135038de47343b2aa3cc23f3b71a3dc4e \ - --hash=sha256:5a145e956b374e72ad1dff82779177d4a3c62bc8248f41b80cb5122e68f22d13 \ - --hash=sha256:6ab153263a7c5ccaf6dfe7e53447b74f77789f28ecb278c3b5d49db7ece10d6d \ - --hash=sha256:7832f9e8eb00be32f15fdfb9a981d6955ea9adc8574c521d48710171b6c55e95 \ - --hash=sha256:7fe4bb0695fe986a9e4deec3b6857003b4cfe5c5e4aac0b95f6a658c14635e31 \ - --hash=sha256:7fe8f3583e0607ad4e43a954e35c1748b553bfe9fdac8635c02058023277d1b3 \ - --hash=sha256:85ad7d11b309bd132d74397fcf2920933c9d1dc865487128f5c03d580f2c3d03 \ - --hash=sha256:9874bc2ff574c40ab7a5cbb7464bf9b045d617e36754a7bc93f933d52bd9ffc6 \ - --hash=sha256:a184288538e6ad699cbe6b24859206e38ce5fba28f3bcfa51c90d0502c1582b2 \ - --hash=sha256:a222d764352c773aa5ebde02dd84dba3279c81c6db2e482d62a3fa54e5ece69b \ - --hash=sha256:a50aeff71d0f97b6450d33940c7181b08be1441c6c193e678211bff11aa725e7 \ - --hash=sha256:a55dc7a7f0b6198b07ec0cd445fbb98b05234e8b00c5ac4874a63372ba98d4ab \ - --hash=sha256:a62eb442011776e4036af5c8b1a00b706c5bc02dc15eb5344b0c750428c94219 \ - --hash=sha256:a7d41d1612c1a82b64697e894b75db6758d4f21c3ec069d841e60ebe54b5b571 \ - --hash=sha256:a98f6f20465e7618c83252c02041517bd2f7ea29be5378f09667a8f654a5918d \ - --hash=sha256:afe8fb968743d40435c3827632fd36c5fbde633b0423da7692e426529b1759b1 \ - --hash=sha256:b0b227dcff8cdc3efbce66d4e50891f04d0a387cce282fe1e66199146a6a8fca \ - --hash=sha256:b30042fe92dbd79f1ba7f6898fada10bdaad1847c44f2dff9a16147e00a93661 \ - --hash=sha256:b606b1aaf802e6468c2608c65ff7ece53eae1a6874b3765f69b8ceb20c5fa78e \ - --hash=sha256:b6207dc8fb3c8cb5668e885cef9ec7f70189bec4e276f0ff70d5aa078d32c88e \ - --hash=sha256:c2aed8fcf8abc3020d6a9ccb31dbc9e7d7819c56a348cc88fd44be269b37427e \ - --hash=sha256:cb24cca1968b21355cc6f3da1a20cd1cebd8a023e3c5b09b432444617949085a \ - --hash=sha256:cff210198bb4cae3f3c100444c5eaa573a823f05c253e7188e1362a5555235b3 \ - --hash=sha256:d35717333b39d1b6bb8433fa758a55f1081543de527171543a2b710551d40881 \ - --hash=sha256:df12a1f99b99f569a7c2ae59aa2d31724e8d835fc7f33e14f4792e3071d11221 \ - --hash=sha256:e09d40edfdb4e260cb1567d8ae770ccf3b8b7e9f0d9b5c2a9992696b30ce2742 \ - --hash=sha256:e12c6c1ce84628c52d6367863773f7c8c8241be554e8b79686e91a43f1733773 \ - --hash=sha256:e2b8cd48a9942ed3f85b95ca4105c45758438c7ed28fff1e4ce3e57c3b589d8e \ - --hash=sha256:e500aba968a48e9019e42c0c199b7ec0696a97fa69037bea163b55398e390529 \ - --hash=sha256:ebe5e59545401fbb1b24da76f006ab19734ae71e703cdb4a8b347e84a0cece67 \ - --hash=sha256:f0dd071b95bbca244f4cb7f70b77d2ff3aaaba7fa16dc41f58d14854a6204e6c \ - --hash=sha256:f8c8b141ef9699ae777c6278b52c706b653bf15d135d302754f6b2e90eb30367 -openpyxl==3.1.5 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2 \ - --hash=sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050 -pandas==2.2.3 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a \ - --hash=sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d \ - --hash=sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5 \ - --hash=sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4 \ - --hash=sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0 \ - --hash=sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32 \ - --hash=sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea \ - --hash=sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28 \ - --hash=sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f \ - --hash=sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348 \ - --hash=sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18 \ - --hash=sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468 \ - --hash=sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5 \ - --hash=sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e \ - --hash=sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667 \ - --hash=sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645 \ - --hash=sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13 \ - --hash=sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30 \ - --hash=sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3 \ - --hash=sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d \ - --hash=sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb \ - --hash=sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3 \ - --hash=sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039 \ - --hash=sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8 \ - --hash=sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd \ - --hash=sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761 \ - --hash=sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659 \ - --hash=sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57 \ - --hash=sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c \ - --hash=sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c \ - --hash=sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4 \ - --hash=sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a \ - --hash=sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9 \ - --hash=sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42 \ - --hash=sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2 \ - --hash=sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39 \ - --hash=sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc \ - --hash=sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698 \ - --hash=sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed \ - --hash=sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015 \ - --hash=sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24 \ - --hash=sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319 -peewee==3.17.8 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:ce1d05db3438830b989a1b9d0d0aa4e7f6134d5f6fd57686eeaa26a3e6485a8c -platformdirs==4.3.6 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907 \ - --hash=sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb -pyarrow==18.1.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:01c034b576ce0eef554f7c3d8c341714954be9b3f5d5bc7117006b85fcf302fe \ - --hash=sha256:05a5636ec3eb5cc2a36c6edb534a38ef57b2ab127292a716d00eabb887835f1e \ - --hash=sha256:0743e503c55be0fdb5c08e7d44853da27f19dc854531c0570f9f394ec9671d54 \ - --hash=sha256:0ad4892617e1a6c7a551cfc827e072a633eaff758fa09f21c4ee548c30bcaf99 \ - --hash=sha256:0b331e477e40f07238adc7ba7469c36b908f07c89b95dd4bd3a0ec84a3d1e21e \ - --hash=sha256:11b676cd410cf162d3f6a70b43fb9e1e40affbc542a1e9ed3681895f2962d3d9 \ - --hash=sha256:25dbacab8c5952df0ca6ca0af28f50d45bd31c1ff6fcf79e2d120b4a65ee7181 \ - --hash=sha256:2c4dd0c9010a25ba03e198fe743b1cc03cd33c08190afff371749c52ccbbaf76 \ - --hash=sha256:36ac22d7782554754a3b50201b607d553a8d71b78cdf03b33c1125be4b52397c \ - --hash=sha256:3b2e2239339c538f3464308fd345113f886ad031ef8266c6f004d49769bb074c \ - --hash=sha256:3c35813c11a059056a22a3bef520461310f2f7eea5c8a11ef9de7062a23f8d56 \ - --hash=sha256:4a4813cb8ecf1809871fd2d64a8eff740a1bd3691bbe55f01a3cf6c5ec869754 \ - --hash=sha256:4f443122c8e31f4c9199cb23dca29ab9427cef990f283f80fe15b8e124bcc49b \ - --hash=sha256:4f97b31b4c4e21ff58c6f330235ff893cc81e23da081b1a4b1c982075e0ed4e9 \ - --hash=sha256:543ad8459bc438efc46d29a759e1079436290bd583141384c6f7a1068ed6f992 \ - --hash=sha256:6a276190309aba7bc9d5bd2933230458b3521a4317acfefe69a354f2fe59f2bc \ - --hash=sha256:73eeed32e724ea3568bb06161cad5fa7751e45bc2228e33dcb10c614044165c7 \ - --hash=sha256:74de649d1d2ccb778f7c3afff6085bd5092aed4c23df9feeb45dd6b16f3811aa \ - --hash=sha256:84e314d22231357d473eabec709d0ba285fa706a72377f9cc8e1cb3c8013813b \ - --hash=sha256:9386d3ca9c145b5539a1cfc75df07757dff870168c959b473a0bccbc3abc8c73 \ - --hash=sha256:9736ba3c85129d72aefa21b4f3bd715bc4190fe4426715abfff90481e7d00812 \ - --hash=sha256:9f3a76670b263dc41d0ae877f09124ab96ce10e4e48f3e3e4257273cee61ad0d \ - --hash=sha256:a1880dd6772b685e803011a6b43a230c23b566859a6e0c9a276c1e0faf4f4052 \ - --hash=sha256:acb7564204d3c40babf93a05624fc6a8ec1ab1def295c363afc40b0c9e66c191 \ - --hash=sha256:ad514dbfcffe30124ce655d72771ae070f30bf850b48bc4d9d3b25993ee0e386 \ - --hash=sha256:aebc13a11ed3032d8dd6e7171eb6e86d40d67a5639d96c35142bd568b9299324 \ - --hash=sha256:b516dad76f258a702f7ca0250885fc93d1fa5ac13ad51258e39d402bd9e2e1e4 \ - --hash=sha256:b76130d835261b38f14fc41fdfb39ad8d672afb84c447126b84d5472244cfaba \ - --hash=sha256:ba17845efe3aa358ec266cf9cc2800fa73038211fb27968bfa88acd09261a470 \ - --hash=sha256:c0a03da7f2758645d17b7b4f83c8bffeae5bbb7f974523fe901f36288d2eab71 \ - --hash=sha256:c52f81aa6f6575058d8e2c782bf79d4f9fdc89887f16825ec3a66607a5dd8e30 \ - --hash=sha256:d4b3d2a34780645bed6414e22dda55a92e0fcd1b8a637fba86800ad737057e33 \ - --hash=sha256:d4f13eee18433f99adefaeb7e01d83b59f73360c231d4782d9ddfaf1c3fbde0a \ - --hash=sha256:d6cf5c05f3cee251d80e98726b5c7cc9f21bab9e9783673bac58e6dfab57ecc8 \ - --hash=sha256:da31fbca07c435be88a0c321402c4e31a2ba61593ec7473630769de8346b54ee \ - --hash=sha256:e21488d5cfd3d8b500b3238a6c4b075efabc18f0f6d80b29239737ebd69caa6c \ - --hash=sha256:e31e9417ba9c42627574bdbfeada7217ad8a4cbbe45b9d6bdd4b62abbca4c6f6 \ - --hash=sha256:eaeabf638408de2772ce3d7793b2668d4bb93807deed1725413b70e3156a7854 \ - --hash=sha256:f266a2c0fc31995a06ebd30bcfdb7f615d7278035ec5b1cd71c48d56daaf30b0 \ - --hash=sha256:f39a2e0ed32a0970e4e46c262753417a60c43a3246972cfc2d3eb85aedd01b21 \ - --hash=sha256:f591704ac05dfd0477bb8f8e0bd4b5dc52c1cadf50503858dce3a15db6e46ff2 \ - --hash=sha256:f96bd502cb11abb08efea6dab09c003305161cb6c9eafd432e35e76e7fa9b90c -pydantic-core==2.27.1 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:00e6424f4b26fe82d44577b4c842d7df97c20be6439e8e685d0d715feceb9fb9 \ - --hash=sha256:029d9757eb621cc6e1848fa0b0310310de7301057f623985698ed7ebb014391b \ - --hash=sha256:02a3d637bd387c41d46b002f0e49c52642281edacd2740e5a42f7017feea3f2c \ - --hash=sha256:0325336f348dbee6550d129b1627cb8f5351a9dc91aad141ffb96d4937bd9529 \ - --hash=sha256:062f60e512fc7fff8b8a9d680ff0ddaaef0193dba9fa83e679c0c5f5fbd018bc \ - --hash=sha256:0b3dfe500de26c52abe0477dde16192ac39c98f05bf2d80e76102d394bd13854 \ - --hash=sha256:0e4216e64d203e39c62df627aa882f02a2438d18a5f21d7f721621f7a5d3611d \ - --hash=sha256:121ceb0e822f79163dd4699e4c54f5ad38b157084d97b34de8b232bcaad70278 \ - --hash=sha256:159cac0a3d096f79ab6a44d77a961917219707e2a130739c64d4dd46281f5c2a \ - --hash=sha256:15aae984e46de8d376df515f00450d1522077254ef6b7ce189b38ecee7c9677c \ - --hash=sha256:15cc53a3179ba0fcefe1e3ae50beb2784dede4003ad2dfd24f81bba4b23a454f \ - --hash=sha256:161c27ccce13b6b0c8689418da3885d3220ed2eae2ea5e9b2f7f3d48f1d52c27 \ - --hash=sha256:19910754e4cc9c63bc1c7f6d73aa1cfee82f42007e407c0f413695c2f7ed777f \ - --hash=sha256:1ba5e3963344ff25fc8c40da90f44b0afca8cfd89d12964feb79ac1411a260ac \ - --hash=sha256:1c00666a3bd2f84920a4e94434f5974d7bbc57e461318d6bb34ce9cdbbc1f6b2 \ - --hash=sha256:1c39b07d90be6b48968ddc8c19e7585052088fd7ec8d568bb31ff64c70ae3c97 \ - --hash=sha256:206b5cf6f0c513baffaeae7bd817717140770c74528f3e4c3e1cec7871ddd61a \ - --hash=sha256:258c57abf1188926c774a4c94dd29237e77eda19462e5bb901d88adcab6af919 \ - --hash=sha256:2cdf7d86886bc6982354862204ae3b2f7f96f21a3eb0ba5ca0ac42c7b38598b9 \ - --hash=sha256:2d4567c850905d5eaaed2f7a404e61012a51caf288292e016360aa2b96ff38d4 \ - --hash=sha256:35c14ac45fcfdf7167ca76cc80b2001205a8d5d16d80524e13508371fb8cdd9c \ - --hash=sha256:38de0a70160dd97540335b7ad3a74571b24f1dc3ed33f815f0880682e6880131 \ - --hash=sha256:3af385b0cee8df3746c3f406f38bcbfdc9041b5c2d5ce3e5fc6637256e60bbc5 \ - --hash=sha256:3b748c44bb9f53031c8cbc99a8a061bc181c1000c60a30f55393b6e9c45cc5bd \ - --hash=sha256:3bbd5d8cc692616d5ef6fbbbd50dbec142c7e6ad9beb66b78a96e9c16729b089 \ - --hash=sha256:3ccaa88b24eebc0f849ce0a4d09e8a408ec5a94afff395eb69baf868f5183107 \ - --hash=sha256:3fa80ac2bd5856580e242dbc202db873c60a01b20309c8319b5c5986fbe53ce6 \ - --hash=sha256:4228b5b646caa73f119b1ae756216b59cc6e2267201c27d3912b592c5e323b60 \ - --hash=sha256:42b0e23f119b2b456d07ca91b307ae167cc3f6c846a7b169fca5326e32fdc6cf \ - --hash=sha256:45cf8588c066860b623cd11c4ba687f8d7175d5f7ef65f7129df8a394c502de5 \ - --hash=sha256:45d9c5eb9273aa50999ad6adc6be5e0ecea7e09dbd0d31bd0c65a55a2592ca08 \ - --hash=sha256:4603137322c18eaf2e06a4495f426aa8d8388940f3c457e7548145011bb68e05 \ - --hash=sha256:46ccfe3032b3915586e469d4972973f893c0a2bb65669194a5bdea9bacc088c2 \ - --hash=sha256:4fefee876e07a6e9aad7a8c8c9f85b0cdbe7df52b8a9552307b09050f7512c7e \ - --hash=sha256:5556470f1a2157031e676f776c2bc20acd34c1990ca5f7e56f1ebf938b9ab57c \ - --hash=sha256:57866a76e0b3823e0b56692d1a0bf722bffb324839bb5b7226a7dbd6c9a40b17 \ - --hash=sha256:5897bec80a09b4084aee23f9b73a9477a46c3304ad1d2d07acca19723fb1de62 \ - --hash=sha256:58ca98a950171f3151c603aeea9303ef6c235f692fe555e883591103da709b23 \ - --hash=sha256:5ca038c7f6a0afd0b2448941b6ef9d5e1949e999f9e5517692eb6da58e9d44be \ - --hash=sha256:5f6c8a66741c5f5447e047ab0ba7a1c61d1e95580d64bce852e3df1f895c4067 \ - --hash=sha256:5f8c4718cd44ec1580e180cb739713ecda2bdee1341084c1467802a417fe0f02 \ - --hash=sha256:5fde892e6c697ce3e30c61b239330fc5d569a71fefd4eb6512fc6caec9dd9e2f \ - --hash=sha256:62a763352879b84aa31058fc931884055fd75089cccbd9d58bb6afd01141b235 \ - --hash=sha256:62ba45e21cf6571d7f716d903b5b7b6d2617e2d5d67c0923dc47b9d41369f840 \ - --hash=sha256:64c65f40b4cd8b0e049a8edde07e38b476da7e3aaebe63287c899d2cff253fa5 \ - --hash=sha256:655d7dd86f26cb15ce8a431036f66ce0318648f8853d709b4167786ec2fa4807 \ - --hash=sha256:66ff044fd0bb1768688aecbe28b6190f6e799349221fb0de0e6f4048eca14c16 \ - --hash=sha256:672ebbe820bb37988c4d136eca2652ee114992d5d41c7e4858cdd90ea94ffe5c \ - --hash=sha256:6b9af86e1d8e4cfc82c2022bfaa6f459381a50b94a29e95dcdda8442d6d83864 \ - --hash=sha256:6e0bd57539da59a3e4671b90a502da9a28c72322a4f17866ba3ac63a82c4498e \ - --hash=sha256:71a5e35c75c021aaf400ac048dacc855f000bdfed91614b4a726f7432f1f3d6a \ - --hash=sha256:7597c07fbd11515f654d6ece3d0e4e5093edc30a436c63142d9a4b8e22f19c35 \ - --hash=sha256:764be71193f87d460a03f1f7385a82e226639732214b402f9aa61f0d025f0737 \ - --hash=sha256:7699b1df36a48169cdebda7ab5a2bac265204003f153b4bd17276153d997670a \ - --hash=sha256:7ccebf51efc61634f6c2344da73e366c75e735960b5654b63d7e6f69a5885fa3 \ - --hash=sha256:7f7059ca8d64fea7f238994c97d91f75965216bcbe5f695bb44f354893f11d52 \ - --hash=sha256:8065914ff79f7eab1599bd80406681f0ad08f8e47c880f17b416c9f8f7a26d05 \ - --hash=sha256:816f5aa087094099fff7edabb5e01cc370eb21aa1a1d44fe2d2aefdfb5599b31 \ - --hash=sha256:81f2ec23ddc1b476ff96563f2e8d723830b06dceae348ce02914a37cb4e74b89 \ - --hash=sha256:84286494f6c5d05243456e04223d5a9417d7f443c3b76065e75001beb26f88de \ - --hash=sha256:8bf7b66ce12a2ac52d16f776b31d16d91033150266eb796967a7e4621707e4f6 \ - --hash=sha256:8f1edcea27918d748c7e5e4d917297b2a0ab80cad10f86631e488b7cddf76a36 \ - --hash=sha256:981fb88516bd1ae8b0cbbd2034678a39dedc98752f264ac9bc5839d3923fa04c \ - --hash=sha256:98476c98b02c8e9b2eec76ac4156fd006628b1b2d0ef27e548ffa978393fd154 \ - --hash=sha256:992cea5f4f3b29d6b4f7f1726ed8ee46c8331c6b4eed6db5b40134c6fe1768bb \ - --hash=sha256:9a3b0793b1bbfd4146304e23d90045f2a9b5fd5823aa682665fbdaf2a6c28f3e \ - --hash=sha256:9a42d6a8156ff78981f8aa56eb6394114e0dedb217cf8b729f438f643608cbcd \ - --hash=sha256:9c10c309e18e443ddb108f0ef64e8729363adbfd92d6d57beec680f6261556f3 \ - --hash=sha256:9cbd94fc661d2bab2bc702cddd2d3370bbdcc4cd0f8f57488a81bcce90c7a54f \ - --hash=sha256:9fdcf339322a3fae5cbd504edcefddd5a50d9ee00d968696846f089b4432cf78 \ - --hash=sha256:a0697803ed7d4af5e4c1adf1670af078f8fcab7a86350e969f454daf598c4960 \ - --hash=sha256:a28af0695a45f7060e6f9b7092558a928a28553366519f64083c63a44f70e618 \ - --hash=sha256:a2e02889071850bbfd36b56fd6bc98945e23670773bc7a76657e90e6b6603c08 \ - --hash=sha256:a33cd6ad9017bbeaa9ed78a2e0752c5e250eafb9534f308e7a5f7849b0b1bfb4 \ - --hash=sha256:a3cb37038123447cf0f3ea4c74751f6a9d7afef0eb71aa07bf5f652b5e6a132c \ - --hash=sha256:a57847b090d7892f123726202b7daa20df6694cbd583b67a592e856bff603d6c \ - --hash=sha256:a5a8e19d7c707c4cadb8c18f5f60c843052ae83c20fa7d44f41594c644a1d330 \ - --hash=sha256:ac3b20653bdbe160febbea8aa6c079d3df19310d50ac314911ed8cc4eb7f8cb8 \ - --hash=sha256:ac6c2c45c847bbf8f91930d88716a0fb924b51e0c6dad329b793d670ec5db792 \ - --hash=sha256:acc07b2cfc5b835444b44a9956846b578d27beeacd4b52e45489e93276241025 \ - --hash=sha256:aee66be87825cdf72ac64cb03ad4c15ffef4143dbf5c113f64a5ff4f81477bf9 \ - --hash=sha256:af52d26579b308921b73b956153066481f064875140ccd1dfd4e77db89dbb12f \ - --hash=sha256:b94d4ba43739bbe8b0ce4262bcc3b7b9f31459ad120fb595627eaeb7f9b9ca01 \ - --hash=sha256:ba630d5e3db74c79300d9a5bdaaf6200172b107f263c98a0539eeecb857b2337 \ - --hash=sha256:bed0f8a0eeea9fb72937ba118f9db0cb7e90773462af7962d382445f3005e5a4 \ - --hash=sha256:bf99c8404f008750c846cb4ac4667b798a9f7de673ff719d705d9b2d6de49c5f \ - --hash=sha256:c3027001c28434e7ca5a6e1e527487051136aa81803ac812be51802150d880dd \ - --hash=sha256:c65af9088ac534313e1963443d0ec360bb2b9cba6c2909478d22c2e363d98a51 \ - --hash=sha256:d0165ab2914379bd56908c02294ed8405c252250668ebcb438a55494c69f44ab \ - --hash=sha256:d1b26e1dff225c31897696cab7d4f0a315d4c0d9e8666dbffdb28216f3b17fdc \ - --hash=sha256:d950caa237bb1954f1b8c9227b5065ba6875ac9771bb8ec790d956a699b78676 \ - --hash=sha256:dc61505e73298a84a2f317255fcc72b710b72980f3a1f670447a21efc88f8381 \ - --hash=sha256:e173486019cc283dc9778315fa29a363579372fe67045e971e89b6365cc035ed \ - --hash=sha256:e1f735dc43da318cad19b4173dd1ffce1d84aafd6c9b782b3abc04a0d5a6f5bb \ - --hash=sha256:e9386266798d64eeb19dd3677051f5705bf873e98e15897ddb7d76f477131967 \ - --hash=sha256:f216dbce0e60e4d03e0c4353c7023b202d95cbaeff12e5fd2e82ea0a66905073 \ - --hash=sha256:f4e5658dbffe8843a0f12366a4c2d1c316dbe09bb4dfbdc9d2d9cd6031de8aae \ - --hash=sha256:f5a823165e6d04ccea61a9f0576f345f8ce40ed533013580e087bd4d7442b52c \ - --hash=sha256:f69ed81ab24d5a3bd93861c8c4436f54afdf8e8cc421562b0c7504cf3be58206 \ - --hash=sha256:f82d068a2d6ecfc6e054726080af69a6764a10015467d7d7b9f66d6ed5afa23b -pydantic==2.10.3 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:be04d85bbc7b65651c5f8e6b9976ed9c6f41782a55524cef079a34a0bb82144d \ - --hash=sha256:cb5ac360ce894ceacd69c403187900a02c4b20b693a9dd1d643e1effab9eadf9 -python-dateutil==2.9.0.post0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \ - --hash=sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427 -python-multipart==0.0.19 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:905502ef39050557b7a6af411f454bc19526529ca46ae6831508438890ce12cc \ - --hash=sha256:f8d5b0b9c618575bf9df01c684ded1d94a338839bdd8223838afacfb4bb2082d -pytz==2024.2 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a \ - --hash=sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725 -requests==2.32.3 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760 \ - --hash=sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6 -six==1.17.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 \ - --hash=sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81 -sniffio==1.3.1 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2 \ - --hash=sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc -soupsieve==2.6 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb \ - --hash=sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9 -starlette==0.41.3 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:0e4ab3d16522a255be6b28260b938eae2482f98ce5cc934cb08dce8dc3ba5835 \ - --hash=sha256:44cedb2b7c77a9de33a8b74b2b90e9f50d11fcf25d8270ea525ad71a25374ff7 -tomli==2.2.1 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6 \ - --hash=sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd \ - --hash=sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c \ - --hash=sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b \ - --hash=sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8 \ - --hash=sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6 \ - --hash=sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77 \ - --hash=sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff \ - --hash=sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea \ - --hash=sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192 \ - --hash=sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249 \ - --hash=sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee \ - --hash=sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4 \ - --hash=sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98 \ - --hash=sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8 \ - --hash=sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4 \ - --hash=sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281 \ - --hash=sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744 \ - --hash=sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69 \ - --hash=sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13 \ - --hash=sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140 \ - --hash=sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e \ - --hash=sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e \ - --hash=sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc \ - --hash=sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff \ - --hash=sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec \ - --hash=sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2 \ - --hash=sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222 \ - --hash=sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106 \ - --hash=sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272 \ - --hash=sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a \ - --hash=sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7 -typing-extensions==4.12.2 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d \ - --hash=sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8 -tzdata==2024.2 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc \ - --hash=sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd -urllib3==2.2.3 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac \ - --hash=sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9 -uvicorn==0.34.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4 \ - --hash=sha256:404051050cd7e905de2c9a7e61790943440b3416f49cb409f965d9dcd0fa73e9 -webencodings==0.5.1 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78 \ - --hash=sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923 -yfinance==0.2.50 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:0db13b19313043328fe88ded2ddc306ede7d901d0f5181462a1cce76acdbcd2a \ - --hash=sha256:33b379cad4261313dc93bfe3148d2f6e6083210e6341f0c93dd3af853019b1a0 diff --git a/portfolio_analytics/common/data/market_data/fx.snappy.parquet b/portfolio_analytics/common/data/market_data/fx.snappy.parquet index f80bc76103182e382c6264f98011689d01af6128..78dacdaeb27dc3ce00eee6d61a660b0f4c0bb303 100644 GIT binary patch delta 699 zcmcb&kZtlJHpu|TAVX0W(F3cwM8C{p_YvK(lu?vHh=Jk3M#-3G^*jvk{9f`Y2yraP zY7&wVV%ea<*}-w4$CXurqaf3im4n5hRm{MagTbYWRfFS#ekm&l#{;_tP7a3oVhcoA z81gtLumpsNDR6NtsO}ePa5P|;SN+PKfq_BbPyQ==Q3lZ;tC&DoM|8s~Mo|G#Hc>Vi z2@arq!JYTt>?JrR-+87exo0Y)g*Z@bgB>IDzXdWtVvZ>5m&IN$Hj6zk@?Z?y-l@;1 z#8e-V8MbO_-cq1K5CD3~K-9zsXd=in5;3~w4W$X1Yzzi6obQ@|^n;@>mMjC(KsTs} zYM|N=lat_p=@Mhm;J_3GS|jAb0wjTsXOw4}u!@m^Idqi(6VUDpg`&3#eMGm&fUSRF z@g;q`fe~Y>jAOPR&}|H&4_+~fKDo_^VlN9wPJ*Szg@FNR9}*8_L+KX*Nw8JhFZnTE zHWS^xM-u0M95tNxu{+u3@$_A-j6RGTrn9#(Y5*yNHb!yQ2VOo}*{lG)QQv@u5MgT&r3 zihW~L`veqSbet0yGnioj51Hwa?TjXRAWb{&GKn2K$D}r8H<#LslR#}qUP1NP^nXAX zPQTR7C?p8dc!Ei68I#(x89ZwDrt?haZ)230&fCE#%zb4iKgfk@9AbaAYj-ei<^TZs CvCY{4 delta 602 zcmbQdi0$4&Hpu|TAVX0W(T3GrqDN-2`-pB>$|%Yp#K3T1qh!ppAdUsq{Xz1Y6%z>Sh_0A?|CyQOx~Ys7;y~FAc8tvb7RUgJIijpzrg}ZttoOXggVBHc zLVZRhrh1^e6hu{gfE36@0yetl4W$X1Yzzi6obQ@|G|*r1(ytY=;$!>~byaf1xg8W|v)WsM9gD}zT~ zHuv<#HpUpB%6n~$l6*jwVqMpH#LgY#RQob(I%_*)ls-u82BX*mMzv|jIn}Nm= "3.10" and python_version < "3.11" \ - --hash=sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf \ - --hash=sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc -certifi==2024.12.14 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56 \ - --hash=sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db -charset-normalizer==3.4.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621 \ - --hash=sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6 \ - --hash=sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8 \ - --hash=sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912 \ - --hash=sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c \ - --hash=sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b \ - --hash=sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d \ - --hash=sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d \ - --hash=sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95 \ - --hash=sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e \ - --hash=sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565 \ - --hash=sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64 \ - --hash=sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab \ - --hash=sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be \ - --hash=sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e \ - --hash=sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907 \ - --hash=sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0 \ - --hash=sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2 \ - --hash=sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62 \ - --hash=sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62 \ - --hash=sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23 \ - --hash=sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc \ - --hash=sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284 \ - --hash=sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca \ - --hash=sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455 \ - --hash=sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858 \ - --hash=sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b \ - --hash=sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594 \ - --hash=sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc \ - --hash=sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db \ - --hash=sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b \ - --hash=sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea \ - --hash=sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6 \ - --hash=sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920 \ - --hash=sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749 \ - --hash=sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7 \ - --hash=sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd \ - --hash=sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99 \ - --hash=sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242 \ - --hash=sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee \ - --hash=sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129 \ - --hash=sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2 \ - --hash=sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51 \ - --hash=sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee \ - --hash=sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8 \ - --hash=sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b \ - --hash=sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613 \ - --hash=sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742 \ - --hash=sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe \ - --hash=sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3 \ - --hash=sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5 \ - --hash=sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631 \ - --hash=sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7 \ - --hash=sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15 \ - --hash=sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c \ - --hash=sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea \ - --hash=sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417 \ - --hash=sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250 \ - --hash=sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88 \ - --hash=sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca \ - --hash=sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa \ - --hash=sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99 \ - --hash=sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149 \ - --hash=sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41 \ - --hash=sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574 \ - --hash=sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0 \ - --hash=sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f \ - --hash=sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d \ - --hash=sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654 \ - --hash=sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3 \ - --hash=sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19 \ - --hash=sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90 \ - --hash=sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578 \ - --hash=sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9 \ - --hash=sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1 \ - --hash=sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51 \ - --hash=sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719 \ - --hash=sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236 \ - --hash=sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a \ - --hash=sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c \ - --hash=sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade \ - --hash=sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944 \ - --hash=sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc \ - --hash=sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6 \ - --hash=sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6 \ - --hash=sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27 \ - --hash=sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6 \ - --hash=sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2 \ - --hash=sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12 \ - --hash=sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf \ - --hash=sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114 \ - --hash=sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7 \ - --hash=sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf \ - --hash=sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d \ - --hash=sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b \ - --hash=sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed \ - --hash=sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03 \ - --hash=sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4 \ - --hash=sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67 \ - --hash=sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365 \ - --hash=sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a \ - --hash=sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748 \ - --hash=sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b \ - --hash=sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079 \ - --hash=sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482 -click==8.1.7 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 \ - --hash=sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de -colorama==0.4.6 ; python_version >= "3.10" and python_version < "3.11" and platform_system == "Windows" \ - --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ - --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 -dash-bootstrap-components==1.6.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:960a1ec9397574792f49a8241024fa3cecde0f5930c971a3fc81f016cbeb1095 \ - --hash=sha256:97f0f47b38363f18863e1b247462229266ce12e1e171cfb34d3c9898e6e5cd1e -dash-core-components==2.0.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:52b8e8cce13b18d0802ee3acbc5e888cb1248a04968f962d63d070400af2e346 \ - --hash=sha256:c6733874af975e552f95a1398a16c2ee7df14ce43fa60bb3718a3c6e0b63ffee -dash-html-components==2.0.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:8703a601080f02619a6390998e0b3da4a5daabe97a1fd7a9cebc09d015f26e50 \ - --hash=sha256:b42cc903713c9706af03b3f2548bda4be7307a7cf89b7d6eae3da872717d1b63 -dash-table==5.0.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:18624d693d4c8ef2ddec99a6f167593437a7ea0bf153aa20f318c170c5bc7308 \ - --hash=sha256:19036fa352bb1c11baf38068ec62d172f0515f73ca3276c79dee49b95ddc16c9 -dash==2.18.2 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:0ce0479d1bc958e934630e2de7023b8a4558f23ce1f9f5a4b34b65eb3903a869 \ - --hash=sha256:20e8404f73d0fe88ce2eae33c25bbc513cbe52f30d23a401fa5f24dbb44296c8 -et-xmlfile==2.0.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:7a91720bc756843502c3b7504c77b8fe44217c85c537d85037f0f536151b2caa \ - --hash=sha256:dab3f4764309081ce75662649be815c4c9081e88f0837825f90fd28317d4da54 -flask==3.0.3 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:34e815dfaa43340d1d15a5c3a02b8476004037eb4840b34910c6e21679d288f3 \ - --hash=sha256:ceb27b0af3823ea2737928a4d99d125a06175b8512c445cbd9a9ce200ef76842 -gunicorn==23.0.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:ec400d38950de4dfd418cff8328b2c8faed0edb0d517d3394e457c317908ca4d \ - --hash=sha256:f014447a0101dc57e294f6c18ca6b40227a4c90e9bdb586042628030cba004ec -idna==3.10 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9 \ - --hash=sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3 -importlib-metadata==8.5.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b \ - --hash=sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7 -itsdangerous==2.2.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef \ - --hash=sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173 -jinja2==3.1.4 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369 \ - --hash=sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d -markupsafe==3.0.2 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4 \ - --hash=sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30 \ - --hash=sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0 \ - --hash=sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9 \ - --hash=sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396 \ - --hash=sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13 \ - --hash=sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028 \ - --hash=sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca \ - --hash=sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557 \ - --hash=sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832 \ - --hash=sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0 \ - --hash=sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b \ - --hash=sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579 \ - --hash=sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a \ - --hash=sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c \ - --hash=sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff \ - --hash=sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c \ - --hash=sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22 \ - --hash=sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094 \ - --hash=sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb \ - --hash=sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e \ - --hash=sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5 \ - --hash=sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a \ - --hash=sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d \ - --hash=sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a \ - --hash=sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b \ - --hash=sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8 \ - --hash=sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225 \ - --hash=sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c \ - --hash=sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144 \ - --hash=sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f \ - --hash=sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87 \ - --hash=sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d \ - --hash=sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93 \ - --hash=sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf \ - --hash=sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158 \ - --hash=sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84 \ - --hash=sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb \ - --hash=sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48 \ - --hash=sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171 \ - --hash=sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c \ - --hash=sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6 \ - --hash=sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd \ - --hash=sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d \ - --hash=sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1 \ - --hash=sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d \ - --hash=sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca \ - --hash=sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a \ - --hash=sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29 \ - --hash=sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe \ - --hash=sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798 \ - --hash=sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c \ - --hash=sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8 \ - --hash=sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f \ - --hash=sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f \ - --hash=sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a \ - --hash=sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178 \ - --hash=sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0 \ - --hash=sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79 \ - --hash=sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430 \ - --hash=sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50 -nest-asyncio==1.6.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe \ - --hash=sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c -numpy==2.2.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:0557eebc699c1c34cccdd8c3778c9294e8196df27d713706895edc6f57d29608 \ - --hash=sha256:0798b138c291d792f8ea40fe3768610f3c7dd2574389e37c3f26573757c8f7ef \ - --hash=sha256:0da8495970f6b101ddd0c38ace92edea30e7e12b9a926b57f5fabb1ecc25bb90 \ - --hash=sha256:0f0986e917aca18f7a567b812ef7ca9391288e2acb7a4308aa9d265bd724bdae \ - --hash=sha256:122fd2fcfafdefc889c64ad99c228d5a1f9692c3a83f56c292618a59aa60ae83 \ - --hash=sha256:140dd80ff8981a583a60980be1a655068f8adebf7a45a06a6858c873fcdcd4a0 \ - --hash=sha256:16757cf28621e43e252c560d25b15f18a2f11da94fea344bf26c599b9cf54b73 \ - --hash=sha256:18142b497d70a34b01642b9feabb70156311b326fdddd875a9981f34a369b671 \ - --hash=sha256:1c92113619f7b272838b8d6702a7f8ebe5edea0df48166c47929611d0b4dea69 \ - --hash=sha256:1e25507d85da11ff5066269d0bd25d06e0a0f2e908415534f3e603d2a78e4ffa \ - --hash=sha256:30bf971c12e4365153afb31fc73f441d4da157153f3400b82db32d04de1e4066 \ - --hash=sha256:3579eaeb5e07f3ded59298ce22b65f877a86ba8e9fe701f5576c99bb17c283da \ - --hash=sha256:36b2b43146f646642b425dd2027730f99bac962618ec2052932157e213a040e9 \ - --hash=sha256:3905a5fffcc23e597ee4d9fb3fcd209bd658c352657548db7316e810ca80458e \ - --hash=sha256:3a4199f519e57d517ebd48cb76b36c82da0360781c6a0353e64c0cac30ecaad3 \ - --hash=sha256:3f2f5cddeaa4424a0a118924b988746db6ffa8565e5829b1841a8a3bd73eb59a \ - --hash=sha256:40deb10198bbaa531509aad0cd2f9fadb26c8b94070831e2208e7df543562b74 \ - --hash=sha256:440cfb3db4c5029775803794f8638fbdbf71ec702caf32735f53b008e1eaece3 \ - --hash=sha256:4723a50e1523e1de4fccd1b9a6dcea750c2102461e9a02b2ac55ffeae09a4410 \ - --hash=sha256:4bddbaa30d78c86329b26bd6aaaea06b1e47444da99eddac7bf1e2fab717bd72 \ - --hash=sha256:4e58666988605e251d42c2818c7d3d8991555381be26399303053b58a5bbf30d \ - --hash=sha256:54dc1d6d66f8d37843ed281773c7174f03bf7ad826523f73435deb88ba60d2d4 \ - --hash=sha256:57fcc997ffc0bef234b8875a54d4058afa92b0b0c4223fc1f62f24b3b5e86038 \ - --hash=sha256:58b92a5828bd4d9aa0952492b7de803135038de47343b2aa3cc23f3b71a3dc4e \ - --hash=sha256:5a145e956b374e72ad1dff82779177d4a3c62bc8248f41b80cb5122e68f22d13 \ - --hash=sha256:6ab153263a7c5ccaf6dfe7e53447b74f77789f28ecb278c3b5d49db7ece10d6d \ - --hash=sha256:7832f9e8eb00be32f15fdfb9a981d6955ea9adc8574c521d48710171b6c55e95 \ - --hash=sha256:7fe4bb0695fe986a9e4deec3b6857003b4cfe5c5e4aac0b95f6a658c14635e31 \ - --hash=sha256:7fe8f3583e0607ad4e43a954e35c1748b553bfe9fdac8635c02058023277d1b3 \ - --hash=sha256:85ad7d11b309bd132d74397fcf2920933c9d1dc865487128f5c03d580f2c3d03 \ - --hash=sha256:9874bc2ff574c40ab7a5cbb7464bf9b045d617e36754a7bc93f933d52bd9ffc6 \ - --hash=sha256:a184288538e6ad699cbe6b24859206e38ce5fba28f3bcfa51c90d0502c1582b2 \ - --hash=sha256:a222d764352c773aa5ebde02dd84dba3279c81c6db2e482d62a3fa54e5ece69b \ - --hash=sha256:a50aeff71d0f97b6450d33940c7181b08be1441c6c193e678211bff11aa725e7 \ - --hash=sha256:a55dc7a7f0b6198b07ec0cd445fbb98b05234e8b00c5ac4874a63372ba98d4ab \ - --hash=sha256:a62eb442011776e4036af5c8b1a00b706c5bc02dc15eb5344b0c750428c94219 \ - --hash=sha256:a7d41d1612c1a82b64697e894b75db6758d4f21c3ec069d841e60ebe54b5b571 \ - --hash=sha256:a98f6f20465e7618c83252c02041517bd2f7ea29be5378f09667a8f654a5918d \ - --hash=sha256:afe8fb968743d40435c3827632fd36c5fbde633b0423da7692e426529b1759b1 \ - --hash=sha256:b0b227dcff8cdc3efbce66d4e50891f04d0a387cce282fe1e66199146a6a8fca \ - --hash=sha256:b30042fe92dbd79f1ba7f6898fada10bdaad1847c44f2dff9a16147e00a93661 \ - --hash=sha256:b606b1aaf802e6468c2608c65ff7ece53eae1a6874b3765f69b8ceb20c5fa78e \ - --hash=sha256:b6207dc8fb3c8cb5668e885cef9ec7f70189bec4e276f0ff70d5aa078d32c88e \ - --hash=sha256:c2aed8fcf8abc3020d6a9ccb31dbc9e7d7819c56a348cc88fd44be269b37427e \ - --hash=sha256:cb24cca1968b21355cc6f3da1a20cd1cebd8a023e3c5b09b432444617949085a \ - --hash=sha256:cff210198bb4cae3f3c100444c5eaa573a823f05c253e7188e1362a5555235b3 \ - --hash=sha256:d35717333b39d1b6bb8433fa758a55f1081543de527171543a2b710551d40881 \ - --hash=sha256:df12a1f99b99f569a7c2ae59aa2d31724e8d835fc7f33e14f4792e3071d11221 \ - --hash=sha256:e09d40edfdb4e260cb1567d8ae770ccf3b8b7e9f0d9b5c2a9992696b30ce2742 \ - --hash=sha256:e12c6c1ce84628c52d6367863773f7c8c8241be554e8b79686e91a43f1733773 \ - --hash=sha256:e2b8cd48a9942ed3f85b95ca4105c45758438c7ed28fff1e4ce3e57c3b589d8e \ - --hash=sha256:e500aba968a48e9019e42c0c199b7ec0696a97fa69037bea163b55398e390529 \ - --hash=sha256:ebe5e59545401fbb1b24da76f006ab19734ae71e703cdb4a8b347e84a0cece67 \ - --hash=sha256:f0dd071b95bbca244f4cb7f70b77d2ff3aaaba7fa16dc41f58d14854a6204e6c \ - --hash=sha256:f8c8b141ef9699ae777c6278b52c706b653bf15d135d302754f6b2e90eb30367 -openpyxl==3.1.5 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2 \ - --hash=sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050 -packaging==24.2 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759 \ - --hash=sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f -pandas==2.2.3 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a \ - --hash=sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d \ - --hash=sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5 \ - --hash=sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4 \ - --hash=sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0 \ - --hash=sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32 \ - --hash=sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea \ - --hash=sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28 \ - --hash=sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f \ - --hash=sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348 \ - --hash=sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18 \ - --hash=sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468 \ - --hash=sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5 \ - --hash=sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e \ - --hash=sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667 \ - --hash=sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645 \ - --hash=sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13 \ - --hash=sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30 \ - --hash=sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3 \ - --hash=sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d \ - --hash=sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb \ - --hash=sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3 \ - --hash=sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039 \ - --hash=sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8 \ - --hash=sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd \ - --hash=sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761 \ - --hash=sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659 \ - --hash=sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57 \ - --hash=sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c \ - --hash=sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c \ - --hash=sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4 \ - --hash=sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a \ - --hash=sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9 \ - --hash=sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42 \ - --hash=sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2 \ - --hash=sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39 \ - --hash=sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc \ - --hash=sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698 \ - --hash=sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed \ - --hash=sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015 \ - --hash=sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24 \ - --hash=sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319 -plotly==5.24.1 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:dbc8ac8339d248a4bcc36e08a5659bacfe1b079390b8953533f4eb22169b4bae \ - --hash=sha256:f67073a1e637eb0dc3e46324d9d51e2fe76e9727c892dde64ddf1e1b51f29089 -pyarrow==18.1.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:01c034b576ce0eef554f7c3d8c341714954be9b3f5d5bc7117006b85fcf302fe \ - --hash=sha256:05a5636ec3eb5cc2a36c6edb534a38ef57b2ab127292a716d00eabb887835f1e \ - --hash=sha256:0743e503c55be0fdb5c08e7d44853da27f19dc854531c0570f9f394ec9671d54 \ - --hash=sha256:0ad4892617e1a6c7a551cfc827e072a633eaff758fa09f21c4ee548c30bcaf99 \ - --hash=sha256:0b331e477e40f07238adc7ba7469c36b908f07c89b95dd4bd3a0ec84a3d1e21e \ - --hash=sha256:11b676cd410cf162d3f6a70b43fb9e1e40affbc542a1e9ed3681895f2962d3d9 \ - --hash=sha256:25dbacab8c5952df0ca6ca0af28f50d45bd31c1ff6fcf79e2d120b4a65ee7181 \ - --hash=sha256:2c4dd0c9010a25ba03e198fe743b1cc03cd33c08190afff371749c52ccbbaf76 \ - --hash=sha256:36ac22d7782554754a3b50201b607d553a8d71b78cdf03b33c1125be4b52397c \ - --hash=sha256:3b2e2239339c538f3464308fd345113f886ad031ef8266c6f004d49769bb074c \ - --hash=sha256:3c35813c11a059056a22a3bef520461310f2f7eea5c8a11ef9de7062a23f8d56 \ - --hash=sha256:4a4813cb8ecf1809871fd2d64a8eff740a1bd3691bbe55f01a3cf6c5ec869754 \ - --hash=sha256:4f443122c8e31f4c9199cb23dca29ab9427cef990f283f80fe15b8e124bcc49b \ - --hash=sha256:4f97b31b4c4e21ff58c6f330235ff893cc81e23da081b1a4b1c982075e0ed4e9 \ - --hash=sha256:543ad8459bc438efc46d29a759e1079436290bd583141384c6f7a1068ed6f992 \ - --hash=sha256:6a276190309aba7bc9d5bd2933230458b3521a4317acfefe69a354f2fe59f2bc \ - --hash=sha256:73eeed32e724ea3568bb06161cad5fa7751e45bc2228e33dcb10c614044165c7 \ - --hash=sha256:74de649d1d2ccb778f7c3afff6085bd5092aed4c23df9feeb45dd6b16f3811aa \ - --hash=sha256:84e314d22231357d473eabec709d0ba285fa706a72377f9cc8e1cb3c8013813b \ - --hash=sha256:9386d3ca9c145b5539a1cfc75df07757dff870168c959b473a0bccbc3abc8c73 \ - --hash=sha256:9736ba3c85129d72aefa21b4f3bd715bc4190fe4426715abfff90481e7d00812 \ - --hash=sha256:9f3a76670b263dc41d0ae877f09124ab96ce10e4e48f3e3e4257273cee61ad0d \ - --hash=sha256:a1880dd6772b685e803011a6b43a230c23b566859a6e0c9a276c1e0faf4f4052 \ - --hash=sha256:acb7564204d3c40babf93a05624fc6a8ec1ab1def295c363afc40b0c9e66c191 \ - --hash=sha256:ad514dbfcffe30124ce655d72771ae070f30bf850b48bc4d9d3b25993ee0e386 \ - --hash=sha256:aebc13a11ed3032d8dd6e7171eb6e86d40d67a5639d96c35142bd568b9299324 \ - --hash=sha256:b516dad76f258a702f7ca0250885fc93d1fa5ac13ad51258e39d402bd9e2e1e4 \ - --hash=sha256:b76130d835261b38f14fc41fdfb39ad8d672afb84c447126b84d5472244cfaba \ - --hash=sha256:ba17845efe3aa358ec266cf9cc2800fa73038211fb27968bfa88acd09261a470 \ - --hash=sha256:c0a03da7f2758645d17b7b4f83c8bffeae5bbb7f974523fe901f36288d2eab71 \ - --hash=sha256:c52f81aa6f6575058d8e2c782bf79d4f9fdc89887f16825ec3a66607a5dd8e30 \ - --hash=sha256:d4b3d2a34780645bed6414e22dda55a92e0fcd1b8a637fba86800ad737057e33 \ - --hash=sha256:d4f13eee18433f99adefaeb7e01d83b59f73360c231d4782d9ddfaf1c3fbde0a \ - --hash=sha256:d6cf5c05f3cee251d80e98726b5c7cc9f21bab9e9783673bac58e6dfab57ecc8 \ - --hash=sha256:da31fbca07c435be88a0c321402c4e31a2ba61593ec7473630769de8346b54ee \ - --hash=sha256:e21488d5cfd3d8b500b3238a6c4b075efabc18f0f6d80b29239737ebd69caa6c \ - --hash=sha256:e31e9417ba9c42627574bdbfeada7217ad8a4cbbe45b9d6bdd4b62abbca4c6f6 \ - --hash=sha256:eaeabf638408de2772ce3d7793b2668d4bb93807deed1725413b70e3156a7854 \ - --hash=sha256:f266a2c0fc31995a06ebd30bcfdb7f615d7278035ec5b1cd71c48d56daaf30b0 \ - --hash=sha256:f39a2e0ed32a0970e4e46c262753417a60c43a3246972cfc2d3eb85aedd01b21 \ - --hash=sha256:f591704ac05dfd0477bb8f8e0bd4b5dc52c1cadf50503858dce3a15db6e46ff2 \ - --hash=sha256:f96bd502cb11abb08efea6dab09c003305161cb6c9eafd432e35e76e7fa9b90c -python-dateutil==2.9.0.post0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \ - --hash=sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427 -pytz==2024.2 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a \ - --hash=sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725 -requests==2.32.3 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760 \ - --hash=sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6 -retrying==1.3.4 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:345da8c5765bd982b1d1915deb9102fd3d1f7ad16bd84a9700b85f64d24e8f3e \ - --hash=sha256:8cc4d43cb8e1125e0ff3344e9de678fefd85db3b750b81b2240dc0183af37b35 -setuptools==75.6.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:8199222558df7c86216af4f84c30e9b34a61d8ba19366cc914424cdbd28252f6 \ - --hash=sha256:ce74b49e8f7110f9bf04883b730f4765b774ef3ef28f722cce7c273d253aaf7d -six==1.17.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 \ - --hash=sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81 -tenacity==9.0.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:807f37ca97d62aa361264d497b0e31e92b8027044942bfa756160d908320d73b \ - --hash=sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539 -tomli==2.2.1 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6 \ - --hash=sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd \ - --hash=sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c \ - --hash=sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b \ - --hash=sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8 \ - --hash=sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6 \ - --hash=sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77 \ - --hash=sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff \ - --hash=sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea \ - --hash=sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192 \ - --hash=sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249 \ - --hash=sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee \ - --hash=sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4 \ - --hash=sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98 \ - --hash=sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8 \ - --hash=sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4 \ - --hash=sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281 \ - --hash=sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744 \ - --hash=sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69 \ - --hash=sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13 \ - --hash=sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140 \ - --hash=sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e \ - --hash=sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e \ - --hash=sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc \ - --hash=sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff \ - --hash=sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec \ - --hash=sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2 \ - --hash=sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222 \ - --hash=sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106 \ - --hash=sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272 \ - --hash=sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a \ - --hash=sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7 -typing-extensions==4.12.2 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d \ - --hash=sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8 -tzdata==2024.2 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc \ - --hash=sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd -urllib3==2.2.3 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac \ - --hash=sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9 -werkzeug==3.0.6 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:1bc0c2310d2fbb07b1dd1105eba2f7af72f322e1e455f2f93c993bee8c8a5f17 \ - --hash=sha256:a8dd59d4de28ca70471a34cba79bed5f7ef2e036a76b3ab0835474246eb41f8d -zipp==3.21.0 ; python_version >= "3.10" and python_version < "3.11" \ - --hash=sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4 \ - --hash=sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931 diff --git a/pyproject.toml b/pyproject.toml index 2d372fb..3829b40 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ packages = [{ include = "portfolio_analytics" }] [tool.poetry.dependencies] -python = ">=3.10,<3.11" +python = ">=3.12,<3.13" numpy = "^2.1.3" openpyxl = "^3.1.5" pandas = "^2.2.3" diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 3705b99..0000000 --- a/requirements.txt +++ /dev/null @@ -1,206 +0,0 @@ -annotated-types==0.7.0 ; python_version >= "3.10" and python_version < "3.11" -anyio==4.7.0 ; python_version >= "3.10" and python_version < "3.11" -appnope==0.1.4 ; python_version >= "3.10" and python_version < "3.11" and platform_system == "Darwin" -argon2-cffi-bindings==21.2.0 ; python_version >= "3.10" and python_version < "3.11" -argon2-cffi==23.1.0 ; python_version >= "3.10" and python_version < "3.11" -arrow==1.3.0 ; python_version >= "3.10" and python_version < "3.11" -astroid==3.3.6 ; python_version >= "3.10" and python_version < "3.11" -asttokens==3.0.0 ; python_version >= "3.10" and python_version < "3.11" -async-lru==2.0.4 ; python_version >= "3.10" and python_version < "3.11" -attrs==24.3.0 ; python_version >= "3.10" and python_version < "3.11" -autoflake==2.3.1 ; python_version >= "3.10" and python_version < "3.11" -babel==2.16.0 ; python_version >= "3.10" and python_version < "3.11" -backports-tarfile==1.2.0 ; python_version >= "3.10" and python_version < "3.11" -beautifulsoup4==4.12.3 ; python_version >= "3.10" and python_version < "3.11" -black==24.10.0 ; python_version >= "3.10" and python_version < "3.11" -bleach==6.2.0 ; python_version >= "3.10" and python_version < "3.11" -blinker==1.9.0 ; python_version >= "3.10" and python_version < "3.11" -certifi==2024.12.14 ; python_version >= "3.10" and python_version < "3.11" -cffi==1.17.1 ; python_version >= "3.10" and python_version < "3.11" -charset-normalizer==3.4.0 ; python_version >= "3.10" and python_version < "3.11" -click-log==0.4.0 ; python_version >= "3.10" and python_version < "3.11" -click==8.1.7 ; python_version >= "3.10" and python_version < "3.11" -colorama==0.4.6 ; python_version >= "3.10" and python_version < "3.11" -comm==0.2.2 ; python_version >= "3.10" and python_version < "3.11" -contourpy==1.3.1 ; python_version >= "3.10" and python_version < "3.11" -coverage==7.6.9 ; python_version >= "3.10" and python_version < "3.11" -coverage[toml]==7.6.9 ; python_version >= "3.10" and python_version < "3.11" -cryptography==44.0.0 ; python_version >= "3.10" and python_version < "3.11" -cycler==0.12.1 ; python_version >= "3.10" and python_version < "3.11" -dash-bootstrap-components==1.6.0 ; python_version >= "3.10" and python_version < "3.11" -dash-core-components==2.0.0 ; python_version >= "3.10" and python_version < "3.11" -dash-html-components==2.0.0 ; python_version >= "3.10" and python_version < "3.11" -dash-table==5.0.0 ; python_version >= "3.10" and python_version < "3.11" -dash-testing-stub==0.0.2 ; python_version >= "3.10" and python_version < "3.11" -dash==2.18.2 ; python_version >= "3.10" and python_version < "3.11" -dash[testing]==2.18.2 ; python_version >= "3.10" and python_version < "3.11" -debugpy==1.8.11 ; python_version >= "3.10" and python_version < "3.11" -decorator==5.1.1 ; python_version >= "3.10" and python_version < "3.11" -defusedxml==0.7.1 ; python_version >= "3.10" and python_version < "3.11" -dill==0.3.9 ; python_version >= "3.10" and python_version < "3.11" -docutils==0.21.2 ; python_version >= "3.10" and python_version < "3.11" -dotty-dict==1.3.1 ; python_version >= "3.10" and python_version < "3.11" -et-xmlfile==2.0.0 ; python_version >= "3.10" and python_version < "3.11" -exceptiongroup==1.2.2 ; python_version >= "3.10" and python_version < "3.11" -executing==2.1.0 ; python_version >= "3.10" and python_version < "3.11" -fastapi==0.115.6 ; python_version >= "3.10" and python_version < "3.11" -fastjsonschema==2.21.1 ; python_version >= "3.10" and python_version < "3.11" -flake8==7.1.1 ; python_version >= "3.10" and python_version < "3.11" -flask==3.0.3 ; python_version >= "3.10" and python_version < "3.11" -fonttools==4.55.3 ; python_version >= "3.10" and python_version < "3.11" -fqdn==1.5.1 ; python_version >= "3.10" and python_version < "3.11" -frozendict==2.4.6 ; python_version >= "3.10" and python_version < "3.11" -gitdb==4.0.11 ; python_version >= "3.10" and python_version < "3.11" -gitpython==3.1.43 ; python_version >= "3.10" and python_version < "3.11" -gunicorn==23.0.0 ; python_version >= "3.10" and python_version < "3.11" -h11==0.14.0 ; python_version >= "3.10" and python_version < "3.11" -html5lib==1.1 ; python_version >= "3.10" and python_version < "3.11" -httpcore==1.0.7 ; python_version >= "3.10" and python_version < "3.11" -httpx==0.28.1 ; python_version >= "3.10" and python_version < "3.11" -idna==3.10 ; python_version >= "3.10" and python_version < "3.11" -importlib-metadata==8.5.0 ; python_version >= "3.10" and python_version < "3.11" -iniconfig==2.0.0 ; python_version >= "3.10" and python_version < "3.11" -invoke==2.2.0 ; python_version >= "3.10" and python_version < "3.11" -ipykernel==6.29.5 ; python_version >= "3.10" and python_version < "3.11" -ipython==8.30.0 ; python_version >= "3.10" and python_version < "3.11" -ipywidgets==8.1.5 ; python_version >= "3.10" and python_version < "3.11" -isoduration==20.11.0 ; python_version >= "3.10" and python_version < "3.11" -isort==5.13.2 ; python_version >= "3.10" and python_version < "3.11" -itsdangerous==2.2.0 ; python_version >= "3.10" and python_version < "3.11" -jaraco-classes==3.4.0 ; python_version >= "3.10" and python_version < "3.11" -jaraco-context==6.0.1 ; python_version >= "3.10" and python_version < "3.11" -jaraco-functools==4.1.0 ; python_version >= "3.10" and python_version < "3.11" -jedi==0.19.2 ; python_version >= "3.10" and python_version < "3.11" -jeepney==0.8.0 ; python_version >= "3.10" and python_version < "3.11" and sys_platform == "linux" -jinja2==3.1.4 ; python_version >= "3.10" and python_version < "3.11" -json5==0.10.0 ; python_version >= "3.10" and python_version < "3.11" -jsonpointer==3.0.0 ; python_version >= "3.10" and python_version < "3.11" -jsonschema-specifications==2024.10.1 ; python_version >= "3.10" and python_version < "3.11" -jsonschema==4.23.0 ; python_version >= "3.10" and python_version < "3.11" -jsonschema[format-nongpl]==4.23.0 ; python_version >= "3.10" and python_version < "3.11" -jupyter-client==8.6.3 ; python_version >= "3.10" and python_version < "3.11" -jupyter-console==6.6.3 ; python_version >= "3.10" and python_version < "3.11" -jupyter-core==5.7.2 ; python_version >= "3.10" and python_version < "3.11" -jupyter-events==0.11.0 ; python_version >= "3.10" and python_version < "3.11" -jupyter-lsp==2.2.5 ; python_version >= "3.10" and python_version < "3.11" -jupyter-server-terminals==0.5.3 ; python_version >= "3.10" and python_version < "3.11" -jupyter-server==2.14.2 ; python_version >= "3.10" and python_version < "3.11" -jupyter==1.1.1 ; python_version >= "3.10" and python_version < "3.11" -jupyterlab-pygments==0.3.0 ; python_version >= "3.10" and python_version < "3.11" -jupyterlab-server==2.27.3 ; python_version >= "3.10" and python_version < "3.11" -jupyterlab-widgets==3.0.13 ; python_version >= "3.10" and python_version < "3.11" -jupyterlab==4.3.3 ; python_version >= "3.10" and python_version < "3.11" -keyring==25.5.0 ; python_version >= "3.10" and python_version < "3.11" -kiwisolver==1.4.7 ; python_version >= "3.10" and python_version < "3.11" -lxml==5.3.0 ; python_version >= "3.10" and python_version < "3.11" -markupsafe==3.0.2 ; python_version >= "3.10" and python_version < "3.11" -matplotlib-inline==0.1.7 ; python_version >= "3.10" and python_version < "3.11" -matplotlib==3.10.0 ; python_version >= "3.10" and python_version < "3.11" -mccabe==0.7.0 ; python_version >= "3.10" and python_version < "3.11" -mistune==3.0.2 ; python_version >= "3.10" and python_version < "3.11" -more-itertools==10.5.0 ; python_version >= "3.10" and python_version < "3.11" -multiprocess==0.70.17 ; python_version >= "3.10" and python_version < "3.11" -multitasking==0.0.11 ; python_version >= "3.10" and python_version < "3.11" -mypy-extensions==1.0.0 ; python_version >= "3.10" and python_version < "3.11" -mypy==1.13.0 ; python_version >= "3.10" and python_version < "3.11" -nbclient==0.10.1 ; python_version >= "3.10" and python_version < "3.11" -nbconvert==7.16.4 ; python_version >= "3.10" and python_version < "3.11" -nbformat==5.10.4 ; python_version >= "3.10" and python_version < "3.11" -nest-asyncio==1.6.0 ; python_version >= "3.10" and python_version < "3.11" -nh3==0.2.20 ; python_version >= "3.10" and python_version < "3.11" -notebook-shim==0.2.4 ; python_version >= "3.10" and python_version < "3.11" -notebook==7.3.1 ; python_version >= "3.10" and python_version < "3.11" -numpy==2.2.0 ; python_version >= "3.10" and python_version < "3.11" -openpyxl==3.1.5 ; python_version >= "3.10" and python_version < "3.11" -overrides==7.7.0 ; python_version >= "3.10" and python_version < "3.11" -packaging==24.2 ; python_version >= "3.10" and python_version < "3.11" -pandas-stubs==2.2.3.241126 ; python_version >= "3.10" and python_version < "3.11" -pandas==2.2.3 ; python_version >= "3.10" and python_version < "3.11" -pandocfilters==1.5.1 ; python_version >= "3.10" and python_version < "3.11" -parso==0.8.4 ; python_version >= "3.10" and python_version < "3.11" -pathspec==0.12.1 ; python_version >= "3.10" and python_version < "3.11" -peewee==3.17.8 ; python_version >= "3.10" and python_version < "3.11" -percy==2.0.2 ; python_version >= "3.10" and python_version < "3.11" -pexpect==4.9.0 ; python_version >= "3.10" and python_version < "3.11" and (sys_platform != "win32" and sys_platform != "emscripten") -pillow==11.0.0 ; python_version >= "3.10" and python_version < "3.11" -pkginfo==1.12.0 ; python_version >= "3.10" and python_version < "3.11" -platformdirs==4.3.6 ; python_version >= "3.10" and python_version < "3.11" -plotly==5.24.1 ; python_version >= "3.10" and python_version < "3.11" -pluggy==1.5.0 ; python_version >= "3.10" and python_version < "3.11" -prometheus-client==0.21.1 ; python_version >= "3.10" and python_version < "3.11" -prompt-toolkit==3.0.48 ; python_version >= "3.10" and python_version < "3.11" -psutil==6.1.0 ; python_version >= "3.10" and python_version < "3.11" -ptyprocess==0.7.0 ; python_version >= "3.10" and python_version < "3.11" and (sys_platform != "win32" and sys_platform != "emscripten" or os_name != "nt") -pure-eval==0.2.3 ; python_version >= "3.10" and python_version < "3.11" -pyarrow==18.1.0 ; python_version >= "3.10" and python_version < "3.11" -pycodestyle==2.12.1 ; python_version >= "3.10" and python_version < "3.11" -pycparser==2.22 ; python_version >= "3.10" and python_version < "3.11" -pydantic-core==2.27.1 ; python_version >= "3.10" and python_version < "3.11" -pydantic==2.10.3 ; python_version >= "3.10" and python_version < "3.11" -pyflakes==3.2.0 ; python_version >= "3.10" and python_version < "3.11" -pygments==2.18.0 ; python_version >= "3.10" and python_version < "3.11" -pylint==3.3.2 ; python_version >= "3.10" and python_version < "3.11" -pyparsing==3.2.0 ; python_version >= "3.10" and python_version < "3.11" -pytest-cov==6.0.0 ; python_version >= "3.10" and python_version < "3.11" -pytest==8.3.4 ; python_version >= "3.10" and python_version < "3.11" -python-dateutil==2.9.0.post0 ; python_version >= "3.10" and python_version < "3.11" -python-gitlab==3.15.0 ; python_version >= "3.10" and python_version < "3.11" -python-json-logger==3.2.1 ; python_version >= "3.10" and python_version < "3.11" -python-multipart==0.0.19 ; python_version >= "3.10" and python_version < "3.11" -python-semantic-release==7.34.6 ; python_version >= "3.10" and python_version < "3.11" -pytz==2024.2 ; python_version >= "3.10" and python_version < "3.11" -pywin32-ctypes==0.2.3 ; python_version >= "3.10" and python_version < "3.11" and sys_platform == "win32" -pywin32==308 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.10" and python_version < "3.11" -pywinpty==2.0.14 ; python_version >= "3.10" and python_version < "3.11" and os_name == "nt" -pyyaml==6.0.2 ; python_version >= "3.10" and python_version < "3.11" -pyzmq==26.2.0 ; python_version >= "3.10" and python_version < "3.11" -readme-renderer==44.0 ; python_version >= "3.10" and python_version < "3.11" -referencing==0.35.1 ; python_version >= "3.10" and python_version < "3.11" -requests-toolbelt==1.0.0 ; python_version >= "3.10" and python_version < "3.11" -requests==2.32.3 ; python_version >= "3.10" and python_version < "3.11" -requests[security]==2.32.3 ; python_version >= "3.10" and python_version < "3.11" -retrying==1.3.4 ; python_version >= "3.10" and python_version < "3.11" -rfc3339-validator==0.1.4 ; python_version >= "3.10" and python_version < "3.11" -rfc3986-validator==0.1.1 ; python_version >= "3.10" and python_version < "3.11" -rfc3986==2.0.0 ; python_version >= "3.10" and python_version < "3.11" -rpds-py==0.22.3 ; python_version >= "3.10" and python_version < "3.11" -ruff==0.7.4 ; python_version >= "3.10" and python_version < "3.11" -secretstorage==3.3.3 ; python_version >= "3.10" and python_version < "3.11" and sys_platform == "linux" -selenium==3.141.0 ; python_version >= "3.10" and python_version < "3.11" -semver==2.13.0 ; python_version >= "3.10" and python_version < "3.11" -send2trash==1.8.3 ; python_version >= "3.10" and python_version < "3.11" -setuptools==75.6.0 ; python_version >= "3.10" and python_version < "3.11" -six==1.17.0 ; python_version >= "3.10" and python_version < "3.11" -smmap==5.0.1 ; python_version >= "3.10" and python_version < "3.11" -sniffio==1.3.1 ; python_version >= "3.10" and python_version < "3.11" -soupsieve==2.6 ; python_version >= "3.10" and python_version < "3.11" -stack-data==0.6.3 ; python_version >= "3.10" and python_version < "3.11" -starlette==0.41.3 ; python_version >= "3.10" and python_version < "3.11" -tenacity==9.0.0 ; python_version >= "3.10" and python_version < "3.11" -terminado==0.18.1 ; python_version >= "3.10" and python_version < "3.11" -tinycss2==1.4.0 ; python_version >= "3.10" and python_version < "3.11" -tomli-w==1.1.0 ; python_version >= "3.10" and python_version < "3.11" -tomli==2.2.1 ; python_version >= "3.10" and python_version < "3.11" -tomlkit==0.13.2 ; python_version >= "3.10" and python_version < "3.11" -tornado==6.4.2 ; python_version >= "3.10" and python_version < "3.11" -tqdm==4.67.1 ; python_version >= "3.10" and python_version < "3.11" -traitlets==5.14.3 ; python_version >= "3.10" and python_version < "3.11" -twine==3.8.0 ; python_version >= "3.10" and python_version < "3.11" -types-python-dateutil==2.9.0.20241206 ; python_version >= "3.10" and python_version < "3.11" -types-pytz==2024.2.0.20241003 ; python_version >= "3.10" and python_version < "3.11" -types-requests==2.32.0.20241016 ; python_version >= "3.10" and python_version < "3.11" -typing-extensions==4.12.2 ; python_version >= "3.10" and python_version < "3.11" -tzdata==2024.2 ; python_version >= "3.10" and python_version < "3.11" -uri-template==1.3.0 ; python_version >= "3.10" and python_version < "3.11" -urllib3==2.2.3 ; python_version >= "3.10" and python_version < "3.11" -uvicorn==0.34.0 ; python_version >= "3.10" and python_version < "3.11" -waitress==3.0.2 ; python_version >= "3.10" and python_version < "3.11" -wcwidth==0.2.13 ; python_version >= "3.10" and python_version < "3.11" -webcolors==24.11.1 ; python_version >= "3.10" and python_version < "3.11" -webencodings==0.5.1 ; python_version >= "3.10" and python_version < "3.11" -websocket-client==1.8.0 ; python_version >= "3.10" and python_version < "3.11" -werkzeug==3.0.6 ; python_version >= "3.10" and python_version < "3.11" -wheel==0.45.1 ; python_version >= "3.10" and python_version < "3.11" -widgetsnbextension==4.0.13 ; python_version >= "3.10" and python_version < "3.11" -yfinance==0.2.50 ; python_version >= "3.10" and python_version < "3.11" -zipp==3.21.0 ; python_version >= "3.10" and python_version < "3.11"