diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml deleted file mode 100644 index 5a52de66..00000000 --- a/.github/workflows/lint.yaml +++ /dev/null @@ -1,68 +0,0 @@ -# copied from https://github.com/marketplace/actions/install-poetry-action -name: lint - -on: pull_request - -jobs: - lint: - runs-on: ubuntu-latest - steps: - #---------------------------------------------- - # check-out repo and set-up python - #---------------------------------------------- - - name: Check out repository - uses: actions/checkout@v3 - - name: Set up python - id: setup-python - uses: actions/setup-python@v4 - with: - python-version: "3.11" - #---------------------------------------------- - # ----- install & configure poetry ----- - #---------------------------------------------- - - name: Install Poetry - uses: snok/install-poetry@v1 - with: - virtualenvs-create: true - virtualenvs-in-project: true - installer-parallel: true - - #---------------------------------------------- - # load cached venv if cache exists - #---------------------------------------------- - - name: Load cached venv - id: cached-poetry-dependencies - uses: actions/cache@v2 - with: - path: .venv - key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} - #---------------------------------------------- - # install dependencies if cache does not exist - #---------------------------------------------- - - name: Install dependencies - if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' - run: poetry install --no-interaction --no-root --with dev,server - #---------------------------------------------- - # install your root project, if required - #---------------------------------------------- - - name: Install library - run: poetry install --no-interaction - #---------------------------------------------- - # run test suite - #---------------------------------------------- - - name: Run black - run: | - source .venv/bin/activate - black --check . - - name: Run isort - run: | - source .venv/bin/activate - isort --check-only . - - name: Run flake8 - run: | - source .venv/bin/activate - flake8 . - - name: Run mypy - run: | - source .venv/bin/activate - mypy . diff --git a/.github/workflows/pytest.yaml b/.github/workflows/pytest.yaml index 9b3500cb..b7478469 100644 --- a/.github/workflows/pytest.yaml +++ b/.github/workflows/pytest.yaml @@ -46,7 +46,6 @@ jobs: virtualenvs-create: true virtualenvs-in-project: true installer-parallel: true - #---------------------------------------------- # load cached venv if cache exists #---------------------------------------------- @@ -74,3 +73,46 @@ jobs: run: | source .venv/bin/activate pytest --cov-report xml:.coverage.xml --cov-report term --cov=ixmp4 -rsx --benchmark-skip + + pre-commit: + name: Code quality + runs-on: ubuntu-latest + steps: + #---------------------------------------------- + # check-out repo and set-up python + #---------------------------------------------- + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + #---------------------------------------------- + # ----- install & configure poetry ----- + #---------------------------------------------- + - name: Install Poetry + uses: snok/install-poetry@v1 + with: + virtualenvs-create: true + virtualenvs-in-project: true + installer-parallel: true + #---------------------------------------------- + # load cached venv if cache exists + #---------------------------------------------- + - name: Load cached venv + id: cached-poetry-dependencies + uses: actions/cache@v2 + with: + path: .venv + key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} + #---------------------------------------------- + # install dependencies if cache does not exist + #---------------------------------------------- + - name: Install dependencies + if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' + run: poetry install --no-interaction --no-root --with dev,server + #---------------------------------------------- + # install your root project, if required + #---------------------------------------------- + - name: Install library + run: poetry install --no-interaction + #---------------------------------------------- + # run pre-commit/(mypy, black, ruff) + #---------------------------------------------- + - uses: pre-commit/action@v3.0.0 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..1b528591 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,15 @@ +repos: +- repo: https://github.com/pre-commit/mirrors-mypy + rev: v1.6.1 + hooks: + - id: mypy + entry: bash -c "poetry run mypy ." + language: system +- repo: https://github.com/psf/black + rev: 23.10.0 + hooks: + - id: black +- repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.1.0 + hooks: + - id: ruff \ No newline at end of file diff --git a/DEVELOPING.md b/DEVELOPING.md index 5d15b3ff..e8e26807 100644 --- a/DEVELOPING.md +++ b/DEVELOPING.md @@ -317,3 +317,53 @@ It is overwritten on the fly by the poetry-dynamic-versioning plugin. (without the rc). 1. Check that the "Publish to PyPI and TestPyPI" GitHub action passed and that the distributions are published on https://pypi.org/project/ixmp4/ . + +## Contributing + +Contributions to the code are always welcome! Please make sure your code follows our +code style so that the style is consistent. Each PR will be checked by a Code Quality +test that examines compliance with black, ruff, and mypy. + +### Running pre-commit locally + +We use [pre-commit](https://pre-commit.com/) to check the code style. You can install +pre-commit locally by installing ixmp4 with the optional `dev` group. Running + +```bash +pre-commit install +``` + +will set pre-commit up to run on every `git commit`. Per default, pre-commit will run +on changed files, but if you want to run it on all files, you can run + +```bash +pre-commit run --all-files +``` + +If you only want certain hooks to run, choose from `ruff`, `black`, and `mypy` as +`hook-ids` and run + +```bash +pre-commit run --all-files +``` + +### Ensuring compliance + +Whether you run pre-commit locally or see it on your PR for the first time, the checks +are the same. You can, of course, run the code style tools manually. From within the +ixmp4 directory, this would look similar to this: + +```bash +black . +mypy . +ruff check . + +# Or to enable ruff's automic fixes +ruff check --fix . +``` + +However, it is easy to forget running these commands manually. Therefore, we recommend +setting your editor up to run at least +[black](https://black.readthedocs.io/en/stable/integrations/editors.html) and +[ruff](https://docs.astral.sh/ruff/usage/#vs-code) automatically whenever you hit +`save`. A few minutes of configuration will save you time and nerves later on. diff --git a/doc/source/devs/ixmp4.core/iamc.rst b/doc/source/devs/ixmp4.core/iamc.rst index 50c68eb0..7725f86f 100644 --- a/doc/source/devs/ixmp4.core/iamc.rst +++ b/doc/source/devs/ixmp4.core/iamc.rst @@ -10,6 +10,7 @@ IAMC Data :members: :undoc-members: :show-inheritance: + :noindex: .. automodule:: ixmp4.core.iamc.repository diff --git a/doc/source/devs/ixmp4.core/modules.rst b/doc/source/devs/ixmp4.core/modules.rst index e93aac44..5fb8c294 100644 --- a/doc/source/devs/ixmp4.core/modules.rst +++ b/doc/source/devs/ixmp4.core/modules.rst @@ -6,9 +6,10 @@ Core API (ixmp4.core) platform run + model + scenario iamc meta region unit exceptions - diff --git a/doc/source/devs/ixmp4.core/scenario.rst b/doc/source/devs/ixmp4.core/scenario.rst index 21debf02..52a8974a 100644 --- a/doc/source/devs/ixmp4.core/scenario.rst +++ b/doc/source/devs/ixmp4.core/scenario.rst @@ -1,6 +1,6 @@ Scenarios -======= +========= .. toctree:: :maxdepth: 1 diff --git a/doc/source/modules.rst b/doc/source/modules.rst deleted file mode 100644 index 12835237..00000000 --- a/doc/source/modules.rst +++ /dev/null @@ -1,70 +0,0 @@ -Developer Documentation -======================= - -.. toctree:: - :maxdepth: 1 - - ixmp4.core/modules - ixmp4.data/modules - ixmp4.server/modules - ixmp4.cli - ixmp4.db - ixmp4.db.utils - ixmp4.conf - tests - - -Package/Folder Structure ------------------------- - -.. code:: bash - - . - ├── ixmp4 - │ ├── cli # cli - │ ├── conf # configuration module, loads settings etc. - │ ├── core # contains the facade layer for the core python API - │ ├── data - │ │ ├── abstract # ABCs for data source models and repositories - │ │ ├── api # data source implementation for the web api - │ │ ├── backend # data source backends - │ │ └── db # data source implementation for databases (sqlalchemy) - │ ├── db # database management - │ ├── server # web application server - │ └── rest # REST endpoints - ├── run # runtime artifacts - └── tests # tests - -Architecture ------------- - -ixmp4 provides a Python API, a REST API and a compatibility layer for Postgres and SQLite Databases. -The Python API can interact with databases directly or use the REST API of a compatible ixmp4 server instance. - -:: - - -> calls -> - Web or SQL - Platform Backend Server SQL Backend - │ ┌────────────┐ ┌───────────┐ ┌─ │ ┌──────────┐ ┌───────────┐ ─┐ │ ┌─┐ - P │ │ │ │ │ │ │ │ │ │ │ │ S │ │ │ - y │ │ ┌────────┐ │ │ ┌───────┐ │ │ R │ │ ┌──────┐ │ │ ┌───────┐ │ │ Q │ │D│ - t │ │ │ │ │ │ │ │ │ ┌─┘ E │ │ │Endp. │ │ │ │ │ │ └─┐ L │ │a│ - h │ │ │Facade │ │ │ │Model │ │ │ S │ │ └──────┘ │ │ │Model │ │ │ A │ │t│ - o │ │ └────────┘ │ │ ├───────┤ │ │ T │ │ │ │ ├───────┤ │ │ l │ │a│ - n │ │ │ │ ├───────┤ │ │ │ │ ┌──────┐ │ │ ├───────┤ │ │ c │ │b│ - │ │ ... │ │ │ │ │ │ A │ │ │Endp. │ │ │ │ │ │ │ h │ │a│ - A │ │ │ │ │Repo. │ │ └─┐ P │ │ └──────┘ │ │ │Repo. │ │ ┌─┘ e │ │s│ - P │ │ │ │ └───────┘ │ │ I │ │ │ │ └───────┘ │ │ m │ │e│ - I │ │ │ │ ... │ │ │ │ ... │ │ ... │ │ y │ │ │ - │ └────────────┘ └───────────┘ └─ │ └──────────┘ └───────────┘ ─┘ │ └─┘ - - ixmp4.core ixmp4.data ixmp4.server ixmp4.data - -Note that a REST SDK in another programming language would have to implement only the -components before the bracketed part of the diagram (``ixmp4.data.api`` + optionally a facade layer). - -Overall both the “facade” layer and the “data source” layer are split -into “models” (representing a row in a database or a json object) and -“repositories” (representing a database table or a collection of REST -endpoints) which manage these models. diff --git a/doc/source/openapi-v1.json b/doc/source/openapi-v1.json index 8391caf5..67e04e79 100644 --- a/doc/source/openapi-v1.json +++ b/doc/source/openapi-v1.json @@ -1 +1 @@ -{"openapi": "3.0.2", "info": {"title": "FastAPI", "version": "0.1.0"}, "paths": {"/runs/": {"get": {"tags": ["runs"], "summary": "Enumerate", "operationId": "enumerate_runs__get", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "query"}, {"required": false, "schema": {"title": "Version", "type": "integer"}, "name": "version", "in": "query"}, {"required": false, "schema": {"title": "Default Only", "type": "boolean", "default": true}, "name": "default_only", "in": "query"}, {"required": false, "schema": {"title": "Is Default", "type": "boolean"}, "name": "is_default", "in": "query"}, {"required": false, "schema": {"title": "Version Gt", "type": "integer"}, "name": "version__gt", "in": "query"}, {"required": false, "schema": {"title": "Version Lt", "type": "integer"}, "name": "version__lt", "in": "query"}, {"required": false, "schema": {"title": "Version Gte", "type": "integer"}, "name": "version__gte", "in": "query"}, {"required": false, "schema": {"title": "Version Lte", "type": "integer"}, "name": "version__lte", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Body_enumerate_runs__get"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__run__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["runs"], "summary": "Create", "operationId": "create_runs__post", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/RunInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Run"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["runs"], "summary": "Query", "operationId": "query_runs__patch", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Filter", "allOf": [{"$ref": "#/components/schemas/ixmp4__data__db__run__filter__RunFilter"}], "default": {"default_only": true}}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__run__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/runs/{id}/set-as-default-version/": {"post": {"tags": ["runs"], "summary": "Set As Default Version", "operationId": "set_as_default_version_runs__id__set_as_default_version__post", "parameters": [{"required": true, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "path"}, {"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/runs/{id}/unset-as-default-version/": {"post": {"tags": ["runs"], "summary": "Unset As Default Version", "operationId": "unset_as_default_version_runs__id__unset_as_default_version__post", "parameters": [{"required": true, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "path"}, {"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/meta/": {"get": {"tags": ["meta"], "summary": "Enumerate", "operationId": "enumerate_meta__get", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Run Ids", "type": "array", "items": {"type": "integer"}}, "name": "run_ids", "in": "query"}, {"required": false, "schema": {"title": "Keys", "type": "array", "items": {"type": "string"}}, "name": "keys", "in": "query"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__meta__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["meta"], "summary": "Create", "operationId": "create_meta__post", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/RunMetaEntryInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RunMetaEntry"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/meta/{id}/": {"delete": {"tags": ["meta"], "summary": "Delete", "operationId": "delete_meta__id___delete", "parameters": [{"required": true, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "path"}, {"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/meta/bulk/": {"post": {"tags": ["meta"], "summary": "Bulk Upsert", "operationId": "bulk_upsert_meta_bulk__post", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/DataFrame"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["meta"], "summary": "Bulk Delete", "operationId": "bulk_delete_meta_bulk__patch", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/DataFrame"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/iamc/datapoints/": {"get": {"tags": ["iamc", "datapoints"], "summary": "Enumerate", "operationId": "enumerate_iamc_datapoints__get", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Join Parameters", "type": "boolean", "default": false}, "name": "join_parameters", "in": "query"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Year", "type": "integer"}, "name": "year", "in": "query"}, {"required": false, "schema": {"title": "Time Series Id", "type": "integer"}, "name": "time_series_id", "in": "query"}, {"required": false, "schema": {"title": "Year Gt", "type": "integer"}, "name": "year__gt", "in": "query"}, {"required": false, "schema": {"title": "Year Lt", "type": "integer"}, "name": "year__lt", "in": "query"}, {"required": false, "schema": {"title": "Year Gte", "type": "integer"}, "name": "year__gte", "in": "query"}, {"required": false, "schema": {"title": "Year Lte", "type": "integer"}, "name": "year__lte", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Body_enumerate_iamc_datapoints__get"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__datapoint__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["iamc", "datapoints"], "summary": "Query", "description": "This endpoint is used to retrieve and optionally filter data.add()\n\nFilter parameters are provided as keyword arguments.\n\nThe available filters can be found here:\n:class:`ixmp4.data.db.iamc.datapoint.filter.DataPointFilter`.\n\nExamples\n--------\n\nFilter data points for a given model, scenario combination, and a number of years:\n\n.. code-block:: json\n\n {\n \"model\" : {\"name\": \"model 1\"},\n \"scenario\" : {\"name\": \"scenario 1\"},\n \"year__in\" : [2020, 2025]\n }\n\nReturn all data for a given variable:\n\n.. code-block:: json\n\n {\n \"variable\": {\"name\": \"Final Energy\"}\n }", "operationId": "query_iamc_datapoints__patch", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Join Parameters", "type": "boolean", "default": false}, "name": "join_parameters", "in": "query"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Filter", "allOf": [{"$ref": "#/components/schemas/DataPointFilter"}], "default": {}}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__datapoint__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/iamc/datapoints/bulk/": {"post": {"tags": ["iamc", "datapoints"], "summary": "Bulk Upsert", "description": ":func:`ixmp4.server.rest.iamc.datapoint.bulk_upsert`", "operationId": "bulk_upsert_iamc_datapoints_bulk__post", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/DataFrame"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["iamc", "datapoints"], "summary": "Bulk Delete", "description": ":func:`ixmp4.server.rest.iamc.datapoint.bulk_delete`", "operationId": "bulk_delete_iamc_datapoints_bulk__patch", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/DataFrame"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/iamc/timeseries/": {"get": {"tags": ["iamc", "timeseries"], "summary": "Enumerate", "operationId": "enumerate_iamc_timeseries__get", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Join Parameters", "type": "boolean", "default": false}, "name": "join_parameters", "in": "query"}, {"required": false, "schema": {"title": "Run Ids", "type": "array", "items": {"type": "integer"}}, "name": "run_ids", "in": "query"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__timeseries__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["iamc", "timeseries"], "summary": "Create", "operationId": "create_iamc_timeseries__post", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/TimeSeriesInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Run"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/iamc/timeseries/{id}/": {"get": {"tags": ["iamc", "timeseries"], "summary": "Get By Id", "operationId": "get_by_id_iamc_timeseries__id___get", "parameters": [{"required": true, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "path"}, {"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TimeSeries"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/iamc/timeseries/bulk/": {"post": {"tags": ["iamc", "timeseries"], "summary": "Bulk Upsert", "operationId": "bulk_upsert_iamc_timeseries_bulk__post", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Create Related", "type": "boolean", "default": false}, "name": "create_related", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/DataFrame"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/iamc/models/": {"get": {"tags": ["iamc", "models"], "summary": "Enumerate", "operationId": "enumerate_iamc_models__get", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "query"}, {"required": false, "schema": {"title": "Name", "type": "string"}, "name": "name", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Body_enumerate_iamc_models__get"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__model__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["iamc", "models"], "summary": "Query", "operationId": "query_iamc_models__patch", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Filter", "allOf": [{"$ref": "#/components/schemas/IamcModelFilter"}], "default": {"run": {"default_only": true}}}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__model__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/iamc/scenarios/": {"get": {"tags": ["iamc", "scenarios"], "summary": "Enumerate", "operationId": "enumerate_iamc_scenarios__get", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "query"}, {"required": false, "schema": {"title": "Name", "type": "string"}, "name": "name", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Body_enumerate_iamc_scenarios__get"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__scenario__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["iamc", "scenarios"], "summary": "Query", "operationId": "query_iamc_scenarios__patch", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Filter", "allOf": [{"$ref": "#/components/schemas/IamcScenarioFilter"}], "default": {"run": {"default_only": true}}}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__scenario__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/iamc/regions/": {"get": {"tags": ["iamc", "regions"], "summary": "Enumerate", "operationId": "enumerate_iamc_regions__get", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "query"}, {"required": false, "schema": {"title": "Name", "type": "string"}, "name": "name", "in": "query"}, {"required": false, "schema": {"title": "Hierarchy", "type": "string"}, "name": "hierarchy", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Body_enumerate_iamc_regions__get"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__region__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["iamc", "regions"], "summary": "Query", "operationId": "query_iamc_regions__patch", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Filter", "allOf": [{"$ref": "#/components/schemas/IamcRegionFilter"}], "default": {"run": {"default_only": true}}}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__region__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/iamc/units/": {"get": {"tags": ["iamc", "units"], "summary": "Enumerate", "operationId": "enumerate_iamc_units__get", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "query"}, {"required": false, "schema": {"title": "Name", "type": "string"}, "name": "name", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Body_enumerate_iamc_units__get"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__unit__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["iamc", "units"], "summary": "Query", "operationId": "query_iamc_units__patch", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Filter", "allOf": [{"$ref": "#/components/schemas/IamcUnitFilter"}], "default": {"run": {"default_only": true}}}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__unit__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/iamc/variables/": {"get": {"tags": ["iamc", "variables"], "summary": "Enumerate", "description": ":func:`ixmp4.server.rest.iamc.variable.enumerate`", "operationId": "enumerate_iamc_variables__get", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "query"}, {"required": false, "schema": {"title": "Name", "type": "string"}, "name": "name", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Body_enumerate_iamc_variables__get"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__variable__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["iamc", "variables"], "summary": "Create", "description": ":func:`ixmp4.server.rest.iamc.variable.create`", "operationId": "create_iamc_variables__post", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/VariableInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Variable"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["iamc", "variables"], "summary": "Query", "description": ":func:`ixmp4.server.rest.iamc.variable.query`", "operationId": "query_iamc_variables__patch", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Filter", "allOf": [{"$ref": "#/components/schemas/ixmp4__data__db__iamc__variable__filter__VariableFilter"}], "default": {"run": {"default_only": true}}}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__variable__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/regions/": {"get": {"tags": ["regions"], "summary": "Enumerate", "description": ":func:`ixmp4.server.rest.region.enumerate`", "operationId": "enumerate_regions__get", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "query"}, {"required": false, "schema": {"title": "Name", "type": "string"}, "name": "name", "in": "query"}, {"required": false, "schema": {"title": "Hierarchy", "type": "string"}, "name": "hierarchy", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Body_enumerate_regions__get"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__region__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["regions"], "summary": "Create", "description": ":func:`ixmp4.server.rest.region.create`", "operationId": "create_regions__post", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/RegionInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Region"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["regions"], "summary": "Query", "description": ":func:`ixmp4.server.rest.region.query`", "operationId": "query_regions__patch", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__data__db__region__filter__RegionFilter"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__region__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/regions/{id}/": {"delete": {"tags": ["regions"], "summary": "Delete", "operationId": "delete_regions__id___delete", "parameters": [{"required": true, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "path"}, {"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/scenarios/": {"get": {"tags": ["scenarios"], "summary": "Enumerate", "description": ":func:`ixmp4.server.rest.scenario.enumerate`", "operationId": "enumerate_scenarios__get", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "query"}, {"required": false, "schema": {"title": "Name", "type": "string"}, "name": "name", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Body_enumerate_scenarios__get"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__scenario__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["scenarios"], "summary": "Create", "description": ":func:`ixmp4.server.rest.scenario.create`", "operationId": "create_scenarios__post", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ScenarioInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Scenario"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["scenarios"], "summary": "Query", "description": ":func:`ixmp4.server.rest.scenario.query`", "operationId": "query_scenarios__patch", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__data__db__scenario__filter__ScenarioFilter"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__scenario__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/models/": {"get": {"tags": ["models"], "summary": "Enumerate", "description": ":func:`ixmp4.server.rest.model.enumerate`", "operationId": "enumerate_models__get", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "query"}, {"required": false, "schema": {"title": "Name", "type": "string"}, "name": "name", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Body_enumerate_models__get"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__model__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["models"], "summary": "Create", "description": ":func:`ixmp4.server.rest.model.create`", "operationId": "create_models__post", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ModelInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Model"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["models"], "summary": "Query", "description": ":func:`ixmp4.server.rest.model.query`", "operationId": "query_models__patch", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__data__db__model__filter__ModelFilter"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__model__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/units/": {"get": {"tags": ["units"], "summary": "Enumerate", "description": ":func:`ixmp4.server.rest.unit.enumerate`", "operationId": "enumerate_units__get", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "query"}, {"required": false, "schema": {"title": "Name", "type": "string"}, "name": "name", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Body_enumerate_units__get"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__unit__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["units"], "summary": "Create", "operationId": "create_units__post", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnitInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Unit"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["units"], "summary": "Query", "description": ":func:`ixmp4.server.rest.unit.query`", "operationId": "query_units__patch", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Table", "type": "boolean", "default": false}, "name": "table", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__data__db__unit__filter__UnitFilter"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__unit__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/units/{id}/": {"delete": {"tags": ["units"], "summary": "Delete", "operationId": "delete_units__id___delete", "parameters": [{"required": true, "schema": {"title": "Id", "type": "integer"}, "name": "id", "in": "path"}, {"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/docs/models/": {"get": {"tags": ["docs"], "summary": "List Models", "operationId": "list_models_docs_models__get", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Dimension Id", "type": "integer"}, "name": "dimension_id", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Models Docs Models Get", "type": "array", "items": {"$ref": "#/components/schemas/Docs"}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["docs"], "summary": "Set Models", "operationId": "set_models_docs_models__post", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/DocsInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Docs"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/docs/models/{dimension_id}/": {"delete": {"tags": ["docs"], "summary": "Delete Models", "operationId": "delete_models_docs_models__dimension_id___delete", "parameters": [{"required": true, "schema": {"title": "Dimension Id", "type": "integer"}, "name": "dimension_id", "in": "path"}, {"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/docs/regions/": {"get": {"tags": ["docs"], "summary": "List Regions", "operationId": "list_regions_docs_regions__get", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Dimension Id", "type": "integer"}, "name": "dimension_id", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Regions Docs Regions Get", "type": "array", "items": {"$ref": "#/components/schemas/Docs"}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["docs"], "summary": "Set Regions", "operationId": "set_regions_docs_regions__post", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/DocsInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Docs"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/docs/regions/{dimension_id}/": {"delete": {"tags": ["docs"], "summary": "Delete Regions", "operationId": "delete_regions_docs_regions__dimension_id___delete", "parameters": [{"required": true, "schema": {"title": "Dimension Id", "type": "integer"}, "name": "dimension_id", "in": "path"}, {"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/docs/scenarios/": {"get": {"tags": ["docs"], "summary": "List Scenarios", "operationId": "list_scenarios_docs_scenarios__get", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Dimension Id", "type": "integer"}, "name": "dimension_id", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Scenarios Docs Scenarios Get", "type": "array", "items": {"$ref": "#/components/schemas/Docs"}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["docs"], "summary": "Set Scenarios", "operationId": "set_scenarios_docs_scenarios__post", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/DocsInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Docs"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/docs/scenarios/{dimension_id}/": {"delete": {"tags": ["docs"], "summary": "Delete Scenarios", "operationId": "delete_scenarios_docs_scenarios__dimension_id___delete", "parameters": [{"required": true, "schema": {"title": "Dimension Id", "type": "integer"}, "name": "dimension_id", "in": "path"}, {"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/docs/units/": {"get": {"tags": ["docs"], "summary": "List Units", "operationId": "list_units_docs_units__get", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Dimension Id", "type": "integer"}, "name": "dimension_id", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Units Docs Units Get", "type": "array", "items": {"$ref": "#/components/schemas/Docs"}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["docs"], "summary": "Set Units", "operationId": "set_units_docs_units__post", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/DocsInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Docs"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/docs/units/{dimension_id}/": {"delete": {"tags": ["docs"], "summary": "Delete Units", "operationId": "delete_units_docs_units__dimension_id___delete", "parameters": [{"required": true, "schema": {"title": "Dimension Id", "type": "integer"}, "name": "dimension_id", "in": "path"}, {"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/docs/iamc/variables/": {"get": {"tags": ["docs"], "summary": "List Variables", "operationId": "list_variables_docs_iamc_variables__get", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Dimension Id", "type": "integer"}, "name": "dimension_id", "in": "query"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Variables Docs Iamc Variables Get", "type": "array", "items": {"$ref": "#/components/schemas/Docs"}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["docs"], "summary": "Set Variables", "operationId": "set_variables_docs_iamc_variables__post", "parameters": [{"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/DocsInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Docs"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/docs/iamc/variables/{dimension_id}/": {"delete": {"tags": ["docs"], "summary": "Delete Variables", "operationId": "delete_variables_docs_iamc_variables__dimension_id___delete", "parameters": [{"required": true, "schema": {"title": "Dimension Id", "type": "integer"}, "name": "dimension_id", "in": "path"}, {"required": true, "schema": {"title": "Platform", "type": "string"}, "name": "platform", "in": "path"}, {"required": false, "schema": {"title": "Authorization", "type": "string"}, "name": "authorization", "in": "header"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}}, "components": {"schemas": {"Body_enumerate_iamc_datapoints__get": {"title": "Body_enumerate_iamc_datapoints__get", "type": "object", "properties": {"region": {"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__RegionFilter"}, "unit": {"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__UnitFilter"}, "variable": {"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__VariableFilter"}, "model": {"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__ModelFilter"}, "scenario": {"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__ScenarioFilter"}, "run": {"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__RunFilter"}, "year__in": {"title": "Year In", "type": "array", "items": {"type": "integer"}}, "time_series_id__in": {"title": "Time Series Id In", "type": "array", "items": {"type": "integer"}}}}, "Body_enumerate_iamc_models__get": {"title": "Body_enumerate_iamc_models__get", "type": "object", "properties": {"id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}}, "region": {"$ref": "#/components/schemas/ixmp4__data__db__filters__RegionFilter"}, "variable": {"$ref": "#/components/schemas/ixmp4__data__db__filters__VariableFilter"}, "unit": {"$ref": "#/components/schemas/ixmp4__data__db__filters__UnitFilter"}, "run": {"title": "Run", "allOf": [{"$ref": "#/components/schemas/ixmp4__data__db__model__filter__RunFilter"}], "default": {"default_only": true}}}}, "Body_enumerate_iamc_regions__get": {"title": "Body_enumerate_iamc_regions__get", "type": "object", "properties": {"id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}}, "hierarchy__in": {"title": "Hierarchy In", "type": "array", "items": {"type": "string"}}, "hierarchy__like": {"title": "Hierarchy Like", "type": "array", "items": {"type": "string"}}, "hierarchy__ilike": {"title": "Hierarchy Ilike", "type": "array", "items": {"type": "string"}}, "hierarchy__notlike": {"title": "Hierarchy Notlike", "type": "array", "items": {"type": "string"}}, "hierarchy__notilike": {"title": "Hierarchy Notilike", "type": "array", "items": {"type": "string"}}}}, "Body_enumerate_iamc_scenarios__get": {"title": "Body_enumerate_iamc_scenarios__get", "type": "object", "properties": {"id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}}, "region": {"$ref": "#/components/schemas/ixmp4__data__db__filters__RegionFilter"}, "variable": {"$ref": "#/components/schemas/ixmp4__data__db__filters__VariableFilter"}, "unit": {"$ref": "#/components/schemas/ixmp4__data__db__filters__UnitFilter"}, "run": {"title": "Run", "allOf": [{"$ref": "#/components/schemas/ixmp4__data__db__scenario__filter__RunFilter"}], "default": {"default_only": true}}}}, "Body_enumerate_iamc_units__get": {"title": "Body_enumerate_iamc_units__get", "type": "object", "properties": {"id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}}}}, "Body_enumerate_iamc_variables__get": {"title": "Body_enumerate_iamc_variables__get", "type": "object", "properties": {"id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}}, "region": {"$ref": "#/components/schemas/ixmp4__data__db__filters__RegionFilter"}, "variable": {"$ref": "#/components/schemas/ixmp4__data__db__filters__VariableFilter"}, "unit": {"$ref": "#/components/schemas/ixmp4__data__db__filters__UnitFilter"}, "run": {"title": "Run", "allOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__RunFilter"}], "default": {"default_only": true}}}}, "Body_enumerate_models__get": {"title": "Body_enumerate_models__get", "type": "object", "properties": {"id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}}, "iamc": {"title": "Iamc", "anyOf": [{"$ref": "#/components/schemas/IamcModelFilter"}, {"type": "boolean"}]}}}, "Body_enumerate_regions__get": {"title": "Body_enumerate_regions__get", "type": "object", "properties": {"id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}}, "hierarchy__in": {"title": "Hierarchy In", "type": "array", "items": {"type": "string"}}, "hierarchy__like": {"title": "Hierarchy Like", "type": "array", "items": {"type": "string"}}, "hierarchy__ilike": {"title": "Hierarchy Ilike", "type": "array", "items": {"type": "string"}}, "hierarchy__notlike": {"title": "Hierarchy Notlike", "type": "array", "items": {"type": "string"}}, "hierarchy__notilike": {"title": "Hierarchy Notilike", "type": "array", "items": {"type": "string"}}, "iamc": {"title": "Iamc", "anyOf": [{"$ref": "#/components/schemas/IamcRegionFilter"}, {"type": "boolean"}]}}}, "Body_enumerate_runs__get": {"title": "Body_enumerate_runs__get", "type": "object", "properties": {"model": {"$ref": "#/components/schemas/ixmp4__data__db__filters__ModelFilter"}, "scenario": {"$ref": "#/components/schemas/ixmp4__data__db__filters__ScenarioFilter"}, "id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}}, "version__in": {"title": "Version In", "type": "array", "items": {"type": "integer"}}}}, "Body_enumerate_scenarios__get": {"title": "Body_enumerate_scenarios__get", "type": "object", "properties": {"id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}}, "iamc": {"title": "Iamc", "anyOf": [{"$ref": "#/components/schemas/IamcScenarioFilter"}, {"type": "boolean"}]}}}, "Body_enumerate_units__get": {"title": "Body_enumerate_units__get", "type": "object", "properties": {"id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}}, "iamc": {"title": "Iamc", "anyOf": [{"$ref": "#/components/schemas/IamcUnitFilter"}, {"type": "boolean"}]}}}, "DataFrame": {"title": "DataFrame", "required": ["columns", "dtypes", "data"], "type": "object", "properties": {"index": {"title": "Index", "type": "array", "items": {}}, "columns": {"title": "Columns", "type": "array", "items": {"type": "string"}}, "dtypes": {"title": "Dtypes", "type": "array", "items": {"type": "string"}}, "data": {"title": "Data", "type": "array", "items": {}}}}, "DataPoint": {"title": "DataPoint", "required": ["id", "time_series__id", "value", "type"], "type": "object", "properties": {"id": {"title": "Id", "type": "integer"}, "time_series__id": {"title": "Time Series Id", "type": "integer"}, "value": {"title": "Value", "type": "number"}, "type": {"title": "Type", "type": "string"}, "step_category": {"title": "Step Category", "type": "string"}, "step_year": {"title": "Step Year", "type": "integer"}, "step_datetime": {"title": "Step Datetime", "type": "string", "format": "date-time"}}}, "DataPointFilter": {"title": "DataPointFilter", "type": "object", "properties": {"year": {"title": "Year", "type": "integer", "sqla_column": "step_year"}, "time_series_id": {"title": "Time Series Id", "type": "integer", "sqla_column": "time_series__id"}, "region": {"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__RegionFilter"}, "unit": {"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__UnitFilter"}, "variable": {"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__VariableFilter"}, "model": {"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__ModelFilter"}, "scenario": {"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__ScenarioFilter"}, "run": {"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__RunFilter"}, "year__in": {"title": "Year In", "type": "array", "items": {"type": "integer"}, "sqla_column": "step_year"}, "year__gt": {"title": "Year Gt", "type": "integer", "sqla_column": "step_year"}, "year__lt": {"title": "Year Lt", "type": "integer", "sqla_column": "step_year"}, "year__gte": {"title": "Year Gte", "type": "integer", "sqla_column": "step_year"}, "year__lte": {"title": "Year Lte", "type": "integer", "sqla_column": "step_year"}, "time_series_id__in": {"title": "Time Series Id In", "type": "array", "items": {"type": "integer"}, "sqla_column": "time_series__id"}}, "additionalProperties": false, "description": "This class is used for filtering data points\n\nAll parameters are optional. Use the field name (or the field alias)\ndirectly for equality comparisons. For performing an SQL IN operation\nuse the field name followed by a double underscore and *in*.\n\nParameters\n----------\nstep_year : filters.Integer, Optional\n Filter for data point year, can also be called with \"year\"\ntime_series__id : filters.Id, Optional\n Filter for the id of the time series, can also be called with \"time_series_id\"\nregion : RegionFilter, Optional\n Filter for either region name or hierarchy\nunit : UnitFilter, Optional\n Filter for unit name\nvariable : VariableFilter, Optional\n Filter for variable name\nmodel : ModelFilter, Optional\n Filter for model name\nscenario : ScenarioFilter, Optional\n Filter for the scenario name\nrun : RunFilter, Optional\n Filter for the run, options are id or default_only\n\nExamples\n--------\n\nReturn all data points for a given year.\n\n>>> DataPointFilter(year = 2020)\n\nReturn all data points a number of years\n\n>>> DataPointFilter(year__in = [2020, 2025])\n\nReturn all data point that map to a given variable\n\n>>> DataPointFilter(variable = VariableFilter(name = \"variable 1\"))\n\nNote that for actual use providing the filter parameters as key word arguments is\nsufficient. Calling an endpoint could look like this:\n\n>>> filter = {\"variable\": {\"name\": \"variable 1\"}, \"year\": 2020}\n>>> iamc.tabulate(**filter)"}, "Docs": {"title": "Docs", "required": ["id", "description", "dimension__id"], "type": "object", "properties": {"id": {"title": "Id", "type": "integer"}, "description": {"title": "Description", "type": "string"}, "dimension__id": {"title": "Dimension Id", "type": "integer"}}}, "DocsInput": {"title": "DocsInput", "required": ["dimension_id", "description"], "type": "object", "properties": {"dimension_id": {"title": "Dimension Id", "type": "integer"}, "description": {"title": "Description", "type": "string"}}}, "HTTPValidationError": {"title": "HTTPValidationError", "type": "object", "properties": {"detail": {"title": "Detail", "type": "array", "items": {"$ref": "#/components/schemas/ValidationError"}}}}, "IamcModelFilter": {"title": "IamcModelFilter", "type": "object", "properties": {"id": {"title": "Id", "type": "integer", "sqla_column": "id"}, "name": {"title": "Name", "type": "string", "sqla_column": "name"}, "id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}, "sqla_column": "id"}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "region": {"$ref": "#/components/schemas/ixmp4__data__db__filters__RegionFilter"}, "variable": {"$ref": "#/components/schemas/ixmp4__data__db__filters__VariableFilter"}, "unit": {"$ref": "#/components/schemas/ixmp4__data__db__filters__UnitFilter"}, "run": {"title": "Run", "allOf": [{"$ref": "#/components/schemas/ixmp4__data__db__model__filter__RunFilter"}], "default": {"default_only": true}}}, "additionalProperties": false}, "IamcRegionFilter": {"title": "IamcRegionFilter", "type": "object", "properties": {"id": {"title": "Id", "type": "integer", "sqla_column": "id"}, "name": {"title": "Name", "type": "string", "sqla_column": "name"}, "hierarchy": {"title": "Hierarchy", "type": "string", "sqla_column": "hierarchy"}, "id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}, "sqla_column": "id"}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "hierarchy__in": {"title": "Hierarchy In", "type": "array", "items": {"type": "string"}, "sqla_column": "hierarchy"}, "hierarchy__like": {"title": "Hierarchy Like", "type": "array", "items": {"type": "string"}, "sqla_column": "hierarchy"}, "hierarchy__ilike": {"title": "Hierarchy Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "hierarchy"}, "hierarchy__notlike": {"title": "Hierarchy Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "hierarchy"}, "hierarchy__notilike": {"title": "Hierarchy Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "hierarchy"}, "variable": {"$ref": "#/components/schemas/ixmp4__data__db__filters__VariableFilter"}, "unit": {"$ref": "#/components/schemas/ixmp4__data__db__filters__UnitFilter"}, "run": {"title": "Run", "allOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__RunFilter"}], "default": {"default_only": true}}}, "additionalProperties": false}, "IamcScenarioFilter": {"title": "IamcScenarioFilter", "type": "object", "properties": {"id": {"title": "Id", "type": "integer", "sqla_column": "id"}, "name": {"title": "Name", "type": "string", "sqla_column": "name"}, "id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}, "sqla_column": "id"}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "region": {"$ref": "#/components/schemas/ixmp4__data__db__filters__RegionFilter"}, "variable": {"$ref": "#/components/schemas/ixmp4__data__db__filters__VariableFilter"}, "unit": {"$ref": "#/components/schemas/ixmp4__data__db__filters__UnitFilter"}, "run": {"title": "Run", "allOf": [{"$ref": "#/components/schemas/ixmp4__data__db__scenario__filter__RunFilter"}], "default": {"default_only": true}}}, "additionalProperties": false}, "IamcUnitFilter": {"title": "IamcUnitFilter", "type": "object", "properties": {"id": {"title": "Id", "type": "integer", "sqla_column": "id"}, "name": {"title": "Name", "type": "string", "sqla_column": "name"}, "id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}, "sqla_column": "id"}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "variable": {"$ref": "#/components/schemas/ixmp4__data__db__filters__VariableFilter"}, "region": {"$ref": "#/components/schemas/ixmp4__data__db__filters__RegionFilter"}, "run": {"title": "Run", "allOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__RunFilter"}], "default": {"default_only": true}}}, "additionalProperties": false}, "Model": {"title": "Model", "required": ["id", "name"], "type": "object", "properties": {"id": {"title": "Id", "type": "integer"}, "name": {"title": "Name", "type": "string"}, "created_at": {"title": "Created At", "type": "string", "format": "date-time"}, "created_by": {"title": "Created By", "type": "string"}}}, "ModelInput": {"title": "ModelInput", "required": ["name"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}}}, "Region": {"title": "Region", "required": ["id", "name", "hierarchy"], "type": "object", "properties": {"id": {"title": "Id", "type": "integer"}, "name": {"title": "Name", "type": "string"}, "hierarchy": {"title": "Hierarchy", "type": "string"}, "created_at": {"title": "Created At", "type": "string", "format": "date-time"}, "created_by": {"title": "Created By", "type": "string"}}}, "RegionInput": {"title": "RegionInput", "required": ["name", "hierarchy"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "hierarchy": {"title": "Hierarchy", "type": "string"}}}, "Run": {"title": "Run", "required": ["id", "model", "model__id", "scenario", "scenario__id", "version", "is_default"], "type": "object", "properties": {"id": {"title": "Id", "type": "integer"}, "model": {"$ref": "#/components/schemas/Model"}, "model__id": {"title": "Model Id", "type": "integer"}, "scenario": {"$ref": "#/components/schemas/Scenario"}, "scenario__id": {"title": "Scenario Id", "type": "integer"}, "version": {"title": "Version", "type": "integer"}, "is_default": {"title": "Is Default", "type": "boolean"}}}, "RunInput": {"title": "RunInput", "required": ["model_name", "scenario_name"], "type": "object", "properties": {"model_name": {"title": "Model Name", "type": "string"}, "scenario_name": {"title": "Scenario Name", "type": "string"}}}, "RunMetaEntry": {"title": "RunMetaEntry", "required": ["id", "run__id", "key", "type", "value"], "type": "object", "properties": {"id": {"title": "Id", "type": "integer"}, "run__id": {"title": "Run Id", "type": "integer"}, "key": {"title": "Key", "type": "string"}, "type": {"title": "Type", "type": "string"}, "value": {"title": "Value", "anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}]}}}, "RunMetaEntryInput": {"title": "RunMetaEntryInput", "required": ["run__id", "key", "value"], "type": "object", "properties": {"run__id": {"title": "Run Id", "type": "integer"}, "key": {"title": "Key", "type": "string"}, "value": {"title": "Value", "anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}]}}}, "Scenario": {"title": "Scenario", "required": ["id", "name"], "type": "object", "properties": {"id": {"title": "Id", "type": "integer"}, "name": {"title": "Name", "type": "string"}, "created_at": {"title": "Created At", "type": "string", "format": "date-time"}, "created_by": {"title": "Created By", "type": "string"}}}, "ScenarioInput": {"title": "ScenarioInput", "required": ["name"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}}}, "TimeSeries": {"title": "TimeSeries", "required": ["id", "run__id", "parameters"], "type": "object", "properties": {"id": {"title": "Id", "type": "integer"}, "run__id": {"title": "Run Id", "type": "integer"}, "parameters": {"title": "Parameters", "type": "object"}}}, "TimeSeriesInput": {"title": "TimeSeriesInput", "required": ["run__id", "parameters"], "type": "object", "properties": {"run__id": {"title": "Run Id", "type": "integer"}, "parameters": {"title": "Parameters", "type": "object"}}}, "Unit": {"title": "Unit", "required": ["id", "name"], "type": "object", "properties": {"id": {"title": "Id", "type": "integer"}, "name": {"title": "Name", "type": "string"}, "created_at": {"title": "Created At", "type": "string", "format": "date-time"}, "created_by": {"title": "Created By", "type": "string"}}}, "UnitInput": {"title": "UnitInput", "required": ["name"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}}}, "ValidationError": {"title": "ValidationError", "required": ["loc", "msg", "type"], "type": "object", "properties": {"loc": {"title": "Location", "type": "array", "items": {"anyOf": [{"type": "string"}, {"type": "integer"}]}}, "msg": {"title": "Message", "type": "string"}, "type": {"title": "Error Type", "type": "string"}}}, "Variable": {"title": "Variable", "required": ["id", "name"], "type": "object", "properties": {"id": {"title": "Id", "type": "integer"}, "name": {"title": "Name", "type": "string"}, "created_at": {"title": "Created At", "type": "string", "format": "date-time"}, "created_by": {"title": "Created By", "type": "string"}}}, "VariableInput": {"title": "VariableInput", "required": ["name"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}}}, "ixmp4__data__db__filters__ModelFilter": {"title": "ModelFilter", "type": "object", "properties": {"id": {"title": "Id", "type": "integer", "sqla_column": "id"}, "name": {"title": "Name", "type": "string", "sqla_column": "name"}, "id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}, "sqla_column": "id"}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}}, "additionalProperties": false}, "ixmp4__data__db__filters__RegionFilter": {"title": "RegionFilter", "type": "object", "properties": {"id": {"title": "Id", "type": "integer", "sqla_column": "id"}, "name": {"title": "Name", "type": "string", "sqla_column": "name"}, "hierarchy": {"title": "Hierarchy", "type": "string", "sqla_column": "hierarchy"}, "id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}, "sqla_column": "id"}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "hierarchy__in": {"title": "Hierarchy In", "type": "array", "items": {"type": "string"}, "sqla_column": "hierarchy"}, "hierarchy__like": {"title": "Hierarchy Like", "type": "array", "items": {"type": "string"}, "sqla_column": "hierarchy"}, "hierarchy__ilike": {"title": "Hierarchy Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "hierarchy"}, "hierarchy__notlike": {"title": "Hierarchy Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "hierarchy"}, "hierarchy__notilike": {"title": "Hierarchy Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "hierarchy"}}, "additionalProperties": false}, "ixmp4__data__db__filters__RunFilter": {"title": "RunFilter", "type": "object", "properties": {"id": {"title": "Id", "type": "integer", "sqla_column": "id"}, "version": {"title": "Version", "type": "integer", "sqla_column": "version"}, "default_only": {"title": "Default Only", "type": "boolean", "default": true, "sqla_column": "default_only"}, "is_default": {"title": "Is Default", "type": "boolean", "sqla_column": "is_default"}, "model": {"$ref": "#/components/schemas/ixmp4__data__db__filters__ModelFilter"}, "scenario": {"$ref": "#/components/schemas/ixmp4__data__db__filters__ScenarioFilter"}, "id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}, "sqla_column": "id"}, "version__in": {"title": "Version In", "type": "array", "items": {"type": "integer"}, "sqla_column": "version"}, "version__gt": {"title": "Version Gt", "type": "integer", "sqla_column": "version"}, "version__lt": {"title": "Version Lt", "type": "integer", "sqla_column": "version"}, "version__gte": {"title": "Version Gte", "type": "integer", "sqla_column": "version"}, "version__lte": {"title": "Version Lte", "type": "integer", "sqla_column": "version"}}, "additionalProperties": false}, "ixmp4__data__db__filters__ScenarioFilter": {"title": "ScenarioFilter", "type": "object", "properties": {"id": {"title": "Id", "type": "integer", "sqla_column": "id"}, "name": {"title": "Name", "type": "string", "sqla_column": "name"}, "id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}, "sqla_column": "id"}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}}, "additionalProperties": false}, "ixmp4__data__db__filters__UnitFilter": {"title": "UnitFilter", "type": "object", "properties": {"id": {"title": "Id", "type": "integer", "sqla_column": "id"}, "name": {"title": "Name", "type": "string", "sqla_column": "name"}, "id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}, "sqla_column": "id"}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}}, "additionalProperties": false}, "ixmp4__data__db__filters__VariableFilter": {"title": "VariableFilter", "type": "object", "properties": {"id": {"title": "Id", "type": "integer", "sqla_column": "id"}, "name": {"title": "Name", "type": "string", "sqla_column": "name"}, "id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}, "sqla_column": "id"}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}}, "additionalProperties": false}, "ixmp4__data__db__iamc__datapoint__filter__ModelFilter": {"title": "ModelFilter", "type": "object", "properties": {"name": {"title": "Name", "type": "string", "sqla_column": "name"}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}}, "additionalProperties": false}, "ixmp4__data__db__iamc__datapoint__filter__RegionFilter": {"title": "RegionFilter", "type": "object", "properties": {"name": {"title": "Name", "type": "string", "sqla_column": "name"}, "hierarchy": {"title": "Hierarchy", "type": "string", "sqla_column": "hierarchy"}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "hierarchy__in": {"title": "Hierarchy In", "type": "array", "items": {"type": "string"}, "sqla_column": "hierarchy"}, "hierarchy__like": {"title": "Hierarchy Like", "type": "array", "items": {"type": "string"}, "sqla_column": "hierarchy"}, "hierarchy__ilike": {"title": "Hierarchy Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "hierarchy"}, "hierarchy__notlike": {"title": "Hierarchy Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "hierarchy"}, "hierarchy__notilike": {"title": "Hierarchy Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "hierarchy"}}, "additionalProperties": false}, "ixmp4__data__db__iamc__datapoint__filter__RunFilter": {"title": "RunFilter", "type": "object", "properties": {"id": {"title": "Id", "type": "integer", "sqla_column": "id"}, "default_only": {"title": "Default Only", "type": "boolean", "sqla_column": "default_only"}, "id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}, "sqla_column": "id"}}, "additionalProperties": false}, "ixmp4__data__db__iamc__datapoint__filter__ScenarioFilter": {"title": "ScenarioFilter", "type": "object", "properties": {"name": {"title": "Name", "type": "string", "sqla_column": "name"}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}}, "additionalProperties": false}, "ixmp4__data__db__iamc__datapoint__filter__UnitFilter": {"title": "UnitFilter", "type": "object", "properties": {"name": {"title": "Name", "type": "string", "sqla_column": "name"}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}}, "additionalProperties": false}, "ixmp4__data__db__iamc__datapoint__filter__VariableFilter": {"title": "VariableFilter", "type": "object", "properties": {"name": {"title": "Name", "type": "string", "sqla_column": "name"}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}}, "additionalProperties": false}, "ixmp4__data__db__iamc__variable__filter__VariableFilter": {"title": "VariableFilter", "type": "object", "properties": {"id": {"title": "Id", "type": "integer", "sqla_column": "id"}, "name": {"title": "Name", "type": "string", "sqla_column": "name"}, "id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}, "sqla_column": "id"}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "region": {"$ref": "#/components/schemas/ixmp4__data__db__filters__RegionFilter"}, "variable": {"$ref": "#/components/schemas/ixmp4__data__db__filters__VariableFilter"}, "unit": {"$ref": "#/components/schemas/ixmp4__data__db__filters__UnitFilter"}, "run": {"title": "Run", "allOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__RunFilter"}], "default": {"default_only": true}}}, "additionalProperties": false}, "ixmp4__data__db__model__filter__ModelFilter": {"title": "ModelFilter", "type": "object", "properties": {"id": {"title": "Id", "type": "integer", "sqla_column": "id"}, "name": {"title": "Name", "type": "string", "sqla_column": "name"}, "id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}, "sqla_column": "id"}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "iamc": {"title": "Iamc", "anyOf": [{"$ref": "#/components/schemas/IamcModelFilter"}, {"type": "boolean"}]}}, "additionalProperties": false}, "ixmp4__data__db__model__filter__RunFilter": {"title": "RunFilter", "type": "object", "properties": {"id": {"title": "Id", "type": "integer", "sqla_column": "id"}, "version": {"title": "Version", "type": "integer", "sqla_column": "version"}, "default_only": {"title": "Default Only", "type": "boolean", "default": true, "sqla_column": "default_only"}, "is_default": {"title": "Is Default", "type": "boolean", "sqla_column": "is_default"}, "model": {"$ref": "#/components/schemas/ixmp4__data__db__filters__ModelFilter"}, "scenario": {"$ref": "#/components/schemas/ixmp4__data__db__filters__ScenarioFilter"}, "id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}, "sqla_column": "id"}, "version__in": {"title": "Version In", "type": "array", "items": {"type": "integer"}, "sqla_column": "version"}, "version__gt": {"title": "Version Gt", "type": "integer", "sqla_column": "version"}, "version__lt": {"title": "Version Lt", "type": "integer", "sqla_column": "version"}, "version__gte": {"title": "Version Gte", "type": "integer", "sqla_column": "version"}, "version__lte": {"title": "Version Lte", "type": "integer", "sqla_column": "version"}}, "additionalProperties": false}, "ixmp4__data__db__region__filter__RegionFilter": {"title": "RegionFilter", "type": "object", "properties": {"id": {"title": "Id", "type": "integer", "sqla_column": "id"}, "name": {"title": "Name", "type": "string", "sqla_column": "name"}, "hierarchy": {"title": "Hierarchy", "type": "string", "sqla_column": "hierarchy"}, "id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}, "sqla_column": "id"}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "hierarchy__in": {"title": "Hierarchy In", "type": "array", "items": {"type": "string"}, "sqla_column": "hierarchy"}, "hierarchy__like": {"title": "Hierarchy Like", "type": "array", "items": {"type": "string"}, "sqla_column": "hierarchy"}, "hierarchy__ilike": {"title": "Hierarchy Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "hierarchy"}, "hierarchy__notlike": {"title": "Hierarchy Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "hierarchy"}, "hierarchy__notilike": {"title": "Hierarchy Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "hierarchy"}, "iamc": {"title": "Iamc", "anyOf": [{"$ref": "#/components/schemas/IamcRegionFilter"}, {"type": "boolean"}]}}, "additionalProperties": false}, "ixmp4__data__db__run__filter__RunFilter": {"title": "RunFilter", "type": "object", "properties": {"id": {"title": "Id", "type": "integer", "sqla_column": "id"}, "version": {"title": "Version", "type": "integer", "sqla_column": "version"}, "default_only": {"title": "Default Only", "type": "boolean", "default": true, "sqla_column": "default_only"}, "is_default": {"title": "Is Default", "type": "boolean", "sqla_column": "is_default"}, "model": {"$ref": "#/components/schemas/ixmp4__data__db__filters__ModelFilter"}, "scenario": {"$ref": "#/components/schemas/ixmp4__data__db__filters__ScenarioFilter"}, "id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}, "sqla_column": "id"}, "version__in": {"title": "Version In", "type": "array", "items": {"type": "integer"}, "sqla_column": "version"}, "version__gt": {"title": "Version Gt", "type": "integer", "sqla_column": "version"}, "version__lt": {"title": "Version Lt", "type": "integer", "sqla_column": "version"}, "version__gte": {"title": "Version Gte", "type": "integer", "sqla_column": "version"}, "version__lte": {"title": "Version Lte", "type": "integer", "sqla_column": "version"}}, "additionalProperties": false}, "ixmp4__data__db__scenario__filter__RunFilter": {"title": "RunFilter", "type": "object", "properties": {"id": {"title": "Id", "type": "integer", "sqla_column": "id"}, "version": {"title": "Version", "type": "integer", "sqla_column": "version"}, "default_only": {"title": "Default Only", "type": "boolean", "default": true, "sqla_column": "default_only"}, "is_default": {"title": "Is Default", "type": "boolean", "sqla_column": "is_default"}, "model": {"$ref": "#/components/schemas/ixmp4__data__db__filters__ModelFilter"}, "scenario": {"$ref": "#/components/schemas/ixmp4__data__db__filters__ScenarioFilter"}, "id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}, "sqla_column": "id"}, "version__in": {"title": "Version In", "type": "array", "items": {"type": "integer"}, "sqla_column": "version"}, "version__gt": {"title": "Version Gt", "type": "integer", "sqla_column": "version"}, "version__lt": {"title": "Version Lt", "type": "integer", "sqla_column": "version"}, "version__gte": {"title": "Version Gte", "type": "integer", "sqla_column": "version"}, "version__lte": {"title": "Version Lte", "type": "integer", "sqla_column": "version"}}, "additionalProperties": false}, "ixmp4__data__db__scenario__filter__ScenarioFilter": {"title": "ScenarioFilter", "type": "object", "properties": {"id": {"title": "Id", "type": "integer", "sqla_column": "id"}, "name": {"title": "Name", "type": "string", "sqla_column": "name"}, "id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}, "sqla_column": "id"}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "iamc": {"title": "Iamc", "anyOf": [{"$ref": "#/components/schemas/IamcScenarioFilter"}, {"type": "boolean"}]}}, "additionalProperties": false}, "ixmp4__data__db__unit__filter__UnitFilter": {"title": "UnitFilter", "type": "object", "properties": {"id": {"title": "Id", "type": "integer", "sqla_column": "id"}, "name": {"title": "Name", "type": "string", "sqla_column": "name"}, "id__in": {"title": "Id In", "type": "array", "items": {"type": "integer"}, "sqla_column": "id"}, "name__in": {"title": "Name In", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__like": {"title": "Name Like", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__ilike": {"title": "Name Ilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notlike": {"title": "Name Notlike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "name__notilike": {"title": "Name Notilike", "type": "array", "items": {"type": "string"}, "sqla_column": "name"}, "iamc": {"title": "Iamc", "anyOf": [{"$ref": "#/components/schemas/IamcUnitFilter"}, {"type": "boolean"}]}}, "additionalProperties": false}, "ixmp4__server__rest__iamc__datapoint__EnumerationOutput": {"title": "EnumerationOutput", "anyOf": [{"type": "array", "items": {"$ref": "#/components/schemas/DataPoint"}}, {"$ref": "#/components/schemas/DataFrame"}]}, "ixmp4__server__rest__iamc__model__EnumerationOutput": {"title": "EnumerationOutput", "anyOf": [{"type": "array", "items": {"$ref": "#/components/schemas/Model"}}, {"$ref": "#/components/schemas/DataFrame"}]}, "ixmp4__server__rest__iamc__region__EnumerationOutput": {"title": "EnumerationOutput", "anyOf": [{"type": "array", "items": {"$ref": "#/components/schemas/Region"}}, {"$ref": "#/components/schemas/DataFrame"}]}, "ixmp4__server__rest__iamc__scenario__EnumerationOutput": {"title": "EnumerationOutput", "anyOf": [{"type": "array", "items": {"$ref": "#/components/schemas/Scenario"}}, {"$ref": "#/components/schemas/DataFrame"}]}, "ixmp4__server__rest__iamc__timeseries__EnumerationOutput": {"title": "EnumerationOutput", "anyOf": [{"type": "array", "items": {"$ref": "#/components/schemas/TimeSeries"}}, {"$ref": "#/components/schemas/DataFrame"}]}, "ixmp4__server__rest__iamc__unit__EnumerationOutput": {"title": "EnumerationOutput", "anyOf": [{"type": "array", "items": {"$ref": "#/components/schemas/Unit"}}, {"$ref": "#/components/schemas/DataFrame"}]}, "ixmp4__server__rest__iamc__variable__EnumerationOutput": {"title": "EnumerationOutput", "anyOf": [{"type": "array", "items": {"$ref": "#/components/schemas/Variable"}}, {"$ref": "#/components/schemas/DataFrame"}]}, "ixmp4__server__rest__meta__EnumerationOutput": {"title": "EnumerationOutput", "anyOf": [{"$ref": "#/components/schemas/DataFrame"}, {"type": "array", "items": {"$ref": "#/components/schemas/RunMetaEntry"}}]}, "ixmp4__server__rest__model__EnumerationOutput": {"title": "EnumerationOutput", "anyOf": [{"type": "array", "items": {"$ref": "#/components/schemas/Model"}}, {"$ref": "#/components/schemas/DataFrame"}]}, "ixmp4__server__rest__region__EnumerationOutput": {"title": "EnumerationOutput", "anyOf": [{"type": "array", "items": {"$ref": "#/components/schemas/Region"}}, {"$ref": "#/components/schemas/DataFrame"}]}, "ixmp4__server__rest__run__EnumerationOutput": {"title": "EnumerationOutput", "anyOf": [{"type": "array", "items": {"$ref": "#/components/schemas/Run"}}, {"$ref": "#/components/schemas/DataFrame"}]}, "ixmp4__server__rest__scenario__EnumerationOutput": {"title": "EnumerationOutput", "anyOf": [{"type": "array", "items": {"$ref": "#/components/schemas/Scenario"}}, {"$ref": "#/components/schemas/DataFrame"}]}, "ixmp4__server__rest__unit__EnumerationOutput": {"title": "EnumerationOutput", "anyOf": [{"$ref": "#/components/schemas/DataFrame"}, {"type": "array", "items": {"$ref": "#/components/schemas/Unit"}}]}}}} \ No newline at end of file +{"openapi": "3.1.0", "info": {"title": "FastAPI", "version": "0.1.0"}, "paths": {"/iamc/datapoints/": {"get": {"tags": ["iamc", "datapoints"], "summary": "Enumerate", "operationId": "enumerate_iamc_datapoints__get", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "join_parameters", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Join Parameters"}}, {"name": "join_runs", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Join Runs"}}, {"name": "table", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Table"}}, {"name": "year", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Year"}}, {"name": "time_series_id", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Time Series Id"}}, {"name": "year__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "integer"}}, {"type": "null"}], "title": "Year In"}}, {"name": "year__gt", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Year Gt"}}, {"name": "year__lt", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Year Lt"}}, {"name": "year__gte", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Year Gte"}}, {"name": "year__lte", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Year Lte"}}, {"name": "time_series_id__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "integer"}}, {"type": "null"}], "title": "Time Series Id In"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Body_enumerate_iamc_datapoints__get"}], "title": "Body"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__datapoint__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["iamc", "datapoints"], "summary": "Query", "description": "This endpoint is used to retrieve and optionally filter data.add()\n\nFilter parameters are provided as keyword arguments.\n\nThe available filters can be found here:\n:class:`ixmp4.data.db.iamc.datapoint.filter.DataPointFilter`.\n\nExamples\n--------\n\nFilter data points for a given model, scenario combination, and a number of years:\n\n.. code-block:: json\n\n {\n \"model\" : {\"name\": \"model 1\"},\n \"scenario\" : {\"name\": \"scenario 1\"},\n \"year__in\" : [2020, 2025]\n }\n\nReturn all data for a given variable:\n\n.. code-block:: json\n\n {\n \"variable\": {\"name\": \"Final Energy\"}\n }", "operationId": "query_iamc_datapoints__patch", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "join_parameters", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Join Parameters"}}, {"name": "join_runs", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Join Runs"}}, {"name": "table", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Table"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/DataPointFilter"}], "default": {}, "title": "Filter"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__datapoint__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/iamc/datapoints/bulk/": {"post": {"tags": ["iamc", "datapoints"], "summary": "Bulk Upsert", "description": ":func:`ixmp4.server.rest.iamc.datapoint.bulk_upsert`", "operationId": "bulk_upsert_iamc_datapoints_bulk__post", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"index": {"anyOf": [{"type": "array", "items": {}}, {"type": "null"}], "title": "Index"}, "columns": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Columns"}, "dtypes": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Dtypes"}, "data": {"anyOf": [{"type": "array", "items": {}}, {"type": "null"}], "title": "Data"}}, "required": ["columns", "dtypes", "data"], "title": "Df"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["iamc", "datapoints"], "summary": "Bulk Delete", "description": ":func:`ixmp4.server.rest.iamc.datapoint.bulk_delete`", "operationId": "bulk_delete_iamc_datapoints_bulk__patch", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"index": {"anyOf": [{"type": "array", "items": {}}, {"type": "null"}], "title": "Index"}, "columns": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Columns"}, "dtypes": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Dtypes"}, "data": {"anyOf": [{"type": "array", "items": {}}, {"type": "null"}], "title": "Data"}}, "required": ["columns", "dtypes", "data"], "title": "Df"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/docs/models/": {"get": {"tags": ["docs"], "summary": "List Models", "operationId": "list_models_docs_models__get", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "dimension_id", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Dimension Id"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Docs"}, "title": "Response List Models Docs Models Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["docs"], "summary": "Set Models", "operationId": "set_models_docs_models__post", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DocsInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Docs"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/docs/models/{dimension_id}/": {"delete": {"tags": ["docs"], "summary": "Delete Models", "operationId": "delete_models_docs_models__dimension_id___delete", "parameters": [{"name": "dimension_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Dimension Id"}}, {"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/docs/regions/": {"get": {"tags": ["docs"], "summary": "List Regions", "operationId": "list_regions_docs_regions__get", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "dimension_id", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Dimension Id"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Docs"}, "title": "Response List Regions Docs Regions Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["docs"], "summary": "Set Regions", "operationId": "set_regions_docs_regions__post", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DocsInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Docs"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/docs/regions/{dimension_id}/": {"delete": {"tags": ["docs"], "summary": "Delete Regions", "operationId": "delete_regions_docs_regions__dimension_id___delete", "parameters": [{"name": "dimension_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Dimension Id"}}, {"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/docs/scenarios/": {"get": {"tags": ["docs"], "summary": "List Scenarios", "operationId": "list_scenarios_docs_scenarios__get", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "dimension_id", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Dimension Id"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Docs"}, "title": "Response List Scenarios Docs Scenarios Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["docs"], "summary": "Set Scenarios", "operationId": "set_scenarios_docs_scenarios__post", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DocsInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Docs"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/docs/scenarios/{dimension_id}/": {"delete": {"tags": ["docs"], "summary": "Delete Scenarios", "operationId": "delete_scenarios_docs_scenarios__dimension_id___delete", "parameters": [{"name": "dimension_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Dimension Id"}}, {"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/docs/units/": {"get": {"tags": ["docs"], "summary": "List Units", "operationId": "list_units_docs_units__get", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "dimension_id", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Dimension Id"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Docs"}, "title": "Response List Units Docs Units Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["docs"], "summary": "Set Units", "operationId": "set_units_docs_units__post", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DocsInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Docs"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/docs/units/{dimension_id}/": {"delete": {"tags": ["docs"], "summary": "Delete Units", "operationId": "delete_units_docs_units__dimension_id___delete", "parameters": [{"name": "dimension_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Dimension Id"}}, {"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/docs/iamc/variables/": {"get": {"tags": ["docs"], "summary": "List Variables", "operationId": "list_variables_docs_iamc_variables__get", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "dimension_id", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Dimension Id"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Docs"}, "title": "Response List Variables Docs Iamc Variables Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["docs"], "summary": "Set Variables", "operationId": "set_variables_docs_iamc_variables__post", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DocsInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Docs"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/docs/iamc/variables/{dimension_id}/": {"delete": {"tags": ["docs"], "summary": "Delete Variables", "operationId": "delete_variables_docs_iamc_variables__dimension_id___delete", "parameters": [{"name": "dimension_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Dimension Id"}}, {"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/docs/optimization/indexsets/": {"get": {"tags": ["docs"], "summary": "List Indexsets", "operationId": "list_indexsets_docs_optimization_indexsets__get", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "dimension_id", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Dimension Id"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Docs"}, "title": "Response List Indexsets Docs Optimization Indexsets Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["docs"], "summary": "Set Indexsets", "operationId": "set_indexsets_docs_optimization_indexsets__post", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DocsInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Docs"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/docs/optimization/indexsets/{dimension_id}/": {"delete": {"tags": ["docs"], "summary": "Delete Indexsets", "operationId": "delete_indexsets_docs_optimization_indexsets__dimension_id___delete", "parameters": [{"name": "dimension_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Dimension Id"}}, {"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/iamc/models/": {"get": {"tags": ["iamc", "models"], "summary": "Enumerate", "operationId": "enumerate_iamc_models__get", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "table", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Table"}}, {"name": "id", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}}, {"name": "name", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}}, {"name": "id__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "integer"}}, {"type": "null"}], "title": "Id In"}}, {"name": "name__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Name In"}}, {"name": "name__like", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like"}}, {"name": "name__ilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike"}}, {"name": "name__notlike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike"}}, {"name": "name__notilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Body_enumerate_iamc_models__get"}], "title": "Body"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__model__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["iamc", "models"], "summary": "Query", "operationId": "query_iamc_models__patch", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "table", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Table"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/IamcModelFilter"}], "default": {"run": {"default_only": true, "is_default": true}}, "title": "Filter"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__model__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/iamc/scenarios/": {"get": {"tags": ["iamc", "scenarios"], "summary": "Enumerate", "operationId": "enumerate_iamc_scenarios__get", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "table", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Table"}}, {"name": "id", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}}, {"name": "name", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}}, {"name": "id__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "integer"}}, {"type": "null"}], "title": "Id In"}}, {"name": "name__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Name In"}}, {"name": "name__like", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like"}}, {"name": "name__ilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike"}}, {"name": "name__notlike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike"}}, {"name": "name__notilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Body_enumerate_iamc_scenarios__get"}], "title": "Body"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__scenario__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["iamc", "scenarios"], "summary": "Query", "operationId": "query_iamc_scenarios__patch", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "table", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Table"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/IamcScenarioFilter"}], "default": {"run": {"default_only": true, "is_default": true}}, "title": "Filter"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__scenario__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/iamc/regions/": {"get": {"tags": ["iamc", "regions"], "summary": "Enumerate", "operationId": "enumerate_iamc_regions__get", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "table", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Table"}}, {"name": "id", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}}, {"name": "name", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}}, {"name": "hierarchy", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy"}}, {"name": "id__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "integer"}}, {"type": "null"}], "title": "Id In"}}, {"name": "name__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Name In"}}, {"name": "name__like", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like"}}, {"name": "name__ilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike"}}, {"name": "name__notlike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike"}}, {"name": "name__notilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike"}}, {"name": "hierarchy__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Hierarchy In"}}, {"name": "hierarchy__like", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Like"}}, {"name": "hierarchy__ilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Ilike"}}, {"name": "hierarchy__notlike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Notlike"}}, {"name": "hierarchy__notilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Notilike"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__region__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["iamc", "regions"], "summary": "Query", "operationId": "query_iamc_regions__patch", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "table", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Table"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/IamcRegionFilter"}], "default": {"run": {"default_only": true, "is_default": true}}, "title": "Filter"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__region__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/iamc/units/": {"get": {"tags": ["iamc", "units"], "summary": "Enumerate", "operationId": "enumerate_iamc_units__get", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "table", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Table"}}, {"name": "id", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}}, {"name": "name", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}}, {"name": "id__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "integer"}}, {"type": "null"}], "title": "Id In"}}, {"name": "name__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Name In"}}, {"name": "name__like", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like"}}, {"name": "name__ilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike"}}, {"name": "name__notlike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike"}}, {"name": "name__notilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__unit__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["iamc", "units"], "summary": "Query", "operationId": "query_iamc_units__patch", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "table", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Table"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/IamcUnitFilter"}], "default": {"run": {"default_only": true, "is_default": true}}, "title": "Filter"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__unit__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/iamc/variables/": {"get": {"tags": ["iamc", "variables"], "summary": "Enumerate", "description": ":func:`ixmp4.server.rest.iamc.variable.enumerate`", "operationId": "enumerate_iamc_variables__get", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "table", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Table"}}, {"name": "id", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}}, {"name": "name", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}}, {"name": "id__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "integer"}}, {"type": "null"}], "title": "Id In"}}, {"name": "name__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Name In"}}, {"name": "name__like", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like"}}, {"name": "name__ilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike"}}, {"name": "name__notlike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike"}}, {"name": "name__notilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Body_enumerate_iamc_variables__get"}], "title": "Body"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__variable__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["iamc", "variables"], "summary": "Query", "description": ":func:`ixmp4.server.rest.iamc.variable.query`", "operationId": "query_iamc_variables__patch", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "table", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Table"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ixmp4__data__db__iamc__variable__filter__VariableFilter"}], "default": {"run": {"default_only": true, "is_default": true}}, "title": "Filter"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__variable__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["iamc", "variables"], "summary": "Create", "description": ":func:`ixmp4.server.rest.iamc.variable.create`", "operationId": "create_iamc_variables__post", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/VariableInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Variable"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/optimization/indexsets/": {"get": {"tags": ["optimization", "indexsets"], "summary": "Enumerate", "description": ":func:`ixmp4.server.rest.optimization.indexset.enumerate`", "operationId": "enumerate_optimization_indexsets__get", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "table", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Table"}}, {"name": "id", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}}, {"name": "name", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}}, {"name": "run_id", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Run Id"}}, {"name": "id__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "integer"}}, {"type": "null"}], "title": "Id In"}}, {"name": "name__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Name In"}}, {"name": "name__like", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like"}}, {"name": "name__ilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike"}}, {"name": "name__notlike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike"}}, {"name": "name__notilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike"}}, {"name": "run_id__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "integer"}}, {"type": "null"}], "title": "Run Id In"}}, {"name": "run_id__gt", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Run Id Gt"}}, {"name": "run_id__lt", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Run Id Lt"}}, {"name": "run_id__gte", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Run Id Gte"}}, {"name": "run_id__lte", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Run Id Lte"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__optimization__indexset__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["optimization", "indexsets"], "summary": "Query", "description": ":func:`ixmp4.server.rest.optimization.indexset.query`", "operationId": "query_optimization_indexsets__patch", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "table", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Table"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/OptimizationIndexSetFilter"}], "default": {}, "title": "Filter"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__optimization__indexset__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["optimization", "indexsets"], "summary": "Create", "description": ":func:`ixmp4.server.rest.optimization.indexset.create`", "operationId": "create_optimization_indexsets__post", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/IndexSetInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/IndexSet"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/optimization/indexsets/{indexset_id}/": {"patch": {"tags": ["optimization", "indexsets"], "summary": "Add Elements", "description": ":func:`ixmp4.server.rest.optimization.indexset.add_elements`", "operationId": "add_elements_optimization_indexsets__indexset_id___patch", "parameters": [{"name": "indexset_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Indexset Id"}}, {"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ElementsInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/meta/": {"get": {"tags": ["meta"], "summary": "Enumerate", "operationId": "enumerate_meta__get", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "run_ids", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "integer"}}, {"type": "null"}], "title": "Run Ids"}}, {"name": "keys", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Keys"}}, {"name": "table", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Table"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__meta__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["meta"], "summary": "Create", "operationId": "create_meta__post", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RunMetaEntryInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RunMetaEntry"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/meta/{id}/": {"delete": {"tags": ["meta"], "summary": "Delete", "operationId": "delete_meta__id___delete", "parameters": [{"name": "id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Id"}}, {"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/meta/bulk/": {"post": {"tags": ["meta"], "summary": "Bulk Upsert", "operationId": "bulk_upsert_meta_bulk__post", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"index": {"anyOf": [{"type": "array", "items": {}}, {"type": "null"}], "title": "Index"}, "columns": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Columns"}, "dtypes": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Dtypes"}, "data": {"anyOf": [{"type": "array", "items": {}}, {"type": "null"}], "title": "Data"}}, "required": ["columns", "dtypes", "data"], "title": "Df"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["meta"], "summary": "Bulk Delete", "operationId": "bulk_delete_meta_bulk__patch", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"index": {"anyOf": [{"type": "array", "items": {}}, {"type": "null"}], "title": "Index"}, "columns": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Columns"}, "dtypes": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Dtypes"}, "data": {"anyOf": [{"type": "array", "items": {}}, {"type": "null"}], "title": "Data"}}, "required": ["columns", "dtypes", "data"], "title": "Df"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/models/": {"get": {"tags": ["models"], "summary": "Enumerate", "description": ":func:`ixmp4.server.rest.model.enumerate`", "operationId": "enumerate_models__get", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "table", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Table"}}, {"name": "id", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}}, {"name": "name", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}}, {"name": "id__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "integer"}}, {"type": "null"}], "title": "Id In"}}, {"name": "name__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Name In"}}, {"name": "name__like", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like"}}, {"name": "name__ilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike"}}, {"name": "name__notlike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike"}}, {"name": "name__notilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/IamcModelFilter"}, {"type": "boolean"}, {"type": "null"}], "title": "Iamc"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__model__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["models"], "summary": "Query", "description": ":func:`ixmp4.server.rest.model.query`", "operationId": "query_models__patch", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "table", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Table"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ixmp4__data__db__model__filter__ModelFilter"}], "title": "Filter"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__model__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["models"], "summary": "Create", "description": ":func:`ixmp4.server.rest.model.create`", "operationId": "create_models__post", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ModelInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Model"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/regions/": {"get": {"tags": ["regions"], "summary": "Enumerate", "description": ":func:`ixmp4.server.rest.region.enumerate`", "operationId": "enumerate_regions__get", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "table", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Table"}}, {"name": "id", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}}, {"name": "name", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}}, {"name": "hierarchy", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy"}}, {"name": "id__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "integer"}}, {"type": "null"}], "title": "Id In"}}, {"name": "name__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Name In"}}, {"name": "name__like", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like"}}, {"name": "name__ilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike"}}, {"name": "name__notlike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike"}}, {"name": "name__notilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike"}}, {"name": "hierarchy__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Hierarchy In"}}, {"name": "hierarchy__like", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Like"}}, {"name": "hierarchy__ilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Ilike"}}, {"name": "hierarchy__notlike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Notlike"}}, {"name": "hierarchy__notilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Notilike"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/IamcRegionFilter"}, {"type": "boolean"}, {"type": "null"}], "title": "Iamc"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__region__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["regions"], "summary": "Query", "description": ":func:`ixmp4.server.rest.region.query`", "operationId": "query_regions__patch", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "table", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Table"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ixmp4__data__db__region__filter__RegionFilter"}], "title": "Filter"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__region__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["regions"], "summary": "Create", "description": ":func:`ixmp4.server.rest.region.create`", "operationId": "create_regions__post", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RegionInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Region"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/regions/{id}/": {"delete": {"tags": ["regions"], "summary": "Delete", "operationId": "delete_regions__id___delete", "parameters": [{"name": "id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Id"}}, {"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/runs/": {"get": {"tags": ["runs"], "summary": "Enumerate", "operationId": "enumerate_runs__get", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "table", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Table"}}, {"name": "id", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}}, {"name": "version", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version"}}, {"name": "default_only", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": true, "title": "Default Only"}}, {"name": "is_default", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Is Default"}}, {"name": "id__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "integer"}}, {"type": "null"}], "title": "Id In"}}, {"name": "version__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "integer"}}, {"type": "null"}], "title": "Version In"}}, {"name": "version__gt", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version Gt"}}, {"name": "version__lt", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version Lt"}}, {"name": "version__gte", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version Gte"}}, {"name": "version__lte", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version Lte"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/Body_enumerate_runs__get"}], "title": "Body"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__run__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["runs"], "summary": "Query", "operationId": "query_runs__patch", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "table", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Table"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ixmp4__data__db__run__filter__RunFilter"}], "default": {"default_only": true, "is_default": false}, "title": "Filter"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__run__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["runs"], "summary": "Create", "operationId": "create_runs__post", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RunInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Run"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/runs/{id}/set-as-default-version/": {"post": {"tags": ["runs"], "summary": "Set As Default Version", "operationId": "set_as_default_version_runs__id__set_as_default_version__post", "parameters": [{"name": "id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Id"}}, {"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/runs/{id}/unset-as-default-version/": {"post": {"tags": ["runs"], "summary": "Unset As Default Version", "operationId": "unset_as_default_version_runs__id__unset_as_default_version__post", "parameters": [{"name": "id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Id"}}, {"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/scenarios/": {"get": {"tags": ["scenarios"], "summary": "Enumerate", "description": ":func:`ixmp4.server.rest.scenario.enumerate`", "operationId": "enumerate_scenarios__get", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "table", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Table"}}, {"name": "id", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}}, {"name": "name", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}}, {"name": "id__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "integer"}}, {"type": "null"}], "title": "Id In"}}, {"name": "name__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Name In"}}, {"name": "name__like", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like"}}, {"name": "name__ilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike"}}, {"name": "name__notlike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike"}}, {"name": "name__notilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/IamcScenarioFilter"}, {"type": "boolean"}, {"type": "null"}], "title": "Iamc"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__scenario__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["scenarios"], "summary": "Query", "description": ":func:`ixmp4.server.rest.scenario.query`", "operationId": "query_scenarios__patch", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "table", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Table"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ixmp4__data__db__scenario__filter__ScenarioFilter"}], "title": "Filter"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__scenario__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["scenarios"], "summary": "Create", "description": ":func:`ixmp4.server.rest.scenario.create`", "operationId": "create_scenarios__post", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ScenarioInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Scenario"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/iamc/timeseries/": {"get": {"tags": ["iamc", "timeseries"], "summary": "Enumerate", "operationId": "enumerate_iamc_timeseries__get", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "join_parameters", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Join Parameters"}}, {"name": "run_ids", "in": "query", "required": false, "schema": {"type": "array", "items": {"type": "integer"}, "title": "Run Ids"}}, {"name": "table", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Table"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__iamc__timeseries__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["iamc", "timeseries"], "summary": "Create", "operationId": "create_iamc_timeseries__post", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TimeSeriesInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Run"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/iamc/timeseries/{id}/": {"get": {"tags": ["iamc", "timeseries"], "summary": "Get By Id", "operationId": "get_by_id_iamc_timeseries__id___get", "parameters": [{"name": "id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Id"}}, {"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TimeSeries"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/iamc/timeseries/bulk/": {"post": {"tags": ["iamc", "timeseries"], "summary": "Bulk Upsert", "operationId": "bulk_upsert_iamc_timeseries_bulk__post", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "create_related", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Create Related"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"index": {"anyOf": [{"type": "array", "items": {}}, {"type": "null"}], "title": "Index"}, "columns": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Columns"}, "dtypes": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Dtypes"}, "data": {"anyOf": [{"type": "array", "items": {}}, {"type": "null"}], "title": "Data"}}, "required": ["columns", "dtypes", "data"], "title": "Df"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/units/": {"get": {"tags": ["units"], "summary": "Enumerate", "description": ":func:`ixmp4.server.rest.unit.enumerate`", "operationId": "enumerate_units__get", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "table", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Table"}}, {"name": "id", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id"}}, {"name": "name", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}}, {"name": "id__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "integer"}}, {"type": "null"}], "title": "Id In"}}, {"name": "name__in", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "title": "Name In"}}, {"name": "name__like", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like"}}, {"name": "name__ilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike"}}, {"name": "name__notlike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike"}}, {"name": "name__notilike", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/IamcUnitFilter"}, {"type": "boolean"}, {"type": "null"}], "title": "Iamc"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__unit__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["units"], "summary": "Query", "description": ":func:`ixmp4.server.rest.unit.query`", "operationId": "query_units__patch", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "table", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Table"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ixmp4__data__db__unit__filter__UnitFilter"}], "title": "Filter"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ixmp4__server__rest__unit__EnumerationOutput"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["units"], "summary": "Create", "operationId": "create_units__post", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnitInput"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Unit"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/units/{id}/": {"delete": {"tags": ["units"], "summary": "Delete", "operationId": "delete_units__id___delete", "parameters": [{"name": "id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Id"}}, {"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}, {"name": "authorization", "in": "header", "required": false, "schema": {"type": "string", "title": "Authorization"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/": {"get": {"summary": "Root", "operationId": "root__get", "parameters": [{"name": "platform", "in": "path", "required": true, "schema": {"type": "string", "title": "Platform"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIInfo"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}}, "components": {"schemas": {"APIInfo": {"properties": {"name": {"type": "string", "title": "Name"}, "version": {"type": "string", "title": "Version"}, "is_managed": {"type": "boolean", "title": "Is Managed"}, "manager_url": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Manager Url"}, "utcnow": {"type": "string", "format": "date-time", "title": "Utcnow"}}, "type": "object", "required": ["name", "version", "is_managed", "manager_url", "utcnow"], "title": "APIInfo"}, "Body_enumerate_iamc_datapoints__get": {"properties": {"region": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__RegionFilter"}, {"type": "null"}]}, "unit": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__UnitFilter"}, {"type": "null"}]}, "variable": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__VariableFilter"}, {"type": "null"}]}, "model": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__ModelFilter"}, {"type": "null"}]}, "scenario": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__ScenarioFilter"}, {"type": "null"}]}, "run": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__RunFilter"}, {"type": "null"}]}}, "type": "object", "title": "Body_enumerate_iamc_datapoints__get"}, "Body_enumerate_iamc_models__get": {"properties": {"region": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__region__RegionFilter"}, {"type": "null"}]}, "variable": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__variable__VariableFilter"}, {"type": "null"}]}, "unit": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__unit__UnitFilter"}, {"type": "null"}]}, "run": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__model__filter__RunFilter"}, {"type": "null"}], "default": {"default_only": true, "is_default": true}}}, "type": "object", "title": "Body_enumerate_iamc_models__get"}, "Body_enumerate_iamc_scenarios__get": {"properties": {"region": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__region__RegionFilter"}, {"type": "null"}]}, "variable": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__variable__VariableFilter"}, {"type": "null"}]}, "unit": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__unit__UnitFilter"}, {"type": "null"}]}, "run": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__scenario__filter__RunFilter"}, {"type": "null"}], "default": {"default_only": true, "is_default": true}}}, "type": "object", "title": "Body_enumerate_iamc_scenarios__get"}, "Body_enumerate_iamc_variables__get": {"properties": {"region": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__region__RegionFilter"}, {"type": "null"}]}, "variable": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__variable__VariableFilter"}, {"type": "null"}]}, "unit": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__unit__UnitFilter"}, {"type": "null"}]}, "run": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__run__RunFilter"}, {"type": "null"}], "default": {"default_only": true, "is_default": true}}}, "type": "object", "title": "Body_enumerate_iamc_variables__get"}, "Body_enumerate_runs__get": {"properties": {"model": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__model__ModelFilter"}, {"type": "null"}]}, "scenario": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__scenario__ScenarioFilter"}, {"type": "null"}]}}, "type": "object", "title": "Body_enumerate_runs__get"}, "DataFrame": {"properties": {"index": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Index"}, "columns": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Columns"}, "dtypes": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Dtypes"}, "data": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Data"}}, "type": "object", "required": ["columns", "dtypes", "data"], "title": "DataFrame"}, "DataPoint": {"properties": {"id": {"type": "integer", "title": "Id"}, "time_series__id": {"type": "integer", "title": "Time Series Id"}, "value": {"type": "number", "title": "Value"}, "type": {"type": "string", "title": "Type"}, "step_category": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Step Category"}, "step_year": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Step Year"}, "step_datetime": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Step Datetime"}}, "type": "object", "required": ["id", "time_series__id", "value", "type", "step_category", "step_year", "step_datetime"], "title": "DataPoint"}, "DataPointFilter": {"properties": {"year": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Year", "sqla_column": "step_year"}, "time_series_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Time Series Id", "sqla_column": "time_series__id"}, "region": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__RegionFilter"}, {"type": "null"}], "sqla_column": "region"}, "unit": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__UnitFilter"}, {"type": "null"}], "sqla_column": "unit"}, "variable": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__VariableFilter"}, {"type": "null"}], "sqla_column": "variable"}, "model": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__ModelFilter"}, {"type": "null"}], "sqla_column": "model"}, "scenario": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__ScenarioFilter"}, {"type": "null"}], "sqla_column": "scenario"}, "run": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__iamc__datapoint__filter__RunFilter"}, {"type": "null"}], "sqla_column": "run"}, "year__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Year In", "sqla_column": "step_year"}, "year__gt": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Year Gt", "sqla_column": "step_year"}, "year__lt": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Year Lt", "sqla_column": "step_year"}, "year__gte": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Year Gte", "sqla_column": "step_year"}, "year__lte": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Year Lte", "sqla_column": "step_year"}, "time_series_id__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Time Series Id In", "sqla_column": "time_series__id"}}, "additionalProperties": false, "type": "object", "title": "run", "description": "This class is used for filtering data points\n\nAll parameters are optional. Use the field name (or the field alias)\ndirectly for equality comparisons. For performing an SQL IN operation\nuse the field name followed by a double underscore and *in*.\n\nParameters\n----------\nstep_year : filters.Integer, Optional\n Filter for data point year, can also be called with \"year\"\ntime_series__id : filters.Id, Optional\n Filter for the id of the time series, can also be called with \"time_series_id\"\nregion : RegionFilter, Optional\n Filter for either region name or hierarchy\nunit : UnitFilter, Optional\n Filter for unit name\nvariable : VariableFilter, Optional\n Filter for variable name\nmodel : ModelFilter, Optional\n Filter for model name\nscenario : ScenarioFilter, Optional\n Filter for the scenario name\nrun : RunFilter, Optional\n Filter for the run, options are id or default_only\n\nExamples\n--------\n\nReturn all data points for a given year.\n\n>>> DataPointFilter(year = 2020)\n\nReturn all data points a number of years\n\n>>> DataPointFilter(year__in = [2020, 2025])\n\nReturn all data point that map to a given variable\n\n>>> DataPointFilter(variable = VariableFilter(name = \"variable 1\"))\n\nNote that for actual use providing the filter parameters as key word arguments is\nsufficient. Calling an endpoint could look like this:\n\n>>> filter = {\"variable\": {\"name\": \"variable 1\"}, \"year\": 2020}\n>>> iamc.tabulate(**filter)"}, "Docs": {"properties": {"id": {"type": "integer", "title": "Id"}, "description": {"type": "string", "title": "Description"}, "dimension__id": {"type": "integer", "title": "Dimension Id"}}, "type": "object", "required": ["id", "description", "dimension__id"], "title": "Docs"}, "DocsInput": {"properties": {"dimension_id": {"type": "integer", "title": "Dimension Id"}, "description": {"type": "string", "title": "Description"}}, "type": "object", "required": ["dimension_id", "description"], "title": "DocsInput"}, "ElementsInput": {"properties": {"elements": {"anyOf": [{"type": "integer"}, {"items": {"anyOf": [{"type": "integer"}, {"type": "string"}]}, "type": "array"}, {"type": "string"}], "title": "Elements"}}, "type": "object", "required": ["elements"], "title": "ElementsInput"}, "HTTPValidationError": {"properties": {"detail": {"items": {"$ref": "#/components/schemas/ValidationError"}, "type": "array", "title": "Detail"}}, "type": "object", "title": "HTTPValidationError"}, "IamcModelFilter": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id", "sqla_column": "id"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "sqla_column": "name"}, "id__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Id In", "sqla_column": "id"}, "name__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Name In", "sqla_column": "name"}, "name__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like", "sqla_column": "name"}, "name__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike", "sqla_column": "name"}, "name__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike", "sqla_column": "name"}, "name__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike", "sqla_column": "name"}, "region": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__region__RegionFilter"}, {"type": "null"}], "sqla_column": "region"}, "variable": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__variable__VariableFilter"}, {"type": "null"}], "sqla_column": "variable"}, "unit": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__unit__UnitFilter"}, {"type": "null"}], "sqla_column": "unit"}, "run": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__model__filter__RunFilter"}, {"type": "null"}], "default": {"default_only": true, "is_default": true}, "sqla_column": "run"}}, "additionalProperties": false, "type": "object", "title": "run"}, "IamcRegionFilter": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id", "sqla_column": "id"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "sqla_column": "name"}, "hierarchy": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy", "sqla_column": "hierarchy"}, "id__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Id In", "sqla_column": "id"}, "name__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Name In", "sqla_column": "name"}, "name__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like", "sqla_column": "name"}, "name__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike", "sqla_column": "name"}, "name__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike", "sqla_column": "name"}, "name__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike", "sqla_column": "name"}, "hierarchy__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Hierarchy In", "sqla_column": "hierarchy"}, "hierarchy__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Like", "sqla_column": "hierarchy"}, "hierarchy__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Ilike", "sqla_column": "hierarchy"}, "hierarchy__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Notlike", "sqla_column": "hierarchy"}, "hierarchy__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Notilike", "sqla_column": "hierarchy"}, "variable": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__variable__VariableFilter"}, {"type": "null"}], "sqla_column": "variable"}, "unit": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__unit__UnitFilter"}, {"type": "null"}], "sqla_column": "unit"}, "run": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__run__RunFilter"}, {"type": "null"}], "default": {"default_only": true, "is_default": true}, "sqla_column": "run"}}, "additionalProperties": false, "type": "object", "title": "run"}, "IamcScenarioFilter": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id", "sqla_column": "id"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "sqla_column": "name"}, "id__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Id In", "sqla_column": "id"}, "name__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Name In", "sqla_column": "name"}, "name__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like", "sqla_column": "name"}, "name__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike", "sqla_column": "name"}, "name__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike", "sqla_column": "name"}, "name__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike", "sqla_column": "name"}, "region": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__region__RegionFilter"}, {"type": "null"}], "sqla_column": "region"}, "variable": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__variable__VariableFilter"}, {"type": "null"}], "sqla_column": "variable"}, "unit": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__unit__UnitFilter"}, {"type": "null"}], "sqla_column": "unit"}, "run": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__scenario__filter__RunFilter"}, {"type": "null"}], "default": {"default_only": true, "is_default": true}, "sqla_column": "run"}}, "additionalProperties": false, "type": "object", "title": "run"}, "IamcUnitFilter": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id", "sqla_column": "id"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "sqla_column": "name"}, "id__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Id In", "sqla_column": "id"}, "name__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Name In", "sqla_column": "name"}, "name__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like", "sqla_column": "name"}, "name__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike", "sqla_column": "name"}, "name__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike", "sqla_column": "name"}, "name__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike", "sqla_column": "name"}, "variable": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__variable__VariableFilter"}, {"type": "null"}], "sqla_column": "variable"}, "region": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__region__RegionFilter"}, {"type": "null"}], "sqla_column": "region"}, "run": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__run__RunFilter"}, {"type": "null"}], "default": {"default_only": true, "is_default": true}, "sqla_column": "run"}}, "additionalProperties": false, "type": "object", "title": "run"}, "IndexSet": {"properties": {"id": {"type": "integer", "title": "Id"}, "name": {"type": "string", "title": "Name"}, "elements": {"anyOf": [{"type": "integer"}, {"items": {"anyOf": [{"type": "integer"}, {"type": "string"}]}, "type": "array"}, {"type": "string"}, {"type": "null"}], "title": "Elements"}, "run__id": {"type": "integer", "title": "Run Id"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "created_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Created By"}}, "type": "object", "required": ["id", "name", "elements", "run__id", "created_at", "created_by"], "title": "IndexSet"}, "IndexSetInput": {"properties": {"run_id": {"type": "integer", "title": "Run Id"}, "name": {"type": "string", "title": "Name"}}, "type": "object", "required": ["run_id", "name"], "title": "IndexSetInput"}, "Model": {"properties": {"id": {"type": "integer", "title": "Id"}, "name": {"type": "string", "title": "Name"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "created_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Created By"}}, "type": "object", "required": ["id", "name"], "title": "Model"}, "ModelInput": {"properties": {"name": {"type": "string", "title": "Name"}}, "type": "object", "required": ["name"], "title": "ModelInput"}, "OptimizationIndexSetFilter": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id", "sqla_column": "id"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "sqla_column": "name"}, "run_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Run Id", "sqla_column": "run__id"}, "id__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Id In", "sqla_column": "id"}, "name__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Name In", "sqla_column": "name"}, "name__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like", "sqla_column": "name"}, "name__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike", "sqla_column": "name"}, "name__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike", "sqla_column": "name"}, "name__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike", "sqla_column": "name"}, "run_id__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Run Id In", "sqla_column": "run__id"}, "run_id__gt": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Run Id Gt", "sqla_column": "run__id"}, "run_id__lt": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Run Id Lt", "sqla_column": "run__id"}, "run_id__gte": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Run Id Gte", "sqla_column": "run__id"}, "run_id__lte": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Run Id Lte", "sqla_column": "run__id"}}, "additionalProperties": false, "type": "object", "title": "sqla_model"}, "Region": {"properties": {"id": {"type": "integer", "title": "Id"}, "name": {"type": "string", "title": "Name"}, "hierarchy": {"type": "string", "title": "Hierarchy"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "created_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Created By"}}, "type": "object", "required": ["id", "name", "hierarchy"], "title": "Region"}, "RegionInput": {"properties": {"name": {"type": "string", "title": "Name"}, "hierarchy": {"type": "string", "title": "Hierarchy"}}, "type": "object", "required": ["name", "hierarchy"], "title": "RegionInput"}, "Run": {"properties": {"id": {"type": "integer", "title": "Id"}, "model": {"$ref": "#/components/schemas/Model"}, "model__id": {"type": "integer", "title": "Model Id"}, "scenario": {"$ref": "#/components/schemas/Scenario"}, "scenario__id": {"type": "integer", "title": "Scenario Id"}, "version": {"type": "integer", "title": "Version"}, "is_default": {"type": "boolean", "title": "Is Default"}}, "type": "object", "required": ["id", "model", "model__id", "scenario", "scenario__id", "version", "is_default"], "title": "Run"}, "RunInput": {"properties": {"model_name": {"type": "string", "title": "Model Name"}, "scenario_name": {"type": "string", "title": "Scenario Name"}}, "type": "object", "required": ["model_name", "scenario_name"], "title": "RunInput"}, "RunMetaEntry": {"properties": {"id": {"type": "integer", "title": "Id"}, "run__id": {"type": "integer", "title": "Run Id"}, "key": {"type": "string", "title": "Key"}, "type": {"type": "string", "title": "Type"}, "value": {"anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}], "title": "Value"}}, "type": "object", "required": ["id", "run__id", "key", "type", "value"], "title": "RunMetaEntry"}, "RunMetaEntryInput": {"properties": {"run__id": {"type": "integer", "title": "Run Id"}, "key": {"type": "string", "title": "Key"}, "value": {"anyOf": [{"type": "boolean"}, {"type": "integer"}, {"type": "number"}, {"type": "string"}], "title": "Value"}}, "type": "object", "required": ["run__id", "key", "value"], "title": "RunMetaEntryInput"}, "Scenario": {"properties": {"id": {"type": "integer", "title": "Id"}, "name": {"type": "string", "title": "Name"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "created_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Created By"}}, "type": "object", "required": ["id", "name"], "title": "Scenario"}, "ScenarioInput": {"properties": {"name": {"type": "string", "title": "Name"}}, "type": "object", "required": ["name"], "title": "ScenarioInput"}, "TimeSeries": {"properties": {"id": {"type": "integer", "title": "Id"}, "run__id": {"type": "integer", "title": "Run Id"}, "parameters": {"type": "object", "title": "Parameters"}}, "type": "object", "required": ["id", "run__id", "parameters"], "title": "TimeSeries"}, "TimeSeriesInput": {"properties": {"run__id": {"type": "integer", "title": "Run Id"}, "parameters": {"type": "object", "title": "Parameters"}}, "type": "object", "required": ["run__id", "parameters"], "title": "TimeSeriesInput"}, "Unit": {"properties": {"id": {"type": "integer", "title": "Id"}, "name": {"type": "string", "title": "Name"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "created_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Created By"}}, "type": "object", "required": ["id", "name"], "title": "Unit"}, "UnitInput": {"properties": {"name": {"type": "string", "title": "Name"}}, "type": "object", "required": ["name"], "title": "UnitInput"}, "ValidationError": {"properties": {"loc": {"items": {"anyOf": [{"type": "string"}, {"type": "integer"}]}, "type": "array", "title": "Location"}, "msg": {"type": "string", "title": "Message"}, "type": {"type": "string", "title": "Error Type"}}, "type": "object", "required": ["loc", "msg", "type"], "title": "ValidationError"}, "Variable": {"properties": {"id": {"type": "integer", "title": "Id"}, "name": {"type": "string", "title": "Name"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "created_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Created By"}}, "type": "object", "required": ["id", "name"], "title": "Variable"}, "VariableInput": {"properties": {"name": {"type": "string", "title": "Name"}}, "type": "object", "required": ["name"], "title": "VariableInput"}, "ixmp4__data__db__filters__model__ModelFilter": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id", "sqla_column": "id"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "sqla_column": "name"}, "id__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Id In", "sqla_column": "id"}, "name__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Name In", "sqla_column": "name"}, "name__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like", "sqla_column": "name"}, "name__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike", "sqla_column": "name"}, "name__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike", "sqla_column": "name"}, "name__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike", "sqla_column": "name"}}, "additionalProperties": false, "type": "object", "title": "sqla_model"}, "ixmp4__data__db__filters__region__RegionFilter": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id", "sqla_column": "id"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "sqla_column": "name"}, "hierarchy": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy", "sqla_column": "hierarchy"}, "id__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Id In", "sqla_column": "id"}, "name__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Name In", "sqla_column": "name"}, "name__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like", "sqla_column": "name"}, "name__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike", "sqla_column": "name"}, "name__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike", "sqla_column": "name"}, "name__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike", "sqla_column": "name"}, "hierarchy__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Hierarchy In", "sqla_column": "hierarchy"}, "hierarchy__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Like", "sqla_column": "hierarchy"}, "hierarchy__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Ilike", "sqla_column": "hierarchy"}, "hierarchy__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Notlike", "sqla_column": "hierarchy"}, "hierarchy__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Notilike", "sqla_column": "hierarchy"}}, "additionalProperties": false, "type": "object", "title": "sqla_model"}, "ixmp4__data__db__filters__run__RunFilter": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id", "sqla_column": "id"}, "version": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version", "sqla_column": "version"}, "default_only": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Default Only", "default": true, "sqla_column": "default_only"}, "is_default": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Is Default", "sqla_column": "is_default"}, "model": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__model__ModelFilter"}, {"type": "null"}], "sqla_column": "model"}, "scenario": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__scenario__ScenarioFilter"}, {"type": "null"}], "sqla_column": "scenario"}, "id__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Id In", "sqla_column": "id"}, "version__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Version In", "sqla_column": "version"}, "version__gt": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version Gt", "sqla_column": "version"}, "version__lt": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version Lt", "sqla_column": "version"}, "version__gte": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version Gte", "sqla_column": "version"}, "version__lte": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version Lte", "sqla_column": "version"}}, "additionalProperties": false, "type": "object", "title": "sqla_model"}, "ixmp4__data__db__filters__scenario__ScenarioFilter": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id", "sqla_column": "id"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "sqla_column": "name"}, "id__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Id In", "sqla_column": "id"}, "name__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Name In", "sqla_column": "name"}, "name__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like", "sqla_column": "name"}, "name__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike", "sqla_column": "name"}, "name__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike", "sqla_column": "name"}, "name__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike", "sqla_column": "name"}}, "additionalProperties": false, "type": "object", "title": "sqla_model"}, "ixmp4__data__db__filters__unit__UnitFilter": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id", "sqla_column": "id"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "sqla_column": "name"}, "id__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Id In", "sqla_column": "id"}, "name__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Name In", "sqla_column": "name"}, "name__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like", "sqla_column": "name"}, "name__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike", "sqla_column": "name"}, "name__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike", "sqla_column": "name"}, "name__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike", "sqla_column": "name"}}, "additionalProperties": false, "type": "object", "title": "sqla_model"}, "ixmp4__data__db__filters__variable__VariableFilter": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id", "sqla_column": "id"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "sqla_column": "name"}, "id__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Id In", "sqla_column": "id"}, "name__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Name In", "sqla_column": "name"}, "name__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like", "sqla_column": "name"}, "name__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike", "sqla_column": "name"}, "name__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike", "sqla_column": "name"}, "name__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike", "sqla_column": "name"}}, "additionalProperties": false, "type": "object", "title": "sqla_model"}, "ixmp4__data__db__iamc__datapoint__filter__ModelFilter": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "sqla_column": "name"}, "name__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Name In", "sqla_column": "name"}, "name__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like", "sqla_column": "name"}, "name__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike", "sqla_column": "name"}, "name__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike", "sqla_column": "name"}, "name__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike", "sqla_column": "name"}}, "additionalProperties": false, "type": "object", "title": "sqla_model"}, "ixmp4__data__db__iamc__datapoint__filter__RegionFilter": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "sqla_column": "name"}, "hierarchy": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy", "sqla_column": "hierarchy"}, "name__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Name In", "sqla_column": "name"}, "name__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like", "sqla_column": "name"}, "name__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike", "sqla_column": "name"}, "name__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike", "sqla_column": "name"}, "name__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike", "sqla_column": "name"}, "hierarchy__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Hierarchy In", "sqla_column": "hierarchy"}, "hierarchy__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Like", "sqla_column": "hierarchy"}, "hierarchy__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Ilike", "sqla_column": "hierarchy"}, "hierarchy__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Notlike", "sqla_column": "hierarchy"}, "hierarchy__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Notilike", "sqla_column": "hierarchy"}}, "additionalProperties": false, "type": "object", "title": "sqla_model"}, "ixmp4__data__db__iamc__datapoint__filter__RunFilter": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id", "sqla_column": "id"}, "default_only": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Default Only", "default": false, "sqla_column": "default_only"}, "id__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Id In", "sqla_column": "id"}}, "additionalProperties": false, "type": "object", "title": "sqla_model"}, "ixmp4__data__db__iamc__datapoint__filter__ScenarioFilter": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "sqla_column": "name"}, "name__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Name In", "sqla_column": "name"}, "name__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like", "sqla_column": "name"}, "name__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike", "sqla_column": "name"}, "name__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike", "sqla_column": "name"}, "name__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike", "sqla_column": "name"}}, "additionalProperties": false, "type": "object", "title": "sqla_model"}, "ixmp4__data__db__iamc__datapoint__filter__UnitFilter": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "sqla_column": "name"}, "name__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Name In", "sqla_column": "name"}, "name__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like", "sqla_column": "name"}, "name__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike", "sqla_column": "name"}, "name__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike", "sqla_column": "name"}, "name__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike", "sqla_column": "name"}}, "additionalProperties": false, "type": "object", "title": "sqla_model"}, "ixmp4__data__db__iamc__datapoint__filter__VariableFilter": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "sqla_column": "name"}, "name__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Name In", "sqla_column": "name"}, "name__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like", "sqla_column": "name"}, "name__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike", "sqla_column": "name"}, "name__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike", "sqla_column": "name"}, "name__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike", "sqla_column": "name"}}, "additionalProperties": false, "type": "object", "title": "sqla_model"}, "ixmp4__data__db__iamc__variable__filter__VariableFilter": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id", "sqla_column": "id"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "sqla_column": "name"}, "id__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Id In", "sqla_column": "id"}, "name__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Name In", "sqla_column": "name"}, "name__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like", "sqla_column": "name"}, "name__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike", "sqla_column": "name"}, "name__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike", "sqla_column": "name"}, "name__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike", "sqla_column": "name"}, "region": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__region__RegionFilter"}, {"type": "null"}], "sqla_column": "region"}, "variable": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__variable__VariableFilter"}, {"type": "null"}], "sqla_column": "variable"}, "unit": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__unit__UnitFilter"}, {"type": "null"}], "sqla_column": "unit"}, "run": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__run__RunFilter"}, {"type": "null"}], "default": {"default_only": true, "is_default": true}, "sqla_column": "run"}}, "additionalProperties": false, "type": "object", "title": "run"}, "ixmp4__data__db__model__filter__ModelFilter": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id", "sqla_column": "id"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "sqla_column": "name"}, "id__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Id In", "sqla_column": "id"}, "name__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Name In", "sqla_column": "name"}, "name__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like", "sqla_column": "name"}, "name__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike", "sqla_column": "name"}, "name__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike", "sqla_column": "name"}, "name__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike", "sqla_column": "name"}, "iamc": {"anyOf": [{"$ref": "#/components/schemas/IamcModelFilter"}, {"type": "boolean"}, {"type": "null"}], "title": "Iamc", "sqla_column": "iamc"}}, "additionalProperties": false, "type": "object", "title": "iamc"}, "ixmp4__data__db__model__filter__RunFilter": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id", "sqla_column": "id"}, "version": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version", "sqla_column": "version"}, "default_only": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Default Only", "default": true, "sqla_column": "default_only"}, "is_default": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Is Default", "sqla_column": "is_default"}, "model": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__model__ModelFilter"}, {"type": "null"}], "sqla_column": "model"}, "scenario": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__scenario__ScenarioFilter"}, {"type": "null"}], "sqla_column": "scenario"}, "id__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Id In", "sqla_column": "id"}, "version__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Version In", "sqla_column": "version"}, "version__gt": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version Gt", "sqla_column": "version"}, "version__lt": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version Lt", "sqla_column": "version"}, "version__gte": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version Gte", "sqla_column": "version"}, "version__lte": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version Lte", "sqla_column": "version"}}, "additionalProperties": false, "type": "object", "title": "model"}, "ixmp4__data__db__region__filter__RegionFilter": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id", "sqla_column": "id"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "sqla_column": "name"}, "hierarchy": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy", "sqla_column": "hierarchy"}, "id__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Id In", "sqla_column": "id"}, "name__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Name In", "sqla_column": "name"}, "name__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like", "sqla_column": "name"}, "name__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike", "sqla_column": "name"}, "name__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike", "sqla_column": "name"}, "name__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike", "sqla_column": "name"}, "hierarchy__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Hierarchy In", "sqla_column": "hierarchy"}, "hierarchy__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Like", "sqla_column": "hierarchy"}, "hierarchy__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Ilike", "sqla_column": "hierarchy"}, "hierarchy__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Notlike", "sqla_column": "hierarchy"}, "hierarchy__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hierarchy Notilike", "sqla_column": "hierarchy"}, "iamc": {"anyOf": [{"$ref": "#/components/schemas/IamcRegionFilter"}, {"type": "boolean"}, {"type": "null"}], "title": "Iamc", "sqla_column": "iamc"}}, "additionalProperties": false, "type": "object", "title": "iamc"}, "ixmp4__data__db__run__filter__RunFilter": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id", "sqla_column": "id"}, "version": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version", "sqla_column": "version"}, "default_only": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Default Only", "default": true, "sqla_column": "default_only"}, "is_default": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Is Default", "sqla_column": "is_default"}, "model": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__model__ModelFilter"}, {"type": "null"}], "sqla_column": "model"}, "scenario": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__scenario__ScenarioFilter"}, {"type": "null"}], "sqla_column": "scenario"}, "id__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Id In", "sqla_column": "id"}, "version__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Version In", "sqla_column": "version"}, "version__gt": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version Gt", "sqla_column": "version"}, "version__lt": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version Lt", "sqla_column": "version"}, "version__gte": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version Gte", "sqla_column": "version"}, "version__lte": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version Lte", "sqla_column": "version"}}, "additionalProperties": false, "type": "object", "title": "RunFilter"}, "ixmp4__data__db__scenario__filter__RunFilter": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id", "sqla_column": "id"}, "version": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version", "sqla_column": "version"}, "default_only": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Default Only", "default": true, "sqla_column": "default_only"}, "is_default": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Is Default", "sqla_column": "is_default"}, "model": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__model__ModelFilter"}, {"type": "null"}], "sqla_column": "model"}, "scenario": {"anyOf": [{"$ref": "#/components/schemas/ixmp4__data__db__filters__scenario__ScenarioFilter"}, {"type": "null"}], "sqla_column": "scenario"}, "id__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Id In", "sqla_column": "id"}, "version__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Version In", "sqla_column": "version"}, "version__gt": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version Gt", "sqla_column": "version"}, "version__lt": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version Lt", "sqla_column": "version"}, "version__gte": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version Gte", "sqla_column": "version"}, "version__lte": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Version Lte", "sqla_column": "version"}}, "additionalProperties": false, "type": "object", "title": "scenario"}, "ixmp4__data__db__scenario__filter__ScenarioFilter": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id", "sqla_column": "id"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "sqla_column": "name"}, "id__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Id In", "sqla_column": "id"}, "name__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Name In", "sqla_column": "name"}, "name__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like", "sqla_column": "name"}, "name__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike", "sqla_column": "name"}, "name__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike", "sqla_column": "name"}, "name__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike", "sqla_column": "name"}, "iamc": {"anyOf": [{"$ref": "#/components/schemas/IamcScenarioFilter"}, {"type": "boolean"}, {"type": "null"}], "title": "Iamc", "sqla_column": "iamc"}}, "additionalProperties": false, "type": "object", "title": "iamc"}, "ixmp4__data__db__unit__filter__UnitFilter": {"properties": {"id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Id", "sqla_column": "id"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "sqla_column": "name"}, "id__in": {"anyOf": [{"items": {"type": "integer"}, "type": "array"}, {"type": "null"}], "title": "Id In", "sqla_column": "id"}, "name__in": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Name In", "sqla_column": "name"}, "name__like": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Like", "sqla_column": "name"}, "name__ilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Ilike", "sqla_column": "name"}, "name__notlike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notlike", "sqla_column": "name"}, "name__notilike": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name Notilike", "sqla_column": "name"}, "iamc": {"anyOf": [{"$ref": "#/components/schemas/IamcUnitFilter"}, {"type": "boolean"}, {"type": "null"}], "title": "Iamc", "sqla_column": "iamc"}}, "additionalProperties": false, "type": "object", "title": "iamc"}, "ixmp4__server__rest__iamc__datapoint__EnumerationOutput": {"anyOf": [{"items": {"$ref": "#/components/schemas/DataPoint"}, "type": "array"}, {"properties": {"index": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Index"}, "columns": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Columns"}, "dtypes": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Dtypes"}, "data": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Data"}}, "type": "object", "required": ["columns", "dtypes", "data"], "title": "DataFrame"}], "title": "EnumerationOutput"}, "ixmp4__server__rest__iamc__model__EnumerationOutput": {"anyOf": [{"items": {"$ref": "#/components/schemas/Model"}, "type": "array"}, {"properties": {"index": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Index"}, "columns": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Columns"}, "dtypes": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Dtypes"}, "data": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Data"}}, "type": "object", "required": ["columns", "dtypes", "data"], "title": "DataFrame"}], "title": "EnumerationOutput"}, "ixmp4__server__rest__iamc__region__EnumerationOutput": {"anyOf": [{"items": {"$ref": "#/components/schemas/Region"}, "type": "array"}, {"properties": {"index": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Index"}, "columns": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Columns"}, "dtypes": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Dtypes"}, "data": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Data"}}, "type": "object", "required": ["columns", "dtypes", "data"], "title": "DataFrame"}], "title": "EnumerationOutput"}, "ixmp4__server__rest__iamc__scenario__EnumerationOutput": {"anyOf": [{"items": {"$ref": "#/components/schemas/Scenario"}, "type": "array"}, {"properties": {"index": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Index"}, "columns": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Columns"}, "dtypes": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Dtypes"}, "data": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Data"}}, "type": "object", "required": ["columns", "dtypes", "data"], "title": "DataFrame"}], "title": "EnumerationOutput"}, "ixmp4__server__rest__iamc__timeseries__EnumerationOutput": {"anyOf": [{"items": {"$ref": "#/components/schemas/TimeSeries"}, "type": "array"}, {"properties": {"index": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Index"}, "columns": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Columns"}, "dtypes": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Dtypes"}, "data": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Data"}}, "type": "object", "required": ["columns", "dtypes", "data"], "title": "DataFrame"}], "title": "EnumerationOutput"}, "ixmp4__server__rest__iamc__unit__EnumerationOutput": {"anyOf": [{"items": {"$ref": "#/components/schemas/Unit"}, "type": "array"}, {"properties": {"index": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Index"}, "columns": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Columns"}, "dtypes": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Dtypes"}, "data": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Data"}}, "type": "object", "required": ["columns", "dtypes", "data"], "title": "DataFrame"}], "title": "EnumerationOutput"}, "ixmp4__server__rest__iamc__variable__EnumerationOutput": {"anyOf": [{"items": {"$ref": "#/components/schemas/Variable"}, "type": "array"}, {"properties": {"index": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Index"}, "columns": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Columns"}, "dtypes": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Dtypes"}, "data": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Data"}}, "type": "object", "required": ["columns", "dtypes", "data"], "title": "DataFrame"}], "title": "EnumerationOutput"}, "ixmp4__server__rest__meta__EnumerationOutput": {"anyOf": [{"properties": {"index": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Index"}, "columns": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Columns"}, "dtypes": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Dtypes"}, "data": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Data"}}, "type": "object", "required": ["columns", "dtypes", "data"], "title": "DataFrame"}, {"items": {"$ref": "#/components/schemas/RunMetaEntry"}, "type": "array"}], "title": "EnumerationOutput"}, "ixmp4__server__rest__model__EnumerationOutput": {"anyOf": [{"items": {"$ref": "#/components/schemas/Model"}, "type": "array"}, {"properties": {"index": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Index"}, "columns": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Columns"}, "dtypes": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Dtypes"}, "data": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Data"}}, "type": "object", "required": ["columns", "dtypes", "data"], "title": "DataFrame"}], "title": "EnumerationOutput"}, "ixmp4__server__rest__optimization__indexset__EnumerationOutput": {"anyOf": [{"items": {"$ref": "#/components/schemas/IndexSet"}, "type": "array"}, {"properties": {"index": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Index"}, "columns": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Columns"}, "dtypes": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Dtypes"}, "data": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Data"}}, "type": "object", "required": ["columns", "dtypes", "data"], "title": "DataFrame"}], "title": "EnumerationOutput"}, "ixmp4__server__rest__region__EnumerationOutput": {"anyOf": [{"items": {"$ref": "#/components/schemas/Region"}, "type": "array"}, {"properties": {"index": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Index"}, "columns": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Columns"}, "dtypes": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Dtypes"}, "data": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Data"}}, "type": "object", "required": ["columns", "dtypes", "data"], "title": "DataFrame"}], "title": "EnumerationOutput"}, "ixmp4__server__rest__run__EnumerationOutput": {"anyOf": [{"items": {"$ref": "#/components/schemas/Run"}, "type": "array"}, {"properties": {"index": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Index"}, "columns": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Columns"}, "dtypes": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Dtypes"}, "data": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Data"}}, "type": "object", "required": ["columns", "dtypes", "data"], "title": "DataFrame"}], "title": "EnumerationOutput"}, "ixmp4__server__rest__scenario__EnumerationOutput": {"anyOf": [{"items": {"$ref": "#/components/schemas/Scenario"}, "type": "array"}, {"properties": {"index": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Index"}, "columns": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Columns"}, "dtypes": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Dtypes"}, "data": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Data"}}, "type": "object", "required": ["columns", "dtypes", "data"], "title": "DataFrame"}], "title": "EnumerationOutput"}, "ixmp4__server__rest__unit__EnumerationOutput": {"anyOf": [{"properties": {"index": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Index"}, "columns": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Columns"}, "dtypes": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Dtypes"}, "data": {"anyOf": [{"items": {}, "type": "array"}, {"type": "null"}], "title": "Data"}}, "type": "object", "required": ["columns", "dtypes", "data"], "title": "DataFrame"}, {"items": {"$ref": "#/components/schemas/Unit"}, "type": "array"}], "title": "EnumerationOutput"}}}} \ No newline at end of file diff --git a/doc/source/tests.rst b/doc/source/tests.rst deleted file mode 100644 index 75746b23..00000000 --- a/doc/source/tests.rst +++ /dev/null @@ -1,82 +0,0 @@ -Tests -===== - -Run tests with the CLI for a default configuration: - -.. code:: bash - - ixmp4 test [--with-backend] [--with-benchmarks] - -Unfortunately, since you are using ixmp4 to execute the tests, global statements are not -included in the coverage calculations. To circumvent this, use the ``--dry`` parameter. - -.. code:: bash - - ixmp4 test --with-backend --dry - # -> pytest --cov-report xml:.coverage.xml --cov-report term --cov=ixmp4 -rsx --benchmark-skip - - eval $(ixmp4 test --with-backend --dry) - # -> executes pytest - -Alternatively, use ``pytest`` directly: - -.. code:: bash - - py.test - -Running tests with PostgreSQL ------------------------------ - -In order to run the local tests with PostgreSQL you'll need to have a local -instance of this database running. The easiest way to do this is using a docker -container. - -The docker container of the database needs to be started first and then the tests can be -run normally using pytest. If everything is working correctly, the tests for -PostgreSQL should not be skipped. - - -For PostgreSQL using the official `postgres `_ image -is recommended. Get the latest version on your local machine using (having docker -installed): - -.. code:: bash - - docker pull postgres - -and run the container with: - -.. code:: bash - - docker run -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=test -p 5432:5432 -d postgres - -please note that you'll have to wait for a few seconds for the databases to be up and -running. - -In case there are any error messages during the start up of the container along those lines: - -.. code:: bash - - ... Error response from daemon: driver failed programming external connectivity on - endpoint ... - Error starting userland proxy: listen tcp4 0.0.0.0:5432: bind: address already in - use. - -you have to find the process running on the port in question (in the above case 5432) -and kill it: - -.. code:: bash - - sudo ss -lptn 'sport = :5432' - sudo kill - -Profiling ---------- - -Some tests will output profiler information to the ``.profiles/`` -directory (using the ``profiled`` fixture). You can analyze these using -``snakeviz``. For example: - -.. code:: bash - - snakeviz .profiles/test_add_datapoints_full_benchmark.prof diff --git a/ixmp4/cli/__init__.py b/ixmp4/cli/__init__.py index 9bc36ad4..d6184ffb 100644 --- a/ixmp4/cli/__init__.py +++ b/ixmp4/cli/__init__.py @@ -44,7 +44,7 @@ def login( ), ): try: - auth = ManagerAuth(username, password, settings.manager_url) + auth = ManagerAuth(username, password, str(settings.manager_url)) user = auth.get_user() utils.good(f"Successfully authenticated as user '{user.username}'.") if typer.confirm( diff --git a/ixmp4/cli/server.py b/ixmp4/cli/server.py index 7d55c093..1b8a18d0 100644 --- a/ixmp4/cli/server.py +++ b/ixmp4/cli/server.py @@ -15,14 +15,8 @@ @app.command() def start( - host: Optional[str] = typer.Option( - "127.0.0.1", - help="The hostname to bind to.", - ), - port: Optional[int] = typer.Option( - 9000, - help="Requested server port.", - ), + host: str = typer.Option(default="127.0.0.1", help="The hostname to bind to."), + port: int = typer.Option(default=9000, help="Requested server port."), ) -> None: """Starts the ixmp4 web api.""" reload = settings.mode != "production" diff --git a/ixmp4/conf/auth.py b/ixmp4/conf/auth.py index 5f5dbdb6..356492ff 100644 --- a/ixmp4/conf/auth.py +++ b/ixmp4/conf/auth.py @@ -57,7 +57,7 @@ def get_local_jwt(self): "jti": self.jti, "sub": "ixmp4", "iss": "ixmp4", - "user": self.user.dict(), + "user": self.user.model_dump(), }, self.secret, algorithm="HS256", diff --git a/ixmp4/conf/manager.py b/ixmp4/conf/manager.py index 121ec6aa..12b5b2f1 100644 --- a/ixmp4/conf/manager.py +++ b/ixmp4/conf/manager.py @@ -30,7 +30,7 @@ class ManagerPlatformInfo(PlatformInfo): access_group: int url: str name: str = Field(alias="slug") - notice: str | None + notice: str | None = Field(default=None) class Accessibilty(str, enum.Enum): PUBLIC = "PUBLIC" @@ -102,7 +102,7 @@ def _request( params = hashabledict(params) if json is not None: - if type(json) is dict: + if isinstance(json, dict): json = hashabledict(json) else: json = tuple(json) diff --git a/ixmp4/conf/settings.py b/ixmp4/conf/settings.py index c118b7ec..964741c7 100644 --- a/ixmp4/conf/settings.py +++ b/ixmp4/conf/settings.py @@ -5,7 +5,8 @@ from typing import Literal from httpx import ConnectError -from pydantic import BaseSettings, Extra, Field, HttpUrl, validator +from pydantic import Field, HttpUrl, field_validator +from pydantic_settings import BaseSettings, SettingsConfigDict from ixmp4.core.exceptions import InvalidCredentials @@ -24,15 +25,15 @@ class Settings(BaseSettings): mode: Literal["production"] | Literal["development"] | Literal[ "debug" ] = "production" - storage_directory: Path = Field("~/.local/share/ixmp4/", env="ixmp4_dir") + storage_directory: Path = Field( + "~/.local/share/ixmp4/", json_schema_extra={"env": "ixmp4_dir"} + ) secret_hs256: str = "default_secret_hs256" migration_db_uri: str = "sqlite:///./run/db.sqlite" manager_url: HttpUrl = Field("https://api.manager.ece.iiasa.ac.at/v1") managed: bool = True - class Config: - env_prefix = "ixmp4_" - extra = Extra.allow + model_config = SettingsConfigDict(env_prefix="ixmp4_", extra="allow") def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) @@ -92,7 +93,7 @@ def get_auth(self): if self.default_credentials is not None: try: self._default_auth = ManagerAuth( - *self.default_credentials, self.manager_url + *self.default_credentials, str(self.manager_url) ) logger.info( f"Connecting as user '{self._default_auth.get_user().username}'." @@ -106,7 +107,9 @@ def get_auth(self): self._default_auth = AnonymousAuth() def load_manager_config(self): - self._manager = ManagerConfig(self.manager_url, self.default_auth, remote=True) + self._manager = ManagerConfig( + str(self.manager_url), self.default_auth, remote=True + ) def load_toml_config(self): if self.default_auth is not None: @@ -120,7 +123,7 @@ def load_toml_config(self): toml_config.touch() self._toml = TomlConfig(toml_config, toml_user) - @validator("storage_directory") + @field_validator("storage_directory") def expand_user(cls, v): # translate ~/asdf into /home/user/asdf return Path.expanduser(v) @@ -139,4 +142,4 @@ def configure_logging(self, config: str): def check_credentials(self): if self.default_credentials is not None: username, password = self.default_credentials - ManagerAuth(username, password, self.manager_url) + ManagerAuth(username, password, str(self.manager_url)) diff --git a/ixmp4/conf/toml.py b/ixmp4/conf/toml.py index 41f4b2b8..365c132e 100644 --- a/ixmp4/conf/toml.py +++ b/ixmp4/conf/toml.py @@ -30,7 +30,7 @@ def load(self): def dump(self): obj = {} for c in self.platforms.values(): - dict_ = json.loads(c.json()) + dict_ = json.loads(c.model_dump_json()) dict_.pop("user", None) name = dict_.pop("name") obj[name] = dict_ diff --git a/ixmp4/core/iamc/data.py b/ixmp4/core/iamc/data.py index 0fa6ed84..ef40d0cf 100644 --- a/ixmp4/core/iamc/data.py +++ b/ixmp4/core/iamc/data.py @@ -21,7 +21,7 @@ def to_dimensionless(df: pd.DataFrame) -> pd.DataFrame: return df -class RemoveDataPointFrameSchema(pa.SchemaModel): +class RemoveDataPointFrameSchema(pa.DataFrameModel): type: Optional[Series[pa.String]] = pa.Field(isin=[t for t in DataPointModel.Type]) step_year: Optional[Series[pa.Int]] = pa.Field(coerce=True, nullable=True) step_datetime: Optional[Series[pa.DateTime]] = pa.Field(coerce=True, nullable=True) diff --git a/ixmp4/data/abstract/docs.py b/ixmp4/data/abstract/docs.py index 5e80a6ff..6fcd5458 100644 --- a/ixmp4/data/abstract/docs.py +++ b/ixmp4/data/abstract/docs.py @@ -74,7 +74,8 @@ def delete(self, dimension_id: int) -> None: Parameters ---------- dimension_id : int - The unique id of the object whose documentation should be deleted in its dimension's table. + The unique id of the object whose documentation should be deleted in its dimension's + table. Raises ------ diff --git a/ixmp4/data/abstract/iamc/timeseries.py b/ixmp4/data/abstract/iamc/timeseries.py index 40ce9f7a..5dc2b4a7 100644 --- a/ixmp4/data/abstract/iamc/timeseries.py +++ b/ixmp4/data/abstract/iamc/timeseries.py @@ -162,7 +162,7 @@ def tabulate( - id - run__id - ... parameter id columns - or: + Or: - ... parameter value columns """ ... @@ -178,11 +178,14 @@ def bulk_upsert( A data frame with the columns: - id - run__id + if `create_related` = False: - ... parameter id columns + else: - - ... parameter value columns - (i.e `region` column with value "World" instead of `region__id` column with value "1".) + - ... parameter value columns (i.e `region` column with value "World" instead + of `region__id` column with value "1".) + create_related : bool Creates related database entries with value data supplied in `df`. """ diff --git a/ixmp4/data/abstract/iamc/variable.py b/ixmp4/data/abstract/iamc/variable.py index 9e8b0370..7de438fc 100644 --- a/ixmp4/data/abstract/iamc/variable.py +++ b/ixmp4/data/abstract/iamc/variable.py @@ -72,14 +72,15 @@ def get(self, name: str) -> Variable: ... def list(self, *, name: str | None = None, **kwargs) -> Iterable[Variable]: - """Lists variables by specified criteria. + r"""Lists variables by specified criteria. Parameters ---------- name : str The name of a variable. If supplied only one result will be returned. - **kwargs: any - More filter parameters as specified in `ixmp4.data.db.iamc.variable.filters.VariableFilter`. + \*\*kwargs: any + More filter parameters as specified in + `ixmp4.data.db.iamc.variable.filters.VariableFilter`. Returns ------- @@ -89,14 +90,15 @@ def list(self, *, name: str | None = None, **kwargs) -> Iterable[Variable]: ... def tabulate(self, *, name: str | None = None, **kwargs) -> pd.DataFrame: - """Tabulate variables by specified criteria. + r"""Tabulate variables by specified criteria. Parameters ---------- name : str The name of a variable. If supplied only one result will be returned. - **kwargs: any - More filter parameters as specified in `ixmp4.data.db.iamc.variable.filters.VariableFilter`. + \*\*kwargs: any + More filter parameters as specified in + `ixmp4.data.db.iamc.variable.filters.VariableFilter`. Returns ------- diff --git a/ixmp4/data/abstract/optimization/indexset.py b/ixmp4/data/abstract/optimization/indexset.py index f905a25b..fb754e7d 100644 --- a/ixmp4/data/abstract/optimization/indexset.py +++ b/ixmp4/data/abstract/optimization/indexset.py @@ -87,7 +87,8 @@ def list(self, *, name: str | None = None, **kwargs) -> Iterable[IndexSet]: The name of an IndexSet. If supplied only one result will be returned. # TODO: Update kwargs **kwargs: any - More filter parameters as specified in `ixmp4.data.db.iamc.variable.filters.VariableFilter`. + More filter parameters as specified in + `ixmp4.data.db.iamc.variable.filters.VariableFilter`. Returns ------- @@ -105,7 +106,8 @@ def tabulate(self, *, name: str | None = None, **kwargs) -> pd.DataFrame: The name of an IndexSet. If supplied only one result will be returned. # TODO: Update kwargs **kwargs: any - More filter parameters as specified in `ixmp4.data.db.iamc.variable.filters.VariableFilter`. + More filter parameters as specified in + `ixmp4.data.db.iamc.variable.filters.VariableFilter`. Returns ------- diff --git a/ixmp4/data/abstract/region.py b/ixmp4/data/abstract/region.py index 87a5d7a5..8a97c2b9 100644 --- a/ixmp4/data/abstract/region.py +++ b/ixmp4/data/abstract/region.py @@ -120,7 +120,7 @@ def list( hierarchy: str | None = None, **kwargs, ) -> Iterable[Region]: - """Lists regions by specified criteria. + r"""Lists regions by specified criteria. Parameters ---------- @@ -128,7 +128,7 @@ def list( The name of a region. If supplied only one result will be returned. hierarchy : str The hierarchy of a region. - **kwargs: any + \*\*kwargs: any More filter parameters as specified in `ixmp4.data.db.region.filters.RegionFilter`. Returns @@ -145,7 +145,7 @@ def tabulate( hierarchy: str | None = None, **kwargs, ) -> pd.DataFrame: - """Tabulate regions by specified criteria. + r"""Tabulate regions by specified criteria. Parameters ---------- @@ -153,7 +153,7 @@ def tabulate( The name of a region. If supplied only one result will be returned. hierarchy : str The hierarchy of a region. - **kwargs: any + \*\*kwargs: any More filter parameters as specified in `ixmp4.data.db.region.filters.RegionFilter`. Returns diff --git a/ixmp4/data/abstract/run.py b/ixmp4/data/abstract/run.py index df093bd9..e7918622 100644 --- a/ixmp4/data/abstract/run.py +++ b/ixmp4/data/abstract/run.py @@ -148,7 +148,7 @@ def list( version: int | None = None, **kwargs, ) -> Iterable[Run]: - """Lists runs by specified criteria. + r"""Lists runs by specified criteria. Parameters ---------- @@ -156,8 +156,8 @@ def list( The run's version. default_only : bool True by default. This function will return default runs only if true. - **kwargs: any - More filter parameters as specified in `ixmp4...data.db.run.filters.RunFilter`. + \*\*kwargs: any + More filter parameters as specified in `ixmp4.data.db.run.filters.RunFilter`. Returns ------- @@ -172,7 +172,7 @@ def tabulate( version: int | None = None, **kwargs, ) -> pd.DataFrame: - """Tabulate runs by specified criteria. + r"""Tabulate runs by specified criteria. Parameters ---------- @@ -180,8 +180,8 @@ def tabulate( The run's version. default_only : bool True by default. This function will return default runs only if true. - **kwargs: any - More filter parameters as specified in `ixmp4....data.db.run.filters.RunFilter`. + \*\*kwargs: any + More filter parameters as specified in `ixmp4.data.db.run.filters.RunFilter`. Returns ------- diff --git a/ixmp4/data/abstract/unit.py b/ixmp4/data/abstract/unit.py index a9b2b489..15193564 100644 --- a/ixmp4/data/abstract/unit.py +++ b/ixmp4/data/abstract/unit.py @@ -100,13 +100,13 @@ def list( name: str | None = None, **kwargs, ) -> Iterable[Unit]: - """Lists units by specified criteria. + r"""Lists units by specified criteria. Parameters ---------- name : str The name of a unit. If supplied only one result will be returned. - **kwargs: any + \*\*kwargs: any More filter parameters as specified in `ixmp4.data.db.unit.filters.UnitFilter`. Returns @@ -122,13 +122,13 @@ def tabulate( name: str | None = None, **kwargs, ) -> pd.DataFrame: - """Tabulate units by specified criteria. + r"""Tabulate units by specified criteria. Parameters ---------- name : str The name of a unit. If supplied only one result will be returned. - **kwargs: any + \*\*kwargs: any More filter parameters as specified in `ixmp4.data.db.unit.filters.UnitFilter`. Returns diff --git a/ixmp4/data/api/base.py b/ixmp4/data/api/base.py index c2a0155c..56da713a 100644 --- a/ixmp4/data/api/base.py +++ b/ixmp4/data/api/base.py @@ -4,6 +4,8 @@ import httpx import pandas as pd from pydantic import BaseModel as PydanticBaseModel +from pydantic import ConfigDict, Field, GetCoreSchemaHandler +from pydantic_core import CoreSchema, core_schema from ixmp4.core.exceptions import ( ImproperlyConfigured, @@ -17,44 +19,45 @@ class BaseModel(PydanticBaseModel): NotFound: ClassVar[type[IxmpError]] NotUnique: ClassVar[type[IxmpError]] - class Config: - orm_mode = True + model_config = ConfigDict(from_attributes=True) + + +def df_to_dict(df: pd.DataFrame) -> dict: + columns = [] + dtypes = [] + for c in df.columns: + columns.append(c) + dtypes.append(df[c].dtype.name) + + return { + "index": df.index.to_list(), + "columns": columns, + "dtypes": dtypes, + "data": df.values.tolist(), + } class DataFrame(PydanticBaseModel): - index: list | None - columns: list[str] - dtypes: list[str] - data: list + index: list | None = Field(None) + columns: list[str] | None + dtypes: list[str] | None + data: list | None + + model_config = ConfigDict(json_encoders={pd.Timestamp: lambda x: x.isoformat()}) @classmethod - def __get_validators__(cls): - yield cls.validate + def __get_pydantic_core_schema__( + cls, source_type: Any, handler: GetCoreSchemaHandler + ) -> CoreSchema: + return core_schema.no_info_before_validator_function(cls.validate, handler(cls)) + # yield cls.validate @classmethod def validate(cls, df: pd.DataFrame | dict): if isinstance(df, pd.DataFrame): - return cls.from_pandas(df) + return df_to_dict(df) else: - return cls(**df) - - class Config: - json_encoders = {pd.Timestamp: lambda x: x.isoformat()} - - @classmethod - def from_pandas(cls, df: pd.DataFrame) -> "DataFrame": - columns = [] - dtypes = [] - for c in df.columns: - columns.append(c) - dtypes.append(df[c].dtype.name) - - return DataFrame( - index=df.index.tolist(), - columns=columns, - dtypes=dtypes, - data=df.values.tolist(), - ) + return df def to_pandas(self) -> pd.DataFrame: df = pd.DataFrame( @@ -62,9 +65,10 @@ def to_pandas(self) -> pd.DataFrame: columns=self.columns, data=self.data, ) - for c, dt in zip(self.columns, self.dtypes): - # there seems to be a type incompatbility between StrDtypeArg and str - df[c] = df[c].astype(dt) # type: ignore + if self.columns and self.dtypes: + for c, dt in zip(self.columns, self.dtypes): + # there seems to be a type incompatbility between StrDtypeArg and str + df[c] = df[c].astype(dt) # type: ignore return df @@ -211,21 +215,23 @@ def enumerate( class BulkUpserter(BaseRepository[ModelType]): def bulk_upsert(self, df: pd.DataFrame, **kwargs) -> None: - sdf = DataFrame.from_pandas(df) + dict_ = df_to_dict(df) + json_ = DataFrame(**dict_).model_dump_json() self._request( "POST", self.prefix + "bulk/", params=kwargs, - data=sdf.json(), + content=json_, ) class BulkDeleter(BaseRepository[ModelType]): def bulk_delete(self, df: pd.DataFrame, **kwargs) -> None: - sdf = DataFrame.from_pandas(df) + dict_ = df_to_dict(df) + json_ = DataFrame(**dict_).model_dump_json() self._request( "PATCH", self.prefix + "bulk/", params=kwargs, - data=sdf.json(), + content=json_, ) diff --git a/ixmp4/data/api/iamc/variable.py b/ixmp4/data/api/iamc/variable.py index 9a78024e..83be8638 100644 --- a/ixmp4/data/api/iamc/variable.py +++ b/ixmp4/data/api/iamc/variable.py @@ -2,6 +2,7 @@ from typing import ClassVar, Iterable import pandas as pd +from pydantic import Field from ixmp4.data import abstract @@ -17,8 +18,8 @@ class Variable(base.BaseModel): id: int name: str - created_at: datetime | None - created_by: str | None + created_at: datetime | None = Field(None) + created_by: str | None = Field(None) class VariableDocsRepository(DocsRepository): diff --git a/ixmp4/data/api/model.py b/ixmp4/data/api/model.py index e741b37c..07b28e86 100644 --- a/ixmp4/data/api/model.py +++ b/ixmp4/data/api/model.py @@ -2,6 +2,7 @@ from typing import ClassVar, Iterable import pandas as pd +from pydantic import Field from ixmp4.data import abstract @@ -17,8 +18,8 @@ class Model(base.BaseModel): id: int name: str - created_at: datetime | None - created_by: str | None + created_at: datetime | None = Field(None) + created_by: str | None = Field(None) class ModelRepository( diff --git a/ixmp4/data/api/region.py b/ixmp4/data/api/region.py index 83b61719..4eee818d 100644 --- a/ixmp4/data/api/region.py +++ b/ixmp4/data/api/region.py @@ -2,6 +2,7 @@ from typing import ClassVar, Iterable import pandas as pd +from pydantic import Field from ixmp4.data import abstract @@ -24,8 +25,8 @@ class Region(base.BaseModel): name: str hierarchy: str - created_at: datetime | None - created_by: str | None + created_at: datetime | None = Field(None) + created_by: str | None = Field(None) class RegionDocsRepository(DocsRepository): diff --git a/ixmp4/data/api/run.py b/ixmp4/data/api/run.py index 2c58b3ba..4dbf5796 100644 --- a/ixmp4/data/api/run.py +++ b/ixmp4/data/api/run.py @@ -1,6 +1,7 @@ from typing import ClassVar, Iterable import pandas as pd +from pydantic import Field from ixmp4.data import abstract @@ -19,7 +20,7 @@ class Run(base.BaseModel): id: int model: Model - model__id: int + id_of_model: int = Field(..., alias="model__id") scenario: Scenario scenario__id: int diff --git a/ixmp4/data/api/scenario.py b/ixmp4/data/api/scenario.py index 97db1157..a95da2d4 100644 --- a/ixmp4/data/api/scenario.py +++ b/ixmp4/data/api/scenario.py @@ -2,6 +2,7 @@ from typing import ClassVar, Iterable import pandas as pd +from pydantic import Field from ixmp4.data import abstract @@ -16,8 +17,8 @@ class Scenario(base.BaseModel): id: int name: str - created_at: datetime | None - created_by: str | None + created_at: datetime | None = Field(None) + created_by: str | None = Field(None) class ScenarioDocsRepository(DocsRepository): diff --git a/ixmp4/data/api/unit.py b/ixmp4/data/api/unit.py index b3533ecb..70dae596 100644 --- a/ixmp4/data/api/unit.py +++ b/ixmp4/data/api/unit.py @@ -2,6 +2,7 @@ from typing import ClassVar, Iterable import pandas as pd +from pydantic import Field from ixmp4.data import abstract @@ -16,8 +17,8 @@ class Unit(base.BaseModel): id: int name: str - created_at: datetime | None - created_by: str | None + created_at: datetime | None = Field(None) + created_by: str | None = Field(None) class UnitDocsRepository(DocsRepository): diff --git a/ixmp4/data/auth/decorators.py b/ixmp4/data/auth/decorators.py index bd11c9b2..44d5e938 100644 --- a/ixmp4/data/auth/decorators.py +++ b/ixmp4/data/auth/decorators.py @@ -29,7 +29,8 @@ def guarded_func(self: Guardable, *args, **kwargs): return func(self, *args, **kwargs) raise Forbidden( - f"Function '{func.__name__}': '{access}' access denied due to insufficient permissions." + f"Function '{func.__name__}': '{access}' access denied due to insufficient " + "permissions." ) else: # ignoring authorization since no auth context is set diff --git a/ixmp4/data/backend/api.py b/ixmp4/data/backend/api.py index dde7b87b..6d222d5c 100644 --- a/ixmp4/data/backend/api.py +++ b/ixmp4/data/backend/api.py @@ -65,11 +65,12 @@ def get_auth(self, rest_url: str, override_auth: BaseAuth | None) -> BaseAuth: logger.debug("Server Is Managed: " + str(api_info.is_managed)) if api_info.manager_url is not None: if ( - api_info.manager_url.rstrip("/") != settings.manager_url.rstrip("/") + api_info.manager_url.rstrip("/") + != str(settings.manager_url).rstrip("/") and api_info.is_managed ): - logger.error("Server Manager URL: " + api_info.manager_url) - logger.error("Local Manager URL: " + settings.manager_url) + logger.error(f"Server Manager URL: {api_info.manager_url}") + logger.error(f"Local Manager URL: {settings.manager_url}") raise ImproperlyConfigured( "Trying to connect to a managed REST Platform " "with a mismatching Manager URL." diff --git a/ixmp4/data/db/base.py b/ixmp4/data/db/base.py index d616d1c9..b246ea76 100644 --- a/ixmp4/data/db/base.py +++ b/ixmp4/data/db/base.py @@ -241,22 +241,13 @@ def enumerate( return self.list(*args, **kwargs) -class BulkOperator(Selecter[ModelType]): +class BulkOperator(Tabulator[ModelType]): merge_suffix: str = "_y" @property def max_list_length(self) -> int: return 50_000 - def tabulate( - self, - *args, - _exc: db.sql.Select | None = None, - _raw: bool | None = False, - **kwargs, - ) -> pd.DataFrame: - ... - def merge_existing( self, df: pd.DataFrame, existing_df: pd.DataFrame ) -> pd.DataFrame: @@ -301,7 +292,7 @@ def drop_merge_artifacts( def split_by_max_unique_values( self, df: pd.DataFrame, columns: Iterable[str], mu: int - ) -> Tuple[pd.DataFrame | pd.Series, pd.DataFrame | pd.Series]: + ) -> Tuple[pd.DataFrame, pd.DataFrame]: df_len = len(df.index) chunk_size = df_len remaining_df = pd.DataFrame() diff --git a/ixmp4/data/db/filters/model.py b/ixmp4/data/db/filters/model.py index 9b2ed510..b6108b34 100644 --- a/ixmp4/data/db/filters/model.py +++ b/ixmp4/data/db/filters/model.py @@ -1,3 +1,5 @@ +from typing import ClassVar + from ixmp4.db import filters from .. import Model, Run @@ -7,8 +9,7 @@ class ModelFilter(filters.BaseFilter, metaclass=filters.FilterMeta): id: filters.Id name: filters.String - class Config: - sqla_model = Model + sqla_model: ClassVar[type] = Model def join(self, exc, **kwargs): return exc.join(Model, Run.model) diff --git a/ixmp4/data/db/filters/optimizationindexset.py b/ixmp4/data/db/filters/optimizationindexset.py index 78251bb4..a737a513 100644 --- a/ixmp4/data/db/filters/optimizationindexset.py +++ b/ixmp4/data/db/filters/optimizationindexset.py @@ -1,3 +1,5 @@ +from typing import ClassVar + from ixmp4.db import filters from .. import IndexSet, Run @@ -6,10 +8,9 @@ class OptimizationIndexSetFilter(filters.BaseFilter, metaclass=filters.FilterMeta): id: filters.Id name: filters.String - run__id: filters.Integer = filters.Field(alias="run_id") + run__id: filters.Integer = filters.Field(None, alias="run_id") - class Config: - sqla_model = IndexSet + sqla_model: ClassVar[type] = IndexSet def join(self, exc, **kwargs): exc = exc.join(Run, onclause=IndexSet.run__id == Run.id) diff --git a/ixmp4/data/db/filters/region.py b/ixmp4/data/db/filters/region.py index 6ca0ae0d..34eabaec 100644 --- a/ixmp4/data/db/filters/region.py +++ b/ixmp4/data/db/filters/region.py @@ -1,3 +1,5 @@ +from typing import ClassVar + from ixmp4.db import filters from .. import Region, TimeSeries @@ -8,8 +10,7 @@ class RegionFilter(filters.BaseFilter, metaclass=filters.FilterMeta): name: filters.String hierarchy: filters.String - class Config: - sqla_model = Region + sqla_model: ClassVar[type] = Region def join(self, exc, **kwargs): exc = exc.join(Region, TimeSeries.region) diff --git a/ixmp4/data/db/filters/run.py b/ixmp4/data/db/filters/run.py index 156c1451..4d8c127c 100644 --- a/ixmp4/data/db/filters/run.py +++ b/ixmp4/data/db/filters/run.py @@ -1,3 +1,5 @@ +from typing import ClassVar + from ixmp4.db import filters, utils from .. import Run, TimeSeries @@ -10,11 +12,10 @@ class RunFilter(filters.BaseFilter, metaclass=filters.FilterMeta): version: filters.Integer default_only: filters.Boolean = filters.Field(True) is_default: filters.Boolean - model: ModelFilter | None - scenario: ScenarioFilter | None + model: ModelFilter + scenario: ScenarioFilter - class Config: - sqla_model = Run + sqla_model: ClassVar[type] = Run def filter_default_only(self, exc, c, v, **kwargs): if v: diff --git a/ixmp4/data/db/filters/scenario.py b/ixmp4/data/db/filters/scenario.py index b9641d3b..ffc82208 100644 --- a/ixmp4/data/db/filters/scenario.py +++ b/ixmp4/data/db/filters/scenario.py @@ -1,3 +1,5 @@ +from typing import ClassVar + from ixmp4.db import filters from .. import Run, Scenario @@ -7,8 +9,7 @@ class ScenarioFilter(filters.BaseFilter, metaclass=filters.FilterMeta): id: filters.Id name: filters.String - class Config: - sqla_model = Scenario + sqla_model: ClassVar[type] = Scenario def join(self, exc, **kwargs): return exc.join(Scenario, Run.scenario) diff --git a/ixmp4/data/db/filters/unit.py b/ixmp4/data/db/filters/unit.py index 03149f66..c0bc5a4c 100644 --- a/ixmp4/data/db/filters/unit.py +++ b/ixmp4/data/db/filters/unit.py @@ -1,3 +1,5 @@ +from typing import ClassVar + from ixmp4.db import filters, utils from .. import Measurand, TimeSeries, Unit @@ -7,8 +9,7 @@ class UnitFilter(filters.BaseFilter, metaclass=filters.FilterMeta): id: filters.Id name: filters.String - class Config: - sqla_model = Unit + sqla_model: ClassVar[type] = Unit def join(self, exc, **kwargs): if not utils.is_joined(exc, Measurand): diff --git a/ixmp4/data/db/filters/variable.py b/ixmp4/data/db/filters/variable.py index b5733ee9..df136a3d 100644 --- a/ixmp4/data/db/filters/variable.py +++ b/ixmp4/data/db/filters/variable.py @@ -1,3 +1,5 @@ +from typing import ClassVar + from ixmp4.db import filters, utils from .. import Measurand, TimeSeries, Variable @@ -7,8 +9,7 @@ class VariableFilter(filters.BaseFilter, metaclass=filters.FilterMeta): id: filters.Id name: filters.String - class Config: - sqla_model = Variable + sqla_model: ClassVar[type] = Variable def join(self, exc, **kwargs): if not utils.is_joined(exc, Measurand): diff --git a/ixmp4/data/db/iamc/__init__.py b/ixmp4/data/db/iamc/__init__.py index dcd8ad77..f32c3ee5 100644 --- a/ixmp4/data/db/iamc/__init__.py +++ b/ixmp4/data/db/iamc/__init__.py @@ -1,5 +1,5 @@ -# flaske8: noqa -from .datapoint import ( # AnnualDataPoint,; SubAnnualDataPoint,; CategoricalDataPoint, +# flake8: noqa +from .datapoint import ( # AnnualDataPoint,; SubAnnualDataPoint,; CategoricalDataPoint DataPoint, DataPointRepository, UniversalDataPoint, diff --git a/ixmp4/data/db/iamc/datapoint/filter.py b/ixmp4/data/db/iamc/datapoint/filter.py index 48b1130a..fea34f39 100644 --- a/ixmp4/data/db/iamc/datapoint/filter.py +++ b/ixmp4/data/db/iamc/datapoint/filter.py @@ -1,3 +1,5 @@ +from typing import ClassVar + from ixmp4.data.db.iamc.datapoint import get_datapoint_model from ixmp4.data.db.iamc.measurand import Measurand from ixmp4.data.db.iamc.timeseries import TimeSeries @@ -14,8 +16,7 @@ class RegionFilter(filters.BaseFilter, metaclass=filters.FilterMeta): name: filters.String hierarchy: filters.String - class Config: - sqla_model = Region + sqla_model: ClassVar[type] = Region def join(self, exc, session): model = get_datapoint_model(session) @@ -29,8 +30,7 @@ def join(self, exc, session): class UnitFilter(filters.BaseFilter, metaclass=filters.FilterMeta): name: filters.String - class Config: - sqla_model = Unit + sqla_model: ClassVar[type] = Unit def join(self, exc, session): model = get_datapoint_model(session) @@ -47,8 +47,7 @@ def join(self, exc, session): class VariableFilter(filters.BaseFilter, metaclass=filters.FilterMeta): name: filters.String - class Config: - sqla_model = Variable + sqla_model: ClassVar[type] = Variable def join(self, exc, session): model = get_datapoint_model(session) @@ -64,8 +63,7 @@ def join(self, exc, session): class ModelFilter(filters.BaseFilter, metaclass=filters.FilterMeta): name: filters.String - class Config: - sqla_model = Model + sqla_model: ClassVar[type] = Model def join(self, exc, session): model = get_datapoint_model(session) @@ -81,8 +79,7 @@ def join(self, exc, session): class ScenarioFilter(filters.BaseFilter, metaclass=filters.FilterMeta): name: filters.String - class Config: - sqla_model = Scenario + sqla_model: ClassVar[type] = Scenario def join(self, exc, session): model = get_datapoint_model(session) @@ -97,10 +94,9 @@ def join(self, exc, session): class RunFilter(filters.BaseFilter, metaclass=filters.FilterMeta): id: filters.Id - default_only: filters.Boolean + default_only: filters.Boolean = filters.Field(False) - class Config: - sqla_model = Run + sqla_model: ClassVar[type] = Run def join(self, exc, session): model = get_datapoint_model(session) @@ -165,11 +161,11 @@ class DataPointFilter(filters.BaseFilter, metaclass=filters.FilterMeta): >>> iamc.tabulate(**filter) """ - step_year: filters.Integer = filters.Field(alias="year") - time_series__id: filters.Id = filters.Field(alias="time_series_id") - region: RegionFilter | None - unit: UnitFilter | None - variable: VariableFilter | None - model: ModelFilter | None - scenario: ScenarioFilter | None - run: RunFilter | None + step_year: filters.Integer = filters.Field(None, alias="year") + time_series__id: filters.Id = filters.Field(None, alias="time_series_id") + region: RegionFilter + unit: UnitFilter + variable: VariableFilter + model: ModelFilter + scenario: ScenarioFilter + run: RunFilter diff --git a/ixmp4/data/db/iamc/datapoint/repository.py b/ixmp4/data/db/iamc/datapoint/repository.py index 8f86771a..1427debf 100644 --- a/ixmp4/data/db/iamc/datapoint/repository.py +++ b/ixmp4/data/db/iamc/datapoint/repository.py @@ -27,7 +27,7 @@ from .model import DataPoint -class RemoveDataPointFrameSchema(pa.SchemaModel): +class RemoveDataPointFrameSchema(pa.DataFrameModel): type: Series[pa.String] | None = pa.Field(isin=[t for t in DataPoint.Type]) step_year: Series[pa.Int] | None = pa.Field(coerce=True, nullable=True) step_datetime: Series[pa.DateTime] | None = pa.Field(coerce=True, nullable=True) diff --git a/ixmp4/data/db/iamc/variable/filter.py b/ixmp4/data/db/iamc/variable/filter.py index 79ab0e1d..4044e72e 100644 --- a/ixmp4/data/db/iamc/variable/filter.py +++ b/ixmp4/data/db/iamc/variable/filter.py @@ -11,8 +11,8 @@ class VariableFilter(base.VariableFilter, metaclass=filters.FilterMeta): region: base.RegionFilter | None variable: base.VariableFilter | None unit: base.UnitFilter | None - run: base.RunFilter | None = filters.Field( - default=base.RunFilter(id=None, version=None) + run: base.RunFilter = filters.Field( + default=base.RunFilter(id=None, version=None, is_default=True) ) def join(self, exc, session=None): diff --git a/ixmp4/data/db/meta.py b/ixmp4/data/db/meta.py index c61e1181..12a87b82 100644 --- a/ixmp4/data/db/meta.py +++ b/ixmp4/data/db/meta.py @@ -1,4 +1,4 @@ -from typing import ClassVar, Iterable, Optional, Union, cast +from typing import ClassVar, Iterable, Optional, Union import pandas as pd import pandera as pa @@ -16,7 +16,7 @@ from . import base -class RemoveRunMetaEntryFrameSchema(pa.SchemaModel): +class RemoveRunMetaEntryFrameSchema(pa.DataFrameModel): key: Series[pa.String] = pa.Field(coerce=True) run__id: Series[pa.Int] = pa.Field(coerce=True) @@ -249,8 +249,8 @@ def bulk_upsert(self, df: DataFrame[AddRunMetaEntryFrameSchema]) -> None: self.check_df_access(df) df["type"] = df["value"].map(type).map(RunMetaEntry.Type.from_pytype) + type_: RunMetaEntry.Type for type_, type_df in df.groupby("type"): - type_ = cast(RunMetaEntry.Type, type_) col = RunMetaEntry._column_map[type_] null_cols = set(RunMetaEntry._column_map.values()) - set([col]) type_df["type"] = type_df["type"].map(lambda x: x.value) diff --git a/ixmp4/data/db/model/filter.py b/ixmp4/data/db/model/filter.py index e9c16d39..d989d7ac 100644 --- a/ixmp4/data/db/model/filter.py +++ b/ixmp4/data/db/model/filter.py @@ -1,5 +1,3 @@ -from typing import Optional, Union - from ixmp4 import db from ixmp4.data.db import filters as base from ixmp4.data.db.iamc.datapoint import get_datapoint_model @@ -30,22 +28,23 @@ def join(self, exc, **kwargs): exc = exc.join(Run, Run.model) return exc - class Config: - fields = {"model": {"exclude": True}} + model: base.ModelFilter = filters.Field(default=None, exclude=True) class IamcModelFilter(base.ModelFilter, BaseIamcFilter, metaclass=filters.FilterMeta): - region: base.RegionFilter | None - variable: base.VariableFilter | None - unit: base.UnitFilter | None - run: RunFilter | None = filters.Field(default=RunFilter(id=None, version=None)) + region: base.RegionFilter + variable: base.VariableFilter + unit: base.UnitFilter + run: RunFilter = filters.Field( + default=RunFilter(id=None, version=None, is_default=True) + ) def join(self, exc, session=None): return super().join_datapoints(exc, session) class ModelFilter(base.ModelFilter, BaseIamcFilter, metaclass=filters.FilterMeta): - iamc: Optional[Union[IamcModelFilter, filters.Boolean]] + iamc: IamcModelFilter | filters.Boolean def filter_iamc(self, exc, c, v, session=None): if v is None: diff --git a/ixmp4/data/db/optimization/indexset/filter.py b/ixmp4/data/db/optimization/indexset/filter.py index dc929524..be411ee7 100644 --- a/ixmp4/data/db/optimization/indexset/filter.py +++ b/ixmp4/data/db/optimization/indexset/filter.py @@ -7,7 +7,7 @@ class OptimizationIndexSetFilter( ): indexset: base.OptimizationIndexSetFilter | None run: base.RunFilter | None = filters.Field( - default=base.RunFilter(id=None, version=None) + default=base.RunFilter(id=None, version=None, is_default=True) ) def join(self, exc, session=None): diff --git a/ixmp4/data/db/region/filter.py b/ixmp4/data/db/region/filter.py index 6bf8f2e0..7a8cfa5d 100644 --- a/ixmp4/data/db/region/filter.py +++ b/ixmp4/data/db/region/filter.py @@ -1,5 +1,3 @@ -from typing import Optional, Union - from ixmp4 import db from ixmp4.data.db import filters as base from ixmp4.data.db.iamc.datapoint import get_datapoint_model @@ -28,10 +26,10 @@ def join(self, exc, session=None): class IamcRegionFilter(base.RegionFilter, BaseIamcFilter, metaclass=filters.FilterMeta): - variable: base.VariableFilter | None - unit: base.UnitFilter | None - run: base.RunFilter | None = filters.Field( - default=base.RunFilter(id=None, version=None) + variable: base.VariableFilter + unit: base.UnitFilter + run: base.RunFilter = filters.Field( + default=base.RunFilter(id=None, version=None, is_default=True) ) def join(self, exc, session=None): @@ -39,7 +37,7 @@ def join(self, exc, session=None): class RegionFilter(base.RegionFilter, BaseIamcFilter, metaclass=filters.FilterMeta): - iamc: Optional[Union[IamcRegionFilter, filters.Boolean]] + iamc: IamcRegionFilter | filters.Boolean | None def filter_iamc(self, exc, c, v, session=None): if v is None: diff --git a/ixmp4/data/db/scenario/filter.py b/ixmp4/data/db/scenario/filter.py index 2babed2b..9f28b979 100644 --- a/ixmp4/data/db/scenario/filter.py +++ b/ixmp4/data/db/scenario/filter.py @@ -1,5 +1,3 @@ -from typing import Optional, Union - from ixmp4 import db from ixmp4.data.db import filters as base from ixmp4.data.db.iamc.datapoint import get_datapoint_model @@ -30,24 +28,25 @@ def join(self, exc, **kwargs): exc = exc.join(Run, Run.model) return exc - class Config: - fields = {"scenario": {"exclude": True}} + scenario: base.ScenarioFilter = filters.Field(default=None, exclude=True) class IamcScenarioFilter( base.ScenarioFilter, BaseIamcFilter, metaclass=filters.FilterMeta ): - region: base.RegionFilter | None - variable: base.VariableFilter | None - unit: base.UnitFilter | None - run: RunFilter | None = filters.Field(default=RunFilter(id=None, version=None)) + region: base.RegionFilter + variable: base.VariableFilter + unit: base.UnitFilter + run: RunFilter = filters.Field( + default=RunFilter(id=None, version=None, is_default=True) + ) def join(self, exc, session=None): return super().join_datapoints(exc, session) class ScenarioFilter(base.ScenarioFilter, BaseIamcFilter, metaclass=filters.FilterMeta): - iamc: Optional[Union[IamcScenarioFilter, filters.Boolean]] + iamc: IamcScenarioFilter | filters.Boolean def filter_iamc(self, exc, c, v, session=None): if v is None: diff --git a/ixmp4/data/db/timeseries.py b/ixmp4/data/db/timeseries.py index 8735d098..224b24be 100644 --- a/ixmp4/data/db/timeseries.py +++ b/ixmp4/data/db/timeseries.py @@ -53,7 +53,7 @@ class TimeSeriesRepository( ): def join_auth(self, exc: db.sql.Select) -> db.sql.Select: if not db.utils.is_joined(exc, Run): - exc = exc.join(Run, onclause=Run.id == TimeSeries.run__id) + exc = exc.join(Run, onclause=Run.id == self.model_class.run__id) if not db.utils.is_joined(exc, Model): exc = exc.join(Model, Run.model) diff --git a/ixmp4/data/db/unit/filter.py b/ixmp4/data/db/unit/filter.py index 24abb81c..482c7f48 100644 --- a/ixmp4/data/db/unit/filter.py +++ b/ixmp4/data/db/unit/filter.py @@ -1,5 +1,3 @@ -from typing import Optional, Union - from ixmp4 import db from ixmp4.data.db import filters as base from ixmp4.data.db.iamc.datapoint import get_datapoint_model @@ -34,10 +32,10 @@ def join(self, exc, session=None): class IamcUnitFilter(base.UnitFilter, BaseIamcFilter, metaclass=filters.FilterMeta): - variable: base.VariableFilter | None - region: base.RegionFilter | None - run: base.RunFilter | None = filters.Field( - default=base.RunFilter(id=None, version=None) + variable: base.VariableFilter + region: base.RegionFilter + run: base.RunFilter = filters.Field( + default=base.RunFilter(id=None, version=None, is_default=True) ) def join(self, exc, session=None): @@ -45,7 +43,7 @@ def join(self, exc, session=None): class UnitFilter(base.UnitFilter, BaseIamcFilter, metaclass=filters.FilterMeta): - iamc: Optional[Union[IamcUnitFilter, filters.Boolean]] + iamc: IamcUnitFilter | filters.Boolean def filter_iamc(self, exc, c, v, session=None): if v is None: diff --git a/ixmp4/db/filters.py b/ixmp4/db/filters.py index f4f4b531..c69df354 100644 --- a/ixmp4/db/filters.py +++ b/ixmp4/db/filters.py @@ -1,6 +1,8 @@ -from typing import Any, Iterable, Optional +from types import UnionType +from typing import Any, ClassVar, Iterable, Optional, Union, get_args, get_origin -from pydantic import BaseModel, Extra, Field, ValidationError +from pydantic import BaseModel, ConfigDict, Field, ValidationError +from pydantic.fields import FieldInfo from ixmp4 import db from ixmp4.core.exceptions import BadFilterArguments, ProgrammingError @@ -74,7 +76,7 @@ class String(str): argument_seperator = "__" filter_func_prefix = "filter_" -lookup_map: dict[type, dict] = { +lookup_map: dict[object, dict] = { Id: { "__root__": (int, exact), "in": (Iterable[int], in_), @@ -117,39 +119,92 @@ def get_filter_func_name(n: str) -> str: class FilterMeta(PydanticMeta): - def __new__(cls, name, bases, namespace, **kwargs): - field_types = namespace.get("__annotations__", {}).copy() - for field_name, field_type in field_types.items(): - try: - lookups = lookup_map[field_type] - except KeyError: - lookups = {} + def __new__(cls, name: str, bases: tuple, namespace: dict, **kwargs): + annots = namespace.get("__annotations__", {}).copy() + for name, annot in annots.items(): + if get_origin(annot) == ClassVar: continue - - field = namespace.get(field_name, None) - if field is not None: - override_lookups = field.extra.get("lookups", None) - if override_lookups: - lookups = { - k: v for k, v in lookups.items() if k in override_lookups - } - elif override_lookups is None: - pass - else: - lookups = {} - cls.expand_lookups( - field_name, - lookups, - namespace, - None if field is None else field.alias, - ) + cls.process_field(namespace, name, annot) return super().__new__(cls, name, bases, namespace, **kwargs) + @classmethod + def build_lookups(cls, field_type: type) -> dict: + global lookup_map + if field_type not in lookup_map.keys(): + if get_origin(field_type) in [Union, UnionType]: + unified_types = get_args(field_type) + ut_lookup_map = { + type_: cls.build_lookups(type_) for type_ in unified_types + } + all_lookup_names = set() + for tl in ut_lookup_map.values(): + all_lookup_names |= set(tl.keys()) + + lookups = {} + for lookup_name in all_lookup_names: + tuples = [ + ut_lookup_map[type_][lookup_name] + for type_ in unified_types + if ut_lookup_map[type_].get(lookup_name, None) is not None + ] + types, _ = zip(*tuples) + + def lookup_func(c, v, tuples=tuples): + for t, lf in tuples: + if isinstance(v, t): + return lf(c, v) + raise ProgrammingError + + lookups[lookup_name] = ( + # dynamic union types can't + # be done according to type checkers + Union[tuple(types)], # type:ignore + lookup_func, + ) + return lookups + else: + return {"__root__": (field_type, exact)} + else: + return lookup_map[field_type] + + @classmethod + def process_field(cls, namespace: dict, field_name: str, field_type: type): + lookups = cls.build_lookups(field_type) + field: FieldInfo | None = namespace.get(field_name, Field(default=None)) + + if field is None: + return + + namespace.setdefault(field_name, field) + if isinstance(field.json_schema_extra, dict): + override_lookups = field.json_schema_extra.get("lookups", None) + else: + override_lookups = None + if override_lookups: + lookups = {k: v for k, v in lookups.items() if k in override_lookups} + elif override_lookups is None: + pass + else: + lookups = {} + base_field_alias = str(field.alias) if field.alias else field_name + + cls.expand_lookups( + field_name, + lookups, + namespace, + base_field_alias, + ) + @classmethod def expand_lookups( - cls, name, lookups, namespace, base_field_alias: str | None = None + cls, + name: str, + lookups: dict, + namespace: dict, + base_field_alias: str | None = None, ): + global argument_seperator for lookup_alias, (type_, func) in lookups.items(): if lookup_alias == "__root__": filter_name = name @@ -164,35 +219,47 @@ def filter_func(self, exc, f, v, func=func, session=None): namespace.setdefault(func_name, filter_func) - field = namespace.get(filter_name, Field()) - field.extra.setdefault("sqla_column", name) - if base_field_alias is not None and lookup_alias != "__root__": - field.alias = base_field_alias + argument_seperator + lookup_alias + if ( + base_field_alias is not None + and base_field_alias != name + and lookup_alias != "__root__" + ): + field = namespace.get( + filter_name, + Field( + None, alias=base_field_alias + argument_seperator + lookup_alias + ), + ) + else: + field = namespace.get(filter_name, Field(None)) + field.json_schema_extra = {"sqla_column": name} namespace[filter_name] = field class BaseFilter(BaseModel, metaclass=FilterMeta): - class Config: - extra = Extra.forbid - sqla_model: type | None = None - allow_population_by_field_name = True + model_config = ConfigDict( + arbitrary_types_allowed=True, + extra="forbid", + populate_by_name=True, + ) + sqla_model: ClassVar[type | None] = None def __init__(self, **data: Any) -> None: try: super().__init__(**data) except ValidationError as e: - raise BadFilterArguments(model=e.model.__name__, errors=e.errors()) + raise BadFilterArguments(model=e.title, errors=e.errors()) def join(self, exc: db.sql.Select, session=None) -> db.sql.Select: return exc def apply(self, exc: db.sql.Select, model, session) -> db.sql.Select: - for name, field in self.__fields__.items(): - value = getattr(self, name, field.field_info.default) + for name, field_info in self.model_fields.items(): + value = getattr(self, name, field_info.get_default()) if isinstance(value, BaseFilter): - submodel = getattr(value.Config, "sqla_model", None) - model_getter = getattr(value.Config, "get_sqla_model", None) + submodel = getattr(value, "sqla_model", None) + model_getter = getattr(value, "get_sqla_model", None) if submodel is None and callable(model_getter): submodel = model_getter(session) @@ -204,7 +271,10 @@ def apply(self, exc: db.sql.Select, model, session) -> db.sql.Select: if filter_func is None: raise ProgrammingError - sqla_column = field.field_info.extra.get("sqla_column") + if isinstance(field_info.json_schema_extra, dict): + sqla_column = field_info.json_schema_extra.get("sqla_column") + else: + sqla_column = None if sqla_column is None: column = None else: diff --git a/ixmp4/server/rest/__init__.py b/ixmp4/server/rest/__init__.py index d9aceaa7..17047f6f 100644 --- a/ixmp4/server/rest/__init__.py +++ b/ixmp4/server/rest/__init__.py @@ -10,11 +10,10 @@ from . import deps, docs, meta, model, region, run, scenario, unit from .base import BaseModel -from .iamc import datapoint +from .iamc import datapoint, timeseries from .iamc import model as iamc_model from .iamc import region as iamc_region from .iamc import scenario as iamc_scenario -from .iamc import timeseries from .iamc import unit as iamc_unit from .iamc import variable as iamc_variable from .optimization import indexset @@ -57,14 +56,14 @@ class APIInfo(BaseModel): @v1.get("/", response_model=APIInfo) def root( - platform: str = Path("default"), + platform: str = Path(), version: str = Depends(deps.get_version), ): return APIInfo( name=platform, version=version, is_managed=settings.managed, - manager_url=settings.manager_url, + manager_url=str(settings.manager_url), utcnow=datetime.utcnow(), ) diff --git a/ixmp4/server/rest/base.py b/ixmp4/server/rest/base.py index 45990ff0..7eff6502 100644 --- a/ixmp4/server/rest/base.py +++ b/ixmp4/server/rest/base.py @@ -1,7 +1,6 @@ -import pydantic +from pydantic import BaseModel as PydanticBaseModel +from pydantic import ConfigDict -class BaseModel(pydantic.BaseModel): - class Config: - orm_mode = True - arbitrary_types_allowed = True +class BaseModel(PydanticBaseModel): + model_config = ConfigDict(from_attributes=True, arbitrary_types_allowed=True) diff --git a/ixmp4/server/rest/deps.py b/ixmp4/server/rest/deps.py index d455bf41..55a6e93c 100644 --- a/ixmp4/server/rest/deps.py +++ b/ixmp4/server/rest/deps.py @@ -12,7 +12,9 @@ from ixmp4.data.backend.db import SqlAlchemyBackend logger = logging.getLogger(__name__) -manager = ManagerConfig(settings.manager_url, SelfSignedAuth(settings.secret_hs256)) +manager = ManagerConfig( + str(settings.manager_url), SelfSignedAuth(settings.secret_hs256) +) async def validate_token(authorization: str = Header(None)) -> dict | None: @@ -33,7 +35,7 @@ async def validate_token(authorization: str = Header(None)) -> dict | None: async def do_not_validate_token(authorization: str = Header(None)) -> dict | None: """Override dependency used for skipping authentication while testing.""" - return {"user": local_user.dict()} + return {"user": local_user.model_dump()} async def get_user(token: dict | None = Depends(validate_token)) -> User: @@ -57,7 +59,7 @@ async def get_version(): async def get_managed_backend( - platform: str = Path("default"), user: User = Depends(get_user) + platform: str = Path(), user: User = Depends(get_user) ) -> AsyncGenerator[SqlAlchemyBackend, None]: """Returns a platform backend for a platform name as a path parameter. Also checks user access permissions if in managed mode.""" @@ -79,7 +81,7 @@ async def get_managed_backend( async def get_toml_backend( - platform: str = Path("default"), user: User = Depends(get_user) + platform: str = Path(), user: User = Depends(get_user) ) -> AsyncGenerator[SqlAlchemyBackend, None]: logger.debug("Looking for platform in `platforms.toml`.") info = settings.toml.get_platform(platform) @@ -99,7 +101,7 @@ async def get_toml_backend( def get_test_backend_dependency(backend, auth_params) -> Callable: async def get_memory_backend( - platform: str = Path("default"), user: User = Depends(get_user) + platform: str = Path(), user: User = Depends(get_user) ) -> AsyncGenerator[SqlAlchemyBackend, None]: """Override dependency which always yields a test backend.""" with backend.auth(*auth_params, overlap_ok=True): diff --git a/ixmp4/server/rest/docs.py b/ixmp4/server/rest/docs.py index 74ceac1a..1e062ce2 100644 --- a/ixmp4/server/rest/docs.py +++ b/ixmp4/server/rest/docs.py @@ -30,12 +30,12 @@ def set_models( docs: DocsInput, backend: Backend = Depends(deps.get_backend), ): - return backend.models.docs.set(**docs.dict()) + return backend.models.docs.set(**docs.model_dump()) @router.delete("/models/{dimension_id}/") def delete_models( - dimension_id: int = Path(None), + dimension_id: int = Path(), backend: Backend = Depends(deps.get_backend), ): return backend.models.docs.delete(dimension_id) @@ -54,12 +54,12 @@ def set_regions( docs: DocsInput, backend: Backend = Depends(deps.get_backend), ): - return backend.regions.docs.set(**docs.dict()) + return backend.regions.docs.set(**docs.model_dump()) @router.delete("/regions/{dimension_id}/") def delete_regions( - dimension_id: int = Path(None), + dimension_id: int = Path(), backend: Backend = Depends(deps.get_backend), ): return backend.regions.docs.delete(dimension_id) @@ -78,12 +78,12 @@ def set_scenarios( docs: DocsInput, backend: Backend = Depends(deps.get_backend), ): - return backend.scenarios.docs.set(**docs.dict()) + return backend.scenarios.docs.set(**docs.model_dump()) @router.delete("/scenarios/{dimension_id}/") def delete_scenarios( - dimension_id: int = Path(None), + dimension_id: int = Path(), backend: Backend = Depends(deps.get_backend), ): return backend.scenarios.docs.delete(dimension_id) @@ -102,12 +102,12 @@ def set_units( docs: DocsInput, backend: Backend = Depends(deps.get_backend), ): - return backend.units.docs.set(**docs.dict()) + return backend.units.docs.set(**docs.model_dump()) @router.delete("/units/{dimension_id}/") def delete_units( - dimension_id: int = Path(None), + dimension_id: int = Path(), backend: Backend = Depends(deps.get_backend), ): return backend.units.docs.delete(dimension_id) @@ -126,12 +126,12 @@ def set_variables( docs: DocsInput, backend: Backend = Depends(deps.get_backend), ): - return backend.iamc.variables.docs.set(**docs.dict()) + return backend.iamc.variables.docs.set(**docs.model_dump()) @router.delete("/iamc/variables/{dimension_id}/") def delete_variables( - dimension_id: int = Path(None), + dimension_id: int = Path(), backend: Backend = Depends(deps.get_backend), ): return backend.iamc.variables.docs.delete(dimension_id) @@ -150,12 +150,12 @@ def set_indexsets( docs: DocsInput, backend: Backend = Depends(deps.get_backend), ): - return backend.optimization.indexsets.docs.set(**docs.dict()) + return backend.optimization.indexsets.docs.set(**docs.model_dump()) @router.delete("/optimization/indexsets/{dimension_id}/") def delete_indexsets( - dimension_id: int = Path(None), + dimension_id: int = Path(), backend: Backend = Depends(deps.get_backend), ): return backend.optimization.indexsets.docs.delete(dimension_id) diff --git a/ixmp4/server/rest/iamc/datapoint.py b/ixmp4/server/rest/iamc/datapoint.py index e0407b19..69908c8e 100644 --- a/ixmp4/server/rest/iamc/datapoint.py +++ b/ixmp4/server/rest/iamc/datapoint.py @@ -1,4 +1,5 @@ from fastapi import APIRouter, Body, Depends, Query +from pydantic import RootModel from ixmp4.core.exceptions import BadRequest from ixmp4.data import api @@ -15,8 +16,8 @@ ) -class EnumerationOutput(BaseModel): - __root__: list[api.DataPoint] | api.DataFrame +class EnumerationOutput(BaseModel, RootModel): + root: list[api.DataPoint] | api.DataFrame @router.get("/", response_model=EnumerationOutput) diff --git a/ixmp4/server/rest/iamc/model.py b/ixmp4/server/rest/iamc/model.py index 78a0797d..45446782 100644 --- a/ixmp4/server/rest/iamc/model.py +++ b/ixmp4/server/rest/iamc/model.py @@ -1,4 +1,5 @@ from fastapi import APIRouter, Body, Depends, Query +from pydantic import RootModel from ixmp4.data import api from ixmp4.data.backend.base import Backend @@ -13,8 +14,8 @@ ) -class EnumerationOutput(BaseModel): - __root__: list[api.Model] | api.DataFrame +class EnumerationOutput(BaseModel, RootModel): + root: list[api.Model] | api.DataFrame @router.get("/", response_model=EnumerationOutput) @@ -28,7 +29,7 @@ def enumerate( @router.patch("/", response_model=EnumerationOutput) def query( - filter: IamcModelFilter = Body(IamcModelFilter()), + filter: IamcModelFilter = Body(IamcModelFilter(id=None, name=None)), table: bool | None = Query(False), backend: Backend = Depends(deps.get_backend), ): diff --git a/ixmp4/server/rest/iamc/region.py b/ixmp4/server/rest/iamc/region.py index c85bd524..59f4dd7a 100644 --- a/ixmp4/server/rest/iamc/region.py +++ b/ixmp4/server/rest/iamc/region.py @@ -1,4 +1,5 @@ from fastapi import APIRouter, Body, Depends, Query +from pydantic import RootModel from ixmp4.data import api from ixmp4.data.backend.base import Backend @@ -13,8 +14,8 @@ ) -class EnumerationOutput(BaseModel): - __root__: list[api.Region] | api.DataFrame +class EnumerationOutput(BaseModel, RootModel): + root: list[api.Region] | api.DataFrame @router.get("/", response_model=EnumerationOutput) @@ -28,7 +29,9 @@ def enumerate( @router.patch("/", response_model=EnumerationOutput) def query( - filter: IamcRegionFilter = Body(IamcRegionFilter()), + filter: IamcRegionFilter = Body( + IamcRegionFilter(id=None, name=None, hierarchy=None) + ), table: bool | None = Query(False), backend: Backend = Depends(deps.get_backend), ): diff --git a/ixmp4/server/rest/iamc/scenario.py b/ixmp4/server/rest/iamc/scenario.py index c5af21d2..1056a58b 100644 --- a/ixmp4/server/rest/iamc/scenario.py +++ b/ixmp4/server/rest/iamc/scenario.py @@ -1,4 +1,5 @@ from fastapi import APIRouter, Body, Depends, Query +from pydantic import RootModel from ixmp4.data import api from ixmp4.data.backend.base import Backend @@ -13,8 +14,8 @@ ) -class EnumerationOutput(BaseModel): - __root__: list[api.Scenario] | api.DataFrame +class EnumerationOutput(BaseModel, RootModel): + root: list[api.Scenario] | api.DataFrame @router.get("/", response_model=EnumerationOutput) @@ -28,7 +29,7 @@ def enumerate( @router.patch("/", response_model=EnumerationOutput) def query( - filter: IamcScenarioFilter = Body(IamcScenarioFilter()), + filter: IamcScenarioFilter = Body(IamcScenarioFilter(id=None, name=None)), table: bool | None = Query(False), backend: Backend = Depends(deps.get_backend), ): diff --git a/ixmp4/server/rest/iamc/timeseries.py b/ixmp4/server/rest/iamc/timeseries.py index eabf34d7..2f1d328f 100644 --- a/ixmp4/server/rest/iamc/timeseries.py +++ b/ixmp4/server/rest/iamc/timeseries.py @@ -1,6 +1,7 @@ from typing import Any from fastapi import APIRouter, Depends, Query, Request, Response +from pydantic import RootModel from ixmp4.data import api from ixmp4.data.backend.base import Backend @@ -19,8 +20,8 @@ class TimeSeriesInput(BaseModel): parameters: dict[str, Any] -class EnumerationOutput(BaseModel): - __root__: list[api.TimeSeries] | api.DataFrame +class EnumerationOutput(BaseModel, RootModel): + root: list[api.TimeSeries] | api.DataFrame @router.get("/", response_model=EnumerationOutput) @@ -46,7 +47,7 @@ def create( timeseries: TimeSeriesInput, backend: Backend = Depends(deps.get_backend), ): - return backend.iamc.timeseries.create(**timeseries.dict()) + return backend.iamc.timeseries.create(**timeseries.model_dump()) @router.get("/{id}/", response_model=api.TimeSeries) diff --git a/ixmp4/server/rest/iamc/unit.py b/ixmp4/server/rest/iamc/unit.py index abab27be..27303ad7 100644 --- a/ixmp4/server/rest/iamc/unit.py +++ b/ixmp4/server/rest/iamc/unit.py @@ -1,4 +1,5 @@ from fastapi import APIRouter, Body, Depends, Query +from pydantic import RootModel from ixmp4.data import api from ixmp4.data.backend.base import Backend @@ -13,8 +14,8 @@ ) -class EnumerationOutput(BaseModel): - __root__: list[api.Unit] | api.DataFrame +class EnumerationOutput(BaseModel, RootModel): + root: list[api.Unit] | api.DataFrame @router.get("/", response_model=EnumerationOutput) @@ -28,7 +29,7 @@ def enumerate( @router.patch("/", response_model=EnumerationOutput) def query( - filter: IamcUnitFilter = Body(IamcUnitFilter()), + filter: IamcUnitFilter = Body(IamcUnitFilter(id=None, name=None)), table: bool | None = Query(False), backend: Backend = Depends(deps.get_backend), ): diff --git a/ixmp4/server/rest/iamc/variable.py b/ixmp4/server/rest/iamc/variable.py index 6fe64d3d..be17bdbe 100644 --- a/ixmp4/server/rest/iamc/variable.py +++ b/ixmp4/server/rest/iamc/variable.py @@ -1,4 +1,5 @@ from fastapi import APIRouter, Body, Depends, Query +from pydantic import RootModel from ixmp4.data import api from ixmp4.data.backend.base import Backend @@ -18,8 +19,8 @@ class VariableInput(BaseModel): name: str -class EnumerationOutput(BaseModel): - __root__: list[api.Variable] | api.DataFrame +class EnumerationOutput(BaseModel, RootModel): + root: list[api.Variable] | api.DataFrame @autodoc @@ -35,7 +36,7 @@ def enumerate( @autodoc @router.patch("/", response_model=EnumerationOutput) def query( - filter: VariableFilter = Body(VariableFilter()), + filter: VariableFilter = Body(VariableFilter(id=None, name=None)), table: bool = Query(False), backend: Backend = Depends(deps.get_backend), ): @@ -48,4 +49,4 @@ def create( variable: VariableInput, backend: Backend = Depends(deps.get_backend), ): - return backend.iamc.variables.create(**variable.dict()) + return backend.iamc.variables.create(**variable.model_dump()) diff --git a/ixmp4/server/rest/meta.py b/ixmp4/server/rest/meta.py index 44069db6..4c9317bb 100644 --- a/ixmp4/server/rest/meta.py +++ b/ixmp4/server/rest/meta.py @@ -1,4 +1,5 @@ from fastapi import APIRouter, Depends, Path, Query +from pydantic import RootModel from ixmp4.data import abstract, api from ixmp4.data.backend.base import Backend @@ -18,8 +19,8 @@ class RunMetaEntryInput(BaseModel): value: abstract.StrictMetaValue -class EnumerationOutput(BaseModel): - __root__: api.DataFrame | list[api.RunMetaEntry] +class EnumerationOutput(BaseModel, RootModel): + root: api.DataFrame | list[api.RunMetaEntry] @router.get("/", response_model=EnumerationOutput) @@ -41,12 +42,12 @@ def create( runmeta: RunMetaEntryInput, backend: Backend = Depends(deps.get_backend), ): - return backend.meta.create(**runmeta.dict()) + return backend.meta.create(**runmeta.model_dump()) @router.delete("/{id}/") def delete( - id: int = Path(None), + id: int = Path(), backend: Backend = Depends(deps.get_backend), ): backend.meta.delete(id) diff --git a/ixmp4/server/rest/model.py b/ixmp4/server/rest/model.py index e5f157f5..5d4c2f6c 100644 --- a/ixmp4/server/rest/model.py +++ b/ixmp4/server/rest/model.py @@ -1,4 +1,5 @@ from fastapi import APIRouter, Body, Depends, Query +from pydantic import RootModel from ixmp4.data import api from ixmp4.data.backend.base import Backend @@ -18,8 +19,8 @@ class ModelInput(BaseModel): name: str -class EnumerationOutput(BaseModel): - __root__: list[api.Model] | api.DataFrame +class EnumerationOutput(BaseModel, RootModel): + root: list[api.Model] | api.DataFrame @autodoc @@ -48,4 +49,4 @@ def create( model: ModelInput, backend: Backend = Depends(deps.get_backend), ): - return backend.models.create(**model.dict()) + return backend.models.create(**model.model_dump()) diff --git a/ixmp4/server/rest/optimization/indexset.py b/ixmp4/server/rest/optimization/indexset.py index 16d47d66..f7670cad 100644 --- a/ixmp4/server/rest/optimization/indexset.py +++ b/ixmp4/server/rest/optimization/indexset.py @@ -1,5 +1,5 @@ from fastapi import APIRouter, Body, Depends, Query -from pydantic import StrictInt, StrictStr +from pydantic import RootModel, StrictInt, StrictStr from ixmp4.data import api from ixmp4.data.backend.base import Backend @@ -20,8 +20,8 @@ class IndexSetInput(BaseModel): name: str -class EnumerationOutput(BaseModel): - __root__: list[api.IndexSet] | api.DataFrame +class EnumerationOutput(BaseModel, RootModel): + root: list[api.IndexSet] | api.DataFrame class ElementsInput(BaseModel): @@ -41,7 +41,9 @@ def enumerate( @autodoc @router.patch("/", response_model=EnumerationOutput) def query( - filter: OptimizationIndexSetFilter = Body(OptimizationIndexSetFilter()), + filter: OptimizationIndexSetFilter = Body( + OptimizationIndexSetFilter(id=None, name=None, run__id=None) + ), table: bool = Query(False), backend: Backend = Depends(deps.get_backend), ): @@ -54,7 +56,7 @@ def create( indexset: IndexSetInput, backend: Backend = Depends(deps.get_backend), ): - return backend.optimization.indexsets.create(**indexset.dict()) + return backend.optimization.indexsets.create(**indexset.model_dump()) @autodoc @@ -65,5 +67,5 @@ def add_elements( backend: Backend = Depends(deps.get_backend), ): backend.optimization.indexsets.add_elements( - indexset_id=indexset_id, **elements.dict() + indexset_id=indexset_id, **elements.model_dump() ) diff --git a/ixmp4/server/rest/region.py b/ixmp4/server/rest/region.py index 537ef693..a34dd2f7 100644 --- a/ixmp4/server/rest/region.py +++ b/ixmp4/server/rest/region.py @@ -1,4 +1,5 @@ from fastapi import APIRouter, Body, Depends, Path, Query +from pydantic import RootModel from ixmp4.data import api from ixmp4.data.backend.base import Backend @@ -19,8 +20,8 @@ class RegionInput(BaseModel): hierarchy: str -class EnumerationOutput(BaseModel): - __root__: list[api.Region] | api.DataFrame +class EnumerationOutput(BaseModel, RootModel): + root: list[api.Region] | api.DataFrame @autodoc @@ -49,12 +50,12 @@ def create( region: RegionInput, backend: Backend = Depends(deps.get_backend), ): - return backend.regions.create(**region.dict()) + return backend.regions.create(**region.model_dump()) @router.delete("/{id}/") def delete( - id: int = Path(None), + id: int = Path(), backend: Backend = Depends(deps.get_backend), ): backend.regions.delete(id) diff --git a/ixmp4/server/rest/run.py b/ixmp4/server/rest/run.py index 0ad9616b..609ed648 100644 --- a/ixmp4/server/rest/run.py +++ b/ixmp4/server/rest/run.py @@ -1,4 +1,5 @@ from fastapi import APIRouter, Body, Depends, Path, Query +from pydantic import Field, RootModel from ixmp4.data import api from ixmp4.data.backend.base import Backend @@ -14,12 +15,12 @@ class RunInput(BaseModel): - model_name: str + name_of_model: str = Field(..., alias="model_name") scenario_name: str -class EnumerationOutput(BaseModel): - __root__: list[api.Run] | api.DataFrame +class EnumerationOutput(BaseModel, RootModel): + root: list[api.Run] | api.DataFrame @router.get("/", response_model=EnumerationOutput) @@ -33,7 +34,7 @@ def enumerate( @router.patch("/", response_model=EnumerationOutput) def query( - filter: RunFilter = Body(RunFilter()), + filter: RunFilter = Body(RunFilter(id=None, version=None, is_default=False)), table: bool | None = Query(False), backend: Backend = Depends(deps.get_backend), ): @@ -45,12 +46,12 @@ def create( run: RunInput, backend: Backend = Depends(deps.get_backend), ): - return backend.runs.create(**run.dict()) + return backend.runs.create(**run.model_dump(by_alias=True)) @router.post("/{id}/set-as-default-version/") def set_as_default_version( - id: int = Path(None), + id: int = Path(), backend: Backend = Depends(deps.get_backend), ): backend.runs.set_as_default_version(id) @@ -58,7 +59,7 @@ def set_as_default_version( @router.post("/{id}/unset-as-default-version/") def unset_as_default_version( - id: int = Path(None), + id: int = Path(), backend: Backend = Depends(deps.get_backend), ): backend.runs.unset_as_default_version(id) diff --git a/ixmp4/server/rest/scenario.py b/ixmp4/server/rest/scenario.py index f0a95e26..652b58b6 100644 --- a/ixmp4/server/rest/scenario.py +++ b/ixmp4/server/rest/scenario.py @@ -1,4 +1,5 @@ from fastapi import APIRouter, Body, Depends, Query +from pydantic import RootModel from ixmp4.data import api from ixmp4.data.backend.base import Backend @@ -18,8 +19,8 @@ class ScenarioInput(BaseModel): name: str -class EnumerationOutput(BaseModel): - __root__: list[api.Scenario] | api.DataFrame +class EnumerationOutput(BaseModel, RootModel): + root: list[api.Scenario] | api.DataFrame @autodoc @@ -48,4 +49,4 @@ def create( scenario: ScenarioInput, backend: Backend = Depends(deps.get_backend), ): - return backend.scenarios.create(**scenario.dict()) + return backend.scenarios.create(**scenario.model_dump()) diff --git a/ixmp4/server/rest/unit.py b/ixmp4/server/rest/unit.py index e8ece339..34ebcd9a 100644 --- a/ixmp4/server/rest/unit.py +++ b/ixmp4/server/rest/unit.py @@ -1,4 +1,5 @@ from fastapi import APIRouter, Body, Depends, Path, Query +from pydantic import RootModel from ixmp4.data import api from ixmp4.data.backend.base import Backend @@ -18,8 +19,8 @@ class UnitInput(BaseModel): name: str -class EnumerationOutput(BaseModel): - __root__: api.DataFrame | list[api.Unit] +class EnumerationOutput(BaseModel, RootModel): + root: api.DataFrame | list[api.Unit] @autodoc @@ -47,12 +48,12 @@ def create( unit: UnitInput, backend: Backend = Depends(deps.get_backend), ): - return backend.units.create(**unit.dict()) + return backend.units.create(**unit.model_dump()) @router.delete("/{id}/") def delete( - id: int = Path(None), + id: int = Path(), backend: Backend = Depends(deps.get_backend), ): backend.units.delete(id) diff --git a/poetry.lock b/poetry.lock index 2c88bacb..ec0141d4 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,10 +1,9 @@ -# This file is automatically @generated by Poetry and should not be changed by hand. +# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. [[package]] name = "alabaster" version = "0.7.13" description = "A configurable sidebar-enabled Sphinx theme" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -16,7 +15,6 @@ files = [ name = "alembic" version = "1.12.0" description = "A database migration tool for SQLAlchemy." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -32,33 +30,42 @@ typing-extensions = ">=4" [package.extras] tz = ["python-dateutil"] +[[package]] +name = "annotated-types" +version = "0.6.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +files = [ + {file = "annotated_types-0.6.0-py3-none-any.whl", hash = "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43"}, + {file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"}, +] + [[package]] name = "anyio" -version = "4.0.0" +version = "3.7.1" description = "High level compatibility layer for multiple asynchronous event loop implementations" -category = "main" optional = false -python-versions = ">=3.8" +python-versions = ">=3.7" files = [ - {file = "anyio-4.0.0-py3-none-any.whl", hash = "sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f"}, - {file = "anyio-4.0.0.tar.gz", hash = "sha256:f7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a"}, + {file = "anyio-3.7.1-py3-none-any.whl", hash = "sha256:91dee416e570e92c64041bd18b900d1d6fa78dff7048769ce5ac5ddad004fbb5"}, + {file = "anyio-3.7.1.tar.gz", hash = "sha256:44a3c9aba0f5defa43261a8b3efb97891f2bd7d804e0e1f56419befa1adfc780"}, ] [package.dependencies] -exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} +exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} idna = ">=2.8" sniffio = ">=1.1" [package.extras] -doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)"] -test = ["anyio[trio]", "coverage[toml] (>=7)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] -trio = ["trio (>=0.22)"] +doc = ["Sphinx", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme (>=1.2.2)", "sphinxcontrib-jquery"] +test = ["anyio[trio]", "coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "mock (>=4)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +trio = ["trio (<0.22)"] [[package]] name = "appnope" version = "0.1.3" description = "Disable App Nap on macOS >= 10.9" -category = "dev" optional = false python-versions = "*" files = [ @@ -66,29 +73,10 @@ files = [ {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, ] -[[package]] -name = "asgiref" -version = "3.7.2" -description = "ASGI specs, helper code, and adapters" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "asgiref-3.7.2-py3-none-any.whl", hash = "sha256:89b2ef2247e3b562a16eef663bc0e2e703ec6468e2fa8a5cd61cd449786d4f6e"}, - {file = "asgiref-3.7.2.tar.gz", hash = "sha256:9e0ce3aa93a819ba5b45120216b23878cf6e8525eb3848653452b4192b92afed"}, -] - -[package.dependencies] -typing-extensions = {version = ">=4", markers = "python_version < \"3.11\""} - -[package.extras] -tests = ["mypy (>=0.800)", "pytest", "pytest-asyncio"] - [[package]] name = "asttokens" version = "2.4.0" description = "Annotate AST trees with source code positions" -category = "dev" optional = false python-versions = "*" files = [ @@ -102,22 +90,10 @@ six = ">=1.12.0" [package.extras] test = ["astroid", "pytest"] -[[package]] -name = "atomicwrites" -version = "1.4.1" -description = "Atomic file writes." -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"}, -] - [[package]] name = "attrs" version = "23.1.0" description = "Classes Without Boilerplate" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -134,21 +110,22 @@ tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pyte [[package]] name = "babel" -version = "2.12.1" +version = "2.13.0" description = "Internationalization utilities" -category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "Babel-2.12.1-py3-none-any.whl", hash = "sha256:b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610"}, - {file = "Babel-2.12.1.tar.gz", hash = "sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455"}, + {file = "Babel-2.13.0-py3-none-any.whl", hash = "sha256:fbfcae1575ff78e26c7449136f1abbefc3c13ce542eeb13d43d50d8b047216ec"}, + {file = "Babel-2.13.0.tar.gz", hash = "sha256:04c3e2d28d2b7681644508f836be388ae49e0cfe91465095340395b60d00f210"}, ] +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] + [[package]] name = "backcall" version = "0.2.0" description = "Specifications for callback functions passed in to an API" -category = "dev" optional = false python-versions = "*" files = [ @@ -158,34 +135,29 @@ files = [ [[package]] name = "black" -version = "23.7.0" +version = "23.10.0" description = "The uncompromising code formatter." -category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "black-23.7.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:5c4bc552ab52f6c1c506ccae05681fab58c3f72d59ae6e6639e8885e94fe2587"}, - {file = "black-23.7.0-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:552513d5cd5694590d7ef6f46e1767a4df9af168d449ff767b13b084c020e63f"}, - {file = "black-23.7.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:86cee259349b4448adb4ef9b204bb4467aae74a386bce85d56ba4f5dc0da27be"}, - {file = "black-23.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:501387a9edcb75d7ae8a4412bb8749900386eaef258f1aefab18adddea1936bc"}, - {file = "black-23.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:fb074d8b213749fa1d077d630db0d5f8cc3b2ae63587ad4116e8a436e9bbe995"}, - {file = "black-23.7.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:b5b0ee6d96b345a8b420100b7d71ebfdd19fab5e8301aff48ec270042cd40ac2"}, - {file = "black-23.7.0-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:893695a76b140881531062d48476ebe4a48f5d1e9388177e175d76234ca247cd"}, - {file = "black-23.7.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:c333286dc3ddca6fdff74670b911cccedacb4ef0a60b34e491b8a67c833b343a"}, - {file = "black-23.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:831d8f54c3a8c8cf55f64d0422ee875eecac26f5f649fb6c1df65316b67c8926"}, - {file = "black-23.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:7f3bf2dec7d541b4619b8ce526bda74a6b0bffc480a163fed32eb8b3c9aed8ad"}, - {file = "black-23.7.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:f9062af71c59c004cd519e2fb8f5d25d39e46d3af011b41ab43b9c74e27e236f"}, - {file = "black-23.7.0-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:01ede61aac8c154b55f35301fac3e730baf0c9cf8120f65a9cd61a81cfb4a0c3"}, - {file = "black-23.7.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:327a8c2550ddc573b51e2c352adb88143464bb9d92c10416feb86b0f5aee5ff6"}, - {file = "black-23.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d1c6022b86f83b632d06f2b02774134def5d4d4f1dac8bef16d90cda18ba28a"}, - {file = "black-23.7.0-cp38-cp38-win_amd64.whl", hash = "sha256:27eb7a0c71604d5de083757fbdb245b1a4fae60e9596514c6ec497eb63f95320"}, - {file = "black-23.7.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:8417dbd2f57b5701492cd46edcecc4f9208dc75529bcf76c514864e48da867d9"}, - {file = "black-23.7.0-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:47e56d83aad53ca140da0af87678fb38e44fd6bc0af71eebab2d1f59b1acf1d3"}, - {file = "black-23.7.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:25cc308838fe71f7065df53aedd20327969d05671bac95b38fdf37ebe70ac087"}, - {file = "black-23.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:642496b675095d423f9b8448243336f8ec71c9d4d57ec17bf795b67f08132a91"}, - {file = "black-23.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:ad0014efc7acf0bd745792bd0d8857413652979200ab924fbf239062adc12491"}, - {file = "black-23.7.0-py3-none-any.whl", hash = "sha256:9fd59d418c60c0348505f2ddf9609c1e1de8e7493eab96198fc89d9f865e7a96"}, - {file = "black-23.7.0.tar.gz", hash = "sha256:022a582720b0d9480ed82576c920a8c1dde97cc38ff11d8d8859b3bd6ca9eedb"}, + {file = "black-23.10.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:f8dc7d50d94063cdfd13c82368afd8588bac4ce360e4224ac399e769d6704e98"}, + {file = "black-23.10.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:f20ff03f3fdd2fd4460b4f631663813e57dc277e37fb216463f3b907aa5a9bdd"}, + {file = "black-23.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3d9129ce05b0829730323bdcb00f928a448a124af5acf90aa94d9aba6969604"}, + {file = "black-23.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:960c21555be135c4b37b7018d63d6248bdae8514e5c55b71e994ad37407f45b8"}, + {file = "black-23.10.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:30b78ac9b54cf87bcb9910ee3d499d2bc893afd52495066c49d9ee6b21eee06e"}, + {file = "black-23.10.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:0e232f24a337fed7a82c1185ae46c56c4a6167fb0fe37411b43e876892c76699"}, + {file = "black-23.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31946ec6f9c54ed7ba431c38bc81d758970dd734b96b8e8c2b17a367d7908171"}, + {file = "black-23.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:c870bee76ad5f7a5ea7bd01dc646028d05568d33b0b09b7ecfc8ec0da3f3f39c"}, + {file = "black-23.10.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:6901631b937acbee93c75537e74f69463adaf34379a04eef32425b88aca88a23"}, + {file = "black-23.10.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:481167c60cd3e6b1cb8ef2aac0f76165843a374346aeeaa9d86765fe0dd0318b"}, + {file = "black-23.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f74892b4b836e5162aa0452393112a574dac85e13902c57dfbaaf388e4eda37c"}, + {file = "black-23.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:47c4510f70ec2e8f9135ba490811c071419c115e46f143e4dce2ac45afdcf4c9"}, + {file = "black-23.10.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:76baba9281e5e5b230c9b7f83a96daf67a95e919c2dfc240d9e6295eab7b9204"}, + {file = "black-23.10.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:a3c2ddb35f71976a4cfeca558848c2f2f89abc86b06e8dd89b5a65c1e6c0f22a"}, + {file = "black-23.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db451a3363b1e765c172c3fd86213a4ce63fb8524c938ebd82919bf2a6e28c6a"}, + {file = "black-23.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:7fb5fc36bb65160df21498d5a3dd330af8b6401be3f25af60c6ebfe23753f747"}, + {file = "black-23.10.0-py3-none-any.whl", hash = "sha256:e223b731a0e025f8ef427dd79d8cd69c167da807f5710add30cdf131f13dd62e"}, + {file = "black-23.10.0.tar.gz", hash = "sha256:31b9f87b277a68d0e99d2905edae08807c007973eaa609da5f0c62def6b7c0bd"}, ] [package.dependencies] @@ -195,6 +167,7 @@ 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)"] @@ -204,14 +177,13 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "build" -version = "0.10.0" +version = "1.0.3" description = "A simple, correct Python build frontend" -category = "dev" optional = false python-versions = ">= 3.7" files = [ - {file = "build-0.10.0-py3-none-any.whl", hash = "sha256:af266720050a66c893a6096a2f410989eeac74ff9a68ba194b3f6473e8e26171"}, - {file = "build-0.10.0.tar.gz", hash = "sha256:d5b71264afdb5951d6704482aac78de887c80691c52b88a9ad195983ca2c9269"}, + {file = "build-1.0.3-py3-none-any.whl", hash = "sha256:589bf99a67df7c9cf07ec0ac0e5e2ea5d4b37ac63301c4986d1acb126aa83f8f"}, + {file = "build-1.0.3.tar.gz", hash = "sha256:538aab1b64f9828977f84bc63ae570b060a8ed1be419e7870b8b4fc5e6ea553b"}, ] [package.dependencies] @@ -221,16 +193,15 @@ pyproject_hooks = "*" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} [package.extras] -docs = ["furo (>=2021.08.31)", "sphinx (>=4.0,<5.0)", "sphinx-argparse-cli (>=1.5)", "sphinx-autodoc-typehints (>=1.10)"] -test = ["filelock (>=3)", "pytest (>=6.2.4)", "pytest-cov (>=2.12)", "pytest-mock (>=2)", "pytest-rerunfailures (>=9.1)", "pytest-xdist (>=1.34)", "setuptools (>=42.0.0)", "setuptools (>=56.0.0)", "toml (>=0.10.0)", "wheel (>=0.36.0)"] -typing = ["importlib-metadata (>=5.1)", "mypy (==0.991)", "tomli", "typing-extensions (>=3.7.4.3)"] +docs = ["furo (>=2023.08.17)", "sphinx (>=7.0,<8.0)", "sphinx-argparse-cli (>=1.5)", "sphinx-autodoc-typehints (>=1.10)", "sphinx-issues (>=3.0.0)"] +test = ["filelock (>=3)", "pytest (>=6.2.4)", "pytest-cov (>=2.12)", "pytest-mock (>=2)", "pytest-rerunfailures (>=9.1)", "pytest-xdist (>=1.34)", "setuptools (>=42.0.0)", "setuptools (>=56.0.0)", "setuptools (>=56.0.0)", "setuptools (>=67.8.0)", "wheel (>=0.36.0)"] +typing = ["importlib-metadata (>=5.1)", "mypy (>=1.5.0,<1.6.0)", "tomli", "typing-extensions (>=3.7.4.3)"] virtualenv = ["virtualenv (>=20.0.35)"] [[package]] name = "certifi" version = "2023.7.22" description = "Python package for providing Mozilla's CA Bundle." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -240,171 +211,182 @@ files = [ [[package]] name = "cffi" -version = "1.15.1" +version = "1.16.0" description = "Foreign Function Interface for Python calling C code." -category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, - {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, - {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, - {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, - {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, - {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, - {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, - {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, - {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, - {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, - {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, - {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, - {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, - {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, - {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, - {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, - {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, - {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, - {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, - {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, - {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, - {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, - {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, - {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, - {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, - {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, - {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, - {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, - {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, - {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, - {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, - {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, - {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, - {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, - {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, + {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, + {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, + {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, + {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, + {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, + {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, + {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, + {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, + {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, + {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, + {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, + {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, + {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, + {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, + {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, ] [package.dependencies] pycparser = "*" +[[package]] +name = "cfgv" +version = "3.4.0" +description = "Validate configuration and produce human readable error messages." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, + {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, +] + [[package]] name = "charset-normalizer" -version = "3.2.0" +version = "3.3.0" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "main" optional = false python-versions = ">=3.7.0" files = [ - {file = "charset-normalizer-3.2.0.tar.gz", hash = "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-win32.whl", hash = "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-win32.whl", hash = "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-win32.whl", hash = "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-win32.whl", hash = "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-win32.whl", hash = "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80"}, - {file = "charset_normalizer-3.2.0-py3-none-any.whl", hash = "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6"}, + {file = "charset-normalizer-3.3.0.tar.gz", hash = "sha256:63563193aec44bce707e0c5ca64ff69fa72ed7cf34ce6e11d5127555756fd2f6"}, + {file = "charset_normalizer-3.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:effe5406c9bd748a871dbcaf3ac69167c38d72db8c9baf3ff954c344f31c4cbe"}, + {file = "charset_normalizer-3.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4162918ef3098851fcd8a628bf9b6a98d10c380725df9e04caf5ca6dd48c847a"}, + {file = "charset_normalizer-3.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0570d21da019941634a531444364f2482e8db0b3425fcd5ac0c36565a64142c8"}, + {file = "charset_normalizer-3.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5707a746c6083a3a74b46b3a631d78d129edab06195a92a8ece755aac25a3f3d"}, + {file = "charset_normalizer-3.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:278c296c6f96fa686d74eb449ea1697f3c03dc28b75f873b65b5201806346a69"}, + {file = "charset_normalizer-3.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a4b71f4d1765639372a3b32d2638197f5cd5221b19531f9245fcc9ee62d38f56"}, + {file = "charset_normalizer-3.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5969baeaea61c97efa706b9b107dcba02784b1601c74ac84f2a532ea079403e"}, + {file = "charset_normalizer-3.3.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3f93dab657839dfa61025056606600a11d0b696d79386f974e459a3fbc568ec"}, + {file = "charset_normalizer-3.3.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:db756e48f9c5c607b5e33dd36b1d5872d0422e960145b08ab0ec7fd420e9d649"}, + {file = "charset_normalizer-3.3.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:232ac332403e37e4a03d209a3f92ed9071f7d3dbda70e2a5e9cff1c4ba9f0678"}, + {file = "charset_normalizer-3.3.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e5c1502d4ace69a179305abb3f0bb6141cbe4714bc9b31d427329a95acfc8bdd"}, + {file = "charset_normalizer-3.3.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:2502dd2a736c879c0f0d3e2161e74d9907231e25d35794584b1ca5284e43f596"}, + {file = "charset_normalizer-3.3.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23e8565ab7ff33218530bc817922fae827420f143479b753104ab801145b1d5b"}, + {file = "charset_normalizer-3.3.0-cp310-cp310-win32.whl", hash = "sha256:1872d01ac8c618a8da634e232f24793883d6e456a66593135aeafe3784b0848d"}, + {file = "charset_normalizer-3.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:557b21a44ceac6c6b9773bc65aa1b4cc3e248a5ad2f5b914b91579a32e22204d"}, + {file = "charset_normalizer-3.3.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d7eff0f27edc5afa9e405f7165f85a6d782d308f3b6b9d96016c010597958e63"}, + {file = "charset_normalizer-3.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6a685067d05e46641d5d1623d7c7fdf15a357546cbb2f71b0ebde91b175ffc3e"}, + {file = "charset_normalizer-3.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0d3d5b7db9ed8a2b11a774db2bbea7ba1884430a205dbd54a32d61d7c2a190fa"}, + {file = "charset_normalizer-3.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2935ffc78db9645cb2086c2f8f4cfd23d9b73cc0dc80334bc30aac6f03f68f8c"}, + {file = "charset_normalizer-3.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fe359b2e3a7729010060fbca442ca225280c16e923b37db0e955ac2a2b72a05"}, + {file = "charset_normalizer-3.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:380c4bde80bce25c6e4f77b19386f5ec9db230df9f2f2ac1e5ad7af2caa70459"}, + {file = "charset_normalizer-3.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0d1e3732768fecb052d90d62b220af62ead5748ac51ef61e7b32c266cac9293"}, + {file = "charset_normalizer-3.3.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1b2919306936ac6efb3aed1fbf81039f7087ddadb3160882a57ee2ff74fd2382"}, + {file = "charset_normalizer-3.3.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f8888e31e3a85943743f8fc15e71536bda1c81d5aa36d014a3c0c44481d7db6e"}, + {file = "charset_normalizer-3.3.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:82eb849f085624f6a607538ee7b83a6d8126df6d2f7d3b319cb837b289123078"}, + {file = "charset_normalizer-3.3.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7b8b8bf1189b3ba9b8de5c8db4d541b406611a71a955bbbd7385bbc45fcb786c"}, + {file = "charset_normalizer-3.3.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5adf257bd58c1b8632046bbe43ee38c04e1038e9d37de9c57a94d6bd6ce5da34"}, + {file = "charset_normalizer-3.3.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c350354efb159b8767a6244c166f66e67506e06c8924ed74669b2c70bc8735b1"}, + {file = "charset_normalizer-3.3.0-cp311-cp311-win32.whl", hash = "sha256:02af06682e3590ab952599fbadac535ede5d60d78848e555aa58d0c0abbde786"}, + {file = "charset_normalizer-3.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:86d1f65ac145e2c9ed71d8ffb1905e9bba3a91ae29ba55b4c46ae6fc31d7c0d4"}, + {file = "charset_normalizer-3.3.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:3b447982ad46348c02cb90d230b75ac34e9886273df3a93eec0539308a6296d7"}, + {file = "charset_normalizer-3.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:abf0d9f45ea5fb95051c8bfe43cb40cda383772f7e5023a83cc481ca2604d74e"}, + {file = "charset_normalizer-3.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b09719a17a2301178fac4470d54b1680b18a5048b481cb8890e1ef820cb80455"}, + {file = "charset_normalizer-3.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b3d9b48ee6e3967b7901c052b670c7dda6deb812c309439adaffdec55c6d7b78"}, + {file = "charset_normalizer-3.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:edfe077ab09442d4ef3c52cb1f9dab89bff02f4524afc0acf2d46be17dc479f5"}, + {file = "charset_normalizer-3.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3debd1150027933210c2fc321527c2299118aa929c2f5a0a80ab6953e3bd1908"}, + {file = "charset_normalizer-3.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86f63face3a527284f7bb8a9d4f78988e3c06823f7bea2bd6f0e0e9298ca0403"}, + {file = "charset_normalizer-3.3.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:24817cb02cbef7cd499f7c9a2735286b4782bd47a5b3516a0e84c50eab44b98e"}, + {file = "charset_normalizer-3.3.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c71f16da1ed8949774ef79f4a0260d28b83b3a50c6576f8f4f0288d109777989"}, + {file = "charset_normalizer-3.3.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:9cf3126b85822c4e53aa28c7ec9869b924d6fcfb76e77a45c44b83d91afd74f9"}, + {file = "charset_normalizer-3.3.0-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:b3b2316b25644b23b54a6f6401074cebcecd1244c0b8e80111c9a3f1c8e83d65"}, + {file = "charset_normalizer-3.3.0-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:03680bb39035fbcffe828eae9c3f8afc0428c91d38e7d61aa992ef7a59fb120e"}, + {file = "charset_normalizer-3.3.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4cc152c5dd831641e995764f9f0b6589519f6f5123258ccaca8c6d34572fefa8"}, + {file = "charset_normalizer-3.3.0-cp312-cp312-win32.whl", hash = "sha256:b8f3307af845803fb0b060ab76cf6dd3a13adc15b6b451f54281d25911eb92df"}, + {file = "charset_normalizer-3.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:8eaf82f0eccd1505cf39a45a6bd0a8cf1c70dcfc30dba338207a969d91b965c0"}, + {file = "charset_normalizer-3.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:dc45229747b67ffc441b3de2f3ae5e62877a282ea828a5bdb67883c4ee4a8810"}, + {file = "charset_normalizer-3.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f4a0033ce9a76e391542c182f0d48d084855b5fcba5010f707c8e8c34663d77"}, + {file = "charset_normalizer-3.3.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ada214c6fa40f8d800e575de6b91a40d0548139e5dc457d2ebb61470abf50186"}, + {file = "charset_normalizer-3.3.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b1121de0e9d6e6ca08289583d7491e7fcb18a439305b34a30b20d8215922d43c"}, + {file = "charset_normalizer-3.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1063da2c85b95f2d1a430f1c33b55c9c17ffaf5e612e10aeaad641c55a9e2b9d"}, + {file = "charset_normalizer-3.3.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70f1d09c0d7748b73290b29219e854b3207aea922f839437870d8cc2168e31cc"}, + {file = "charset_normalizer-3.3.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:250c9eb0f4600361dd80d46112213dff2286231d92d3e52af1e5a6083d10cad9"}, + {file = "charset_normalizer-3.3.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:750b446b2ffce1739e8578576092179160f6d26bd5e23eb1789c4d64d5af7dc7"}, + {file = "charset_normalizer-3.3.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:fc52b79d83a3fe3a360902d3f5d79073a993597d48114c29485e9431092905d8"}, + {file = "charset_normalizer-3.3.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:588245972aca710b5b68802c8cad9edaa98589b1b42ad2b53accd6910dad3545"}, + {file = "charset_normalizer-3.3.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e39c7eb31e3f5b1f88caff88bcff1b7f8334975b46f6ac6e9fc725d829bc35d4"}, + {file = "charset_normalizer-3.3.0-cp37-cp37m-win32.whl", hash = "sha256:abecce40dfebbfa6abf8e324e1860092eeca6f7375c8c4e655a8afb61af58f2c"}, + {file = "charset_normalizer-3.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:24a91a981f185721542a0b7c92e9054b7ab4fea0508a795846bc5b0abf8118d4"}, + {file = "charset_normalizer-3.3.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:67b8cc9574bb518ec76dc8e705d4c39ae78bb96237cb533edac149352c1f39fe"}, + {file = "charset_normalizer-3.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ac71b2977fb90c35d41c9453116e283fac47bb9096ad917b8819ca8b943abecd"}, + {file = "charset_normalizer-3.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3ae38d325b512f63f8da31f826e6cb6c367336f95e418137286ba362925c877e"}, + {file = "charset_normalizer-3.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:542da1178c1c6af8873e143910e2269add130a299c9106eef2594e15dae5e482"}, + {file = "charset_normalizer-3.3.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:30a85aed0b864ac88309b7d94be09f6046c834ef60762a8833b660139cfbad13"}, + {file = "charset_normalizer-3.3.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aae32c93e0f64469f74ccc730a7cb21c7610af3a775157e50bbd38f816536b38"}, + {file = "charset_normalizer-3.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b26ddf78d57f1d143bdf32e820fd8935d36abe8a25eb9ec0b5a71c82eb3895"}, + {file = "charset_normalizer-3.3.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7f5d10bae5d78e4551b7be7a9b29643a95aded9d0f602aa2ba584f0388e7a557"}, + {file = "charset_normalizer-3.3.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:249c6470a2b60935bafd1d1d13cd613f8cd8388d53461c67397ee6a0f5dce741"}, + {file = "charset_normalizer-3.3.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:c5a74c359b2d47d26cdbbc7845e9662d6b08a1e915eb015d044729e92e7050b7"}, + {file = "charset_normalizer-3.3.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:b5bcf60a228acae568e9911f410f9d9e0d43197d030ae5799e20dca8df588287"}, + {file = "charset_normalizer-3.3.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:187d18082694a29005ba2944c882344b6748d5be69e3a89bf3cc9d878e548d5a"}, + {file = "charset_normalizer-3.3.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:81bf654678e575403736b85ba3a7867e31c2c30a69bc57fe88e3ace52fb17b89"}, + {file = "charset_normalizer-3.3.0-cp38-cp38-win32.whl", hash = "sha256:85a32721ddde63c9df9ebb0d2045b9691d9750cb139c161c80e500d210f5e26e"}, + {file = "charset_normalizer-3.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:468d2a840567b13a590e67dd276c570f8de00ed767ecc611994c301d0f8c014f"}, + {file = "charset_normalizer-3.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e0fc42822278451bc13a2e8626cf2218ba570f27856b536e00cfa53099724828"}, + {file = "charset_normalizer-3.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:09c77f964f351a7369cc343911e0df63e762e42bac24cd7d18525961c81754f4"}, + {file = "charset_normalizer-3.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:12ebea541c44fdc88ccb794a13fe861cc5e35d64ed689513a5c03d05b53b7c82"}, + {file = "charset_normalizer-3.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:805dfea4ca10411a5296bcc75638017215a93ffb584c9e344731eef0dcfb026a"}, + {file = "charset_normalizer-3.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:96c2b49eb6a72c0e4991d62406e365d87067ca14c1a729a870d22354e6f68115"}, + {file = "charset_normalizer-3.3.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aaf7b34c5bc56b38c931a54f7952f1ff0ae77a2e82496583b247f7c969eb1479"}, + {file = "charset_normalizer-3.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:619d1c96099be5823db34fe89e2582b336b5b074a7f47f819d6b3a57ff7bdb86"}, + {file = "charset_normalizer-3.3.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a0ac5e7015a5920cfce654c06618ec40c33e12801711da6b4258af59a8eff00a"}, + {file = "charset_normalizer-3.3.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:93aa7eef6ee71c629b51ef873991d6911b906d7312c6e8e99790c0f33c576f89"}, + {file = "charset_normalizer-3.3.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7966951325782121e67c81299a031f4c115615e68046f79b85856b86ebffc4cd"}, + {file = "charset_normalizer-3.3.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:02673e456dc5ab13659f85196c534dc596d4ef260e4d86e856c3b2773ce09843"}, + {file = "charset_normalizer-3.3.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:c2af80fb58f0f24b3f3adcb9148e6203fa67dd3f61c4af146ecad033024dde43"}, + {file = "charset_normalizer-3.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:153e7b6e724761741e0974fc4dcd406d35ba70b92bfe3fedcb497226c93b9da7"}, + {file = "charset_normalizer-3.3.0-cp39-cp39-win32.whl", hash = "sha256:d47ecf253780c90ee181d4d871cd655a789da937454045b17b5798da9393901a"}, + {file = "charset_normalizer-3.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:d97d85fa63f315a8bdaba2af9a6a686e0eceab77b3089af45133252618e70884"}, + {file = "charset_normalizer-3.3.0-py3-none-any.whl", hash = "sha256:e46cd37076971c1040fc8c41273a8b3e2c624ce4f2be3f5dfcb7a430c1d3acc2"}, ] [[package]] name = "click" version = "8.1.7" description = "Composable command line interface toolkit" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -419,7 +401,6 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "cloudpickle" version = "2.2.1" description = "Extended pickling support for Python objects" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -431,7 +412,6 @@ files = [ name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -443,7 +423,6 @@ files = [ name = "comm" version = "0.1.4" description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -461,79 +440,80 @@ typing = ["mypy (>=0.990)"] [[package]] name = "coverage" -version = "7.3.1" +version = "7.3.2" description = "Code coverage measurement for Python" -category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "coverage-7.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cd0f7429ecfd1ff597389907045ff209c8fdb5b013d38cfa7c60728cb484b6e3"}, - {file = "coverage-7.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:966f10df9b2b2115da87f50f6a248e313c72a668248be1b9060ce935c871f276"}, - {file = "coverage-7.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0575c37e207bb9b98b6cf72fdaaa18ac909fb3d153083400c2d48e2e6d28bd8e"}, - {file = "coverage-7.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:245c5a99254e83875c7fed8b8b2536f040997a9b76ac4c1da5bff398c06e860f"}, - {file = "coverage-7.3.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c96dd7798d83b960afc6c1feb9e5af537fc4908852ef025600374ff1a017392"}, - {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:de30c1aa80f30af0f6b2058a91505ea6e36d6535d437520067f525f7df123887"}, - {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:50dd1e2dd13dbbd856ffef69196781edff26c800a74f070d3b3e3389cab2600d"}, - {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b9c0c19f70d30219113b18fe07e372b244fb2a773d4afde29d5a2f7930765136"}, - {file = "coverage-7.3.1-cp310-cp310-win32.whl", hash = "sha256:770f143980cc16eb601ccfd571846e89a5fe4c03b4193f2e485268f224ab602f"}, - {file = "coverage-7.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:cdd088c00c39a27cfa5329349cc763a48761fdc785879220d54eb785c8a38520"}, - {file = "coverage-7.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:74bb470399dc1989b535cb41f5ca7ab2af561e40def22d7e188e0a445e7639e3"}, - {file = "coverage-7.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:025ded371f1ca280c035d91b43252adbb04d2aea4c7105252d3cbc227f03b375"}, - {file = "coverage-7.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6191b3a6ad3e09b6cfd75b45c6aeeffe7e3b0ad46b268345d159b8df8d835f9"}, - {file = "coverage-7.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7eb0b188f30e41ddd659a529e385470aa6782f3b412f860ce22b2491c89b8593"}, - {file = "coverage-7.3.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75c8f0df9dfd8ff745bccff75867d63ef336e57cc22b2908ee725cc552689ec8"}, - {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7eb3cd48d54b9bd0e73026dedce44773214064be93611deab0b6a43158c3d5a0"}, - {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ac3c5b7e75acac31e490b7851595212ed951889918d398b7afa12736c85e13ce"}, - {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5b4ee7080878077af0afa7238df1b967f00dc10763f6e1b66f5cced4abebb0a3"}, - {file = "coverage-7.3.1-cp311-cp311-win32.whl", hash = "sha256:229c0dd2ccf956bf5aeede7e3131ca48b65beacde2029f0361b54bf93d36f45a"}, - {file = "coverage-7.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:c6f55d38818ca9596dc9019eae19a47410d5322408140d9a0076001a3dcb938c"}, - {file = "coverage-7.3.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5289490dd1c3bb86de4730a92261ae66ea8d44b79ed3cc26464f4c2cde581fbc"}, - {file = "coverage-7.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ca833941ec701fda15414be400c3259479bfde7ae6d806b69e63b3dc423b1832"}, - {file = "coverage-7.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd694e19c031733e446c8024dedd12a00cda87e1c10bd7b8539a87963685e969"}, - {file = "coverage-7.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aab8e9464c00da5cb9c536150b7fbcd8850d376d1151741dd0d16dfe1ba4fd26"}, - {file = "coverage-7.3.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87d38444efffd5b056fcc026c1e8d862191881143c3aa80bb11fcf9dca9ae204"}, - {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:8a07b692129b8a14ad7a37941a3029c291254feb7a4237f245cfae2de78de037"}, - {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:2829c65c8faaf55b868ed7af3c7477b76b1c6ebeee99a28f59a2cb5907a45760"}, - {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1f111a7d85658ea52ffad7084088277135ec5f368457275fc57f11cebb15607f"}, - {file = "coverage-7.3.1-cp312-cp312-win32.whl", hash = "sha256:c397c70cd20f6df7d2a52283857af622d5f23300c4ca8e5bd8c7a543825baa5a"}, - {file = "coverage-7.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:5ae4c6da8b3d123500f9525b50bf0168023313963e0e2e814badf9000dd6ef92"}, - {file = "coverage-7.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ca70466ca3a17460e8fc9cea7123c8cbef5ada4be3140a1ef8f7b63f2f37108f"}, - {file = "coverage-7.3.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f2781fd3cabc28278dc982a352f50c81c09a1a500cc2086dc4249853ea96b981"}, - {file = "coverage-7.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6407424621f40205bbe6325686417e5e552f6b2dba3535dd1f90afc88a61d465"}, - {file = "coverage-7.3.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:04312b036580ec505f2b77cbbdfb15137d5efdfade09156961f5277149f5e344"}, - {file = "coverage-7.3.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac9ad38204887349853d7c313f53a7b1c210ce138c73859e925bc4e5d8fc18e7"}, - {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:53669b79f3d599da95a0afbef039ac0fadbb236532feb042c534fbb81b1a4e40"}, - {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:614f1f98b84eb256e4f35e726bfe5ca82349f8dfa576faabf8a49ca09e630086"}, - {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f1a317fdf5c122ad642db8a97964733ab7c3cf6009e1a8ae8821089993f175ff"}, - {file = "coverage-7.3.1-cp38-cp38-win32.whl", hash = "sha256:defbbb51121189722420a208957e26e49809feafca6afeef325df66c39c4fdb3"}, - {file = "coverage-7.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:f4f456590eefb6e1b3c9ea6328c1e9fa0f1006e7481179d749b3376fc793478e"}, - {file = "coverage-7.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f12d8b11a54f32688b165fd1a788c408f927b0960984b899be7e4c190ae758f1"}, - {file = "coverage-7.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f09195dda68d94a53123883de75bb97b0e35f5f6f9f3aa5bf6e496da718f0cb6"}, - {file = "coverage-7.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6601a60318f9c3945be6ea0f2a80571f4299b6801716f8a6e4846892737ebe4"}, - {file = "coverage-7.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07d156269718670d00a3b06db2288b48527fc5f36859425ff7cec07c6b367745"}, - {file = "coverage-7.3.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:636a8ac0b044cfeccae76a36f3b18264edcc810a76a49884b96dd744613ec0b7"}, - {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5d991e13ad2ed3aced177f524e4d670f304c8233edad3210e02c465351f785a0"}, - {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:586649ada7cf139445da386ab6f8ef00e6172f11a939fc3b2b7e7c9082052fa0"}, - {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4aba512a15a3e1e4fdbfed2f5392ec221434a614cc68100ca99dcad7af29f3f8"}, - {file = "coverage-7.3.1-cp39-cp39-win32.whl", hash = "sha256:6bc6f3f4692d806831c136c5acad5ccedd0262aa44c087c46b7101c77e139140"}, - {file = "coverage-7.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:553d7094cb27db58ea91332e8b5681bac107e7242c23f7629ab1316ee73c4981"}, - {file = "coverage-7.3.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:220eb51f5fb38dfdb7e5d54284ca4d0cd70ddac047d750111a68ab1798945194"}, - {file = "coverage-7.3.1.tar.gz", hash = "sha256:6cb7fe1581deb67b782c153136541e20901aa312ceedaf1467dcb35255787952"}, -] + {file = "coverage-7.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d872145f3a3231a5f20fd48500274d7df222e291d90baa2026cc5152b7ce86bf"}, + {file = "coverage-7.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:310b3bb9c91ea66d59c53fa4989f57d2436e08f18fb2f421a1b0b6b8cc7fffda"}, + {file = "coverage-7.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f47d39359e2c3779c5331fc740cf4bce6d9d680a7b4b4ead97056a0ae07cb49a"}, + {file = "coverage-7.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aa72dbaf2c2068404b9870d93436e6d23addd8bbe9295f49cbca83f6e278179c"}, + {file = "coverage-7.3.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:beaa5c1b4777f03fc63dfd2a6bd820f73f036bfb10e925fce067b00a340d0f3f"}, + {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:dbc1b46b92186cc8074fee9d9fbb97a9dd06c6cbbef391c2f59d80eabdf0faa6"}, + {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:315a989e861031334d7bee1f9113c8770472db2ac484e5b8c3173428360a9148"}, + {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d1bc430677773397f64a5c88cb522ea43175ff16f8bfcc89d467d974cb2274f9"}, + {file = "coverage-7.3.2-cp310-cp310-win32.whl", hash = "sha256:a889ae02f43aa45032afe364c8ae84ad3c54828c2faa44f3bfcafecb5c96b02f"}, + {file = "coverage-7.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:c0ba320de3fb8c6ec16e0be17ee1d3d69adcda99406c43c0409cb5c41788a611"}, + {file = "coverage-7.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ac8c802fa29843a72d32ec56d0ca792ad15a302b28ca6203389afe21f8fa062c"}, + {file = "coverage-7.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:89a937174104339e3a3ffcf9f446c00e3a806c28b1841c63edb2b369310fd074"}, + {file = "coverage-7.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e267e9e2b574a176ddb983399dec325a80dbe161f1a32715c780b5d14b5f583a"}, + {file = "coverage-7.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2443cbda35df0d35dcfb9bf8f3c02c57c1d6111169e3c85fc1fcc05e0c9f39a3"}, + {file = "coverage-7.3.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4175e10cc8dda0265653e8714b3174430b07c1dca8957f4966cbd6c2b1b8065a"}, + {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0cbf38419fb1a347aaf63481c00f0bdc86889d9fbf3f25109cf96c26b403fda1"}, + {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:5c913b556a116b8d5f6ef834038ba983834d887d82187c8f73dec21049abd65c"}, + {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1981f785239e4e39e6444c63a98da3a1db8e971cb9ceb50a945ba6296b43f312"}, + {file = "coverage-7.3.2-cp311-cp311-win32.whl", hash = "sha256:43668cabd5ca8258f5954f27a3aaf78757e6acf13c17604d89648ecc0cc66640"}, + {file = "coverage-7.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10c39c0452bf6e694511c901426d6b5ac005acc0f78ff265dbe36bf81f808a2"}, + {file = "coverage-7.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:4cbae1051ab791debecc4a5dcc4a1ff45fc27b91b9aee165c8a27514dd160836"}, + {file = "coverage-7.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:12d15ab5833a997716d76f2ac1e4b4d536814fc213c85ca72756c19e5a6b3d63"}, + {file = "coverage-7.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c7bba973ebee5e56fe9251300c00f1579652587a9f4a5ed8404b15a0471f216"}, + {file = "coverage-7.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe494faa90ce6381770746077243231e0b83ff3f17069d748f645617cefe19d4"}, + {file = "coverage-7.3.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6e9589bd04d0461a417562649522575d8752904d35c12907d8c9dfeba588faf"}, + {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d51ac2a26f71da1b57f2dc81d0e108b6ab177e7d30e774db90675467c847bbdf"}, + {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:99b89d9f76070237975b315b3d5f4d6956ae354a4c92ac2388a5695516e47c84"}, + {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fa28e909776dc69efb6ed975a63691bc8172b64ff357e663a1bb06ff3c9b589a"}, + {file = "coverage-7.3.2-cp312-cp312-win32.whl", hash = "sha256:289fe43bf45a575e3ab10b26d7b6f2ddb9ee2dba447499f5401cfb5ecb8196bb"}, + {file = "coverage-7.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7dbc3ed60e8659bc59b6b304b43ff9c3ed858da2839c78b804973f613d3e92ed"}, + {file = "coverage-7.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f94b734214ea6a36fe16e96a70d941af80ff3bfd716c141300d95ebc85339738"}, + {file = "coverage-7.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:af3d828d2c1cbae52d34bdbb22fcd94d1ce715d95f1a012354a75e5913f1bda2"}, + {file = "coverage-7.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:630b13e3036e13c7adc480ca42fa7afc2a5d938081d28e20903cf7fd687872e2"}, + {file = "coverage-7.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9eacf273e885b02a0273bb3a2170f30e2d53a6d53b72dbe02d6701b5296101c"}, + {file = "coverage-7.3.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8f17966e861ff97305e0801134e69db33b143bbfb36436efb9cfff6ec7b2fd9"}, + {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b4275802d16882cf9c8b3d057a0839acb07ee9379fa2749eca54efbce1535b82"}, + {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:72c0cfa5250f483181e677ebc97133ea1ab3eb68645e494775deb6a7f6f83901"}, + {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cb536f0dcd14149425996821a168f6e269d7dcd2c273a8bff8201e79f5104e76"}, + {file = "coverage-7.3.2-cp38-cp38-win32.whl", hash = "sha256:307adb8bd3abe389a471e649038a71b4eb13bfd6b7dd9a129fa856f5c695cf92"}, + {file = "coverage-7.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:88ed2c30a49ea81ea3b7f172e0269c182a44c236eb394718f976239892c0a27a"}, + {file = "coverage-7.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b631c92dfe601adf8f5ebc7fc13ced6bb6e9609b19d9a8cd59fa47c4186ad1ce"}, + {file = "coverage-7.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d3d9df4051c4a7d13036524b66ecf7a7537d14c18a384043f30a303b146164e9"}, + {file = "coverage-7.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f7363d3b6a1119ef05015959ca24a9afc0ea8a02c687fe7e2d557705375c01f"}, + {file = "coverage-7.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2f11cc3c967a09d3695d2a6f03fb3e6236622b93be7a4b5dc09166a861be6d25"}, + {file = "coverage-7.3.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:149de1d2401ae4655c436a3dced6dd153f4c3309f599c3d4bd97ab172eaf02d9"}, + {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3a4006916aa6fee7cd38db3bfc95aa9c54ebb4ffbfc47c677c8bba949ceba0a6"}, + {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9028a3871280110d6e1aa2df1afd5ef003bab5fb1ef421d6dc748ae1c8ef2ebc"}, + {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9f805d62aec8eb92bab5b61c0f07329275b6f41c97d80e847b03eb894f38d083"}, + {file = "coverage-7.3.2-cp39-cp39-win32.whl", hash = "sha256:d1c88ec1a7ff4ebca0219f5b1ef863451d828cccf889c173e1253aa84b1e07ce"}, + {file = "coverage-7.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b4767da59464bb593c07afceaddea61b154136300881844768037fd5e859353f"}, + {file = "coverage-7.3.2-pp38.pp39.pp310-none-any.whl", hash = "sha256:ae97af89f0fbf373400970c0a21eef5aa941ffeed90aee43650b81f7d7f47637"}, + {file = "coverage-7.3.2.tar.gz", hash = "sha256:be32ad29341b0170e795ca590e1c07e81fc061cb5b10c74ce7203491484404ef"}, +] + +[package.dependencies] +tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} [package.extras] toml = ["tomli"] [[package]] name = "dask" -version = "2023.9.1" +version = "2023.10.0" description = "Parallel PyData with Task Scheduling" -category = "main" optional = false python-versions = ">=3.9" files = [ - {file = "dask-2023.9.1-py3-none-any.whl", hash = "sha256:2b1085ef3a54cb8b96cb8651a803e644d77d992198bda2954715fd4fd6cb434c"}, - {file = "dask-2023.9.1.tar.gz", hash = "sha256:782825bbe52c23c5698166aa0cf95cfed02dcb9afa59b0814b69ae58e1bc9686"}, + {file = "dask-2023.10.0-py3-none-any.whl", hash = "sha256:cb133919ff6f1fc021efe1eef24df0e4acecf33a7708e7b04d2dea6b45e166bb"}, + {file = "dask-2023.10.0.tar.gz", hash = "sha256:3fdfdbdb5f9f3a556487bf37142e5a730dab2f2c8eca0b6c79d11199c30220e3"}, ] [package.dependencies] @@ -551,42 +531,40 @@ array = ["numpy (>=1.21)"] complete = ["dask[array,dataframe,diagnostics,distributed]", "lz4 (>=4.3.2)", "pyarrow (>=7.0)"] dataframe = ["dask[array]", "pandas (>=1.3)"] diagnostics = ["bokeh (>=2.4.2)", "jinja2 (>=2.10.3)"] -distributed = ["distributed (==2023.9.1)"] +distributed = ["distributed (==2023.10.0)"] test = ["pandas[test]", "pre-commit", "pytest", "pytest-cov", "pytest-rerunfailures", "pytest-timeout", "pytest-xdist"] [[package]] name = "debugpy" -version = "1.6.7.post1" +version = "1.8.0" description = "An implementation of the Debug Adapter Protocol for Python" -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "debugpy-1.6.7.post1-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:903bd61d5eb433b6c25b48eae5e23821d4c1a19e25c9610205f5aeaccae64e32"}, - {file = "debugpy-1.6.7.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d16882030860081e7dd5aa619f30dec3c2f9a421e69861125f83cc372c94e57d"}, - {file = "debugpy-1.6.7.post1-cp310-cp310-win32.whl", hash = "sha256:eea8d8cfb9965ac41b99a61f8e755a8f50e9a20330938ad8271530210f54e09c"}, - {file = "debugpy-1.6.7.post1-cp310-cp310-win_amd64.whl", hash = "sha256:85969d864c45f70c3996067cfa76a319bae749b04171f2cdeceebe4add316155"}, - {file = "debugpy-1.6.7.post1-cp37-cp37m-macosx_11_0_x86_64.whl", hash = "sha256:890f7ab9a683886a0f185786ffbda3b46495c4b929dab083b8c79d6825832a52"}, - {file = "debugpy-1.6.7.post1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4ac7a4dba28801d184b7fc0e024da2635ca87d8b0a825c6087bb5168e3c0d28"}, - {file = "debugpy-1.6.7.post1-cp37-cp37m-win32.whl", hash = "sha256:3370ef1b9951d15799ef7af41f8174194f3482ee689988379763ef61a5456426"}, - {file = "debugpy-1.6.7.post1-cp37-cp37m-win_amd64.whl", hash = "sha256:65b28435a17cba4c09e739621173ff90c515f7b9e8ea469b92e3c28ef8e5cdfb"}, - {file = "debugpy-1.6.7.post1-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:92b6dae8bfbd497c90596bbb69089acf7954164aea3228a99d7e43e5267f5b36"}, - {file = "debugpy-1.6.7.post1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72f5d2ecead8125cf669e62784ef1e6300f4067b0f14d9f95ee00ae06fc7c4f7"}, - {file = "debugpy-1.6.7.post1-cp38-cp38-win32.whl", hash = "sha256:f0851403030f3975d6e2eaa4abf73232ab90b98f041e3c09ba33be2beda43fcf"}, - {file = "debugpy-1.6.7.post1-cp38-cp38-win_amd64.whl", hash = "sha256:3de5d0f97c425dc49bce4293df6a04494309eedadd2b52c22e58d95107e178d9"}, - {file = "debugpy-1.6.7.post1-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:38651c3639a4e8bbf0ca7e52d799f6abd07d622a193c406be375da4d510d968d"}, - {file = "debugpy-1.6.7.post1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:038c51268367c9c935905a90b1c2d2dbfe304037c27ba9d19fe7409f8cdc710c"}, - {file = "debugpy-1.6.7.post1-cp39-cp39-win32.whl", hash = "sha256:4b9eba71c290852f959d2cf8a03af28afd3ca639ad374d393d53d367f7f685b2"}, - {file = "debugpy-1.6.7.post1-cp39-cp39-win_amd64.whl", hash = "sha256:973a97ed3b434eab0f792719a484566c35328196540676685c975651266fccf9"}, - {file = "debugpy-1.6.7.post1-py2.py3-none-any.whl", hash = "sha256:1093a5c541af079c13ac8c70ab8b24d1d35c8cacb676306cf11e57f699c02926"}, - {file = "debugpy-1.6.7.post1.zip", hash = "sha256:fe87ec0182ef624855d05e6ed7e0b7cb1359d2ffa2a925f8ec2d22e98b75d0ca"}, + {file = "debugpy-1.8.0-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:7fb95ca78f7ac43393cd0e0f2b6deda438ec7c5e47fa5d38553340897d2fbdfb"}, + {file = "debugpy-1.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef9ab7df0b9a42ed9c878afd3eaaff471fce3fa73df96022e1f5c9f8f8c87ada"}, + {file = "debugpy-1.8.0-cp310-cp310-win32.whl", hash = "sha256:a8b7a2fd27cd9f3553ac112f356ad4ca93338feadd8910277aff71ab24d8775f"}, + {file = "debugpy-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:5d9de202f5d42e62f932507ee8b21e30d49aae7e46d5b1dd5c908db1d7068637"}, + {file = "debugpy-1.8.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:ef54404365fae8d45cf450d0544ee40cefbcb9cb85ea7afe89a963c27028261e"}, + {file = "debugpy-1.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60009b132c91951354f54363f8ebdf7457aeb150e84abba5ae251b8e9f29a8a6"}, + {file = "debugpy-1.8.0-cp311-cp311-win32.whl", hash = "sha256:8cd0197141eb9e8a4566794550cfdcdb8b3db0818bdf8c49a8e8f8053e56e38b"}, + {file = "debugpy-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:a64093656c4c64dc6a438e11d59369875d200bd5abb8f9b26c1f5f723622e153"}, + {file = "debugpy-1.8.0-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:b05a6b503ed520ad58c8dc682749113d2fd9f41ffd45daec16e558ca884008cd"}, + {file = "debugpy-1.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c6fb41c98ec51dd010d7ed650accfd07a87fe5e93eca9d5f584d0578f28f35f"}, + {file = "debugpy-1.8.0-cp38-cp38-win32.whl", hash = "sha256:46ab6780159eeabb43c1495d9c84cf85d62975e48b6ec21ee10c95767c0590aa"}, + {file = "debugpy-1.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:bdc5ef99d14b9c0fcb35351b4fbfc06ac0ee576aeab6b2511702e5a648a2e595"}, + {file = "debugpy-1.8.0-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:61eab4a4c8b6125d41a34bad4e5fe3d2cc145caecd63c3fe953be4cc53e65bf8"}, + {file = "debugpy-1.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:125b9a637e013f9faac0a3d6a82bd17c8b5d2c875fb6b7e2772c5aba6d082332"}, + {file = "debugpy-1.8.0-cp39-cp39-win32.whl", hash = "sha256:57161629133113c97b387382045649a2b985a348f0c9366e22217c87b68b73c6"}, + {file = "debugpy-1.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:e3412f9faa9ade82aa64a50b602544efcba848c91384e9f93497a458767e6926"}, + {file = "debugpy-1.8.0-py2.py3-none-any.whl", hash = "sha256:9c9b0ac1ce2a42888199df1a1906e45e6f3c9555497643a85e0bf2406e3ffbc4"}, + {file = "debugpy-1.8.0.zip", hash = "sha256:12af2c55b419521e33d5fb21bd022df0b5eb267c3e178f1d374a63a2a6bdccd0"}, ] [[package]] name = "decorator" version = "5.1.1" description = "Decorators for Humans" -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -598,7 +576,6 @@ files = [ name = "deepmerge" version = "1.1.0" description = "a toolset to deeply merge python dictionaries." -category = "dev" optional = false python-versions = "*" files = [ @@ -606,11 +583,21 @@ files = [ {file = "deepmerge-1.1.0.tar.gz", hash = "sha256:4c27a0db5de285e1a7ceac7dbc1531deaa556b627dea4900c8244581ecdfea2d"}, ] +[[package]] +name = "distlib" +version = "0.3.7" +description = "Distribution utilities" +optional = false +python-versions = "*" +files = [ + {file = "distlib-0.3.7-py2.py3-none-any.whl", hash = "sha256:2e24928bc811348f0feb63014e97aaae3037f2cf48712d51ae61df7fd6075057"}, + {file = "distlib-0.3.7.tar.gz", hash = "sha256:9dafe54b34a028eafd95039d5e5d4851a13734540f1331060d31c9916e7147a8"}, +] + [[package]] name = "docutils" version = "0.18.1" description = "Docutils -- Python Documentation Utilities" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -622,7 +609,6 @@ files = [ name = "et-xmlfile" version = "1.1.0" description = "An implementation of lxml.xmlfile for the standard library" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -634,7 +620,6 @@ files = [ name = "exceptiongroup" version = "1.1.3" description = "Backport of PEP 654 (exception groups)" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -647,105 +632,63 @@ test = ["pytest (>=6)"] [[package]] name = "executing" -version = "1.2.0" +version = "2.0.0" description = "Get the currently executing AST node of a frame, and other information" -category = "dev" optional = false python-versions = "*" files = [ - {file = "executing-1.2.0-py2.py3-none-any.whl", hash = "sha256:0314a69e37426e3608aada02473b4161d4caf5a4b244d1d0c48072b8fee7bacc"}, - {file = "executing-1.2.0.tar.gz", hash = "sha256:19da64c18d2d851112f09c287f8d3dbbdf725ab0e569077efb6cdcbd3497c107"}, + {file = "executing-2.0.0-py2.py3-none-any.whl", hash = "sha256:06df6183df67389625f4e763921c6cf978944721abf3e714000200aab95b0657"}, + {file = "executing-2.0.0.tar.gz", hash = "sha256:0ff053696fdeef426cda5bd18eacd94f82c91f49823a2e9090124212ceea9b08"}, ] [package.extras] -tests = ["asttokens", "littleutils", "pytest", "rich"] +tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] [[package]] name = "fastapi" -version = "0.94.1" +version = "0.104.0" description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" -category = "main" optional = false -python-versions = ">=3.7" -files = [ - {file = "fastapi-0.94.1-py3-none-any.whl", hash = "sha256:451387550c2d25a972193f22e408a82e75a8e7867c834a03076704fe20df3256"}, - {file = "fastapi-0.94.1.tar.gz", hash = "sha256:4a75936dbf9eb74be5eb0d41a793adefe9f3fc6ba66dbdabd160120fd3c2d9cd"}, -] - -[package.dependencies] -pydantic = ">=1.6.2,<1.7 || >1.7,<1.7.1 || >1.7.1,<1.7.2 || >1.7.2,<1.7.3 || >1.7.3,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0" -starlette = ">=0.26.1,<0.27.0" - -[package.extras] -all = ["email-validator (>=1.1.1)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=2.11.2)", "orjson (>=3.2.1)", "python-multipart (>=0.0.5)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] -dev = ["pre-commit (>=2.17.0,<3.0.0)", "ruff (==0.0.138)", "uvicorn[standard] (>=0.12.0,<0.21.0)"] -doc = ["mdx-include (>=1.4.1,<2.0.0)", "mkdocs (>=1.1.2,<2.0.0)", "mkdocs-markdownextradata-plugin (>=0.1.7,<0.3.0)", "mkdocs-material (>=8.1.4,<9.0.0)", "pyyaml (>=5.3.1,<7.0.0)", "typer-cli (>=0.0.13,<0.0.14)", "typer[all] (>=0.6.1,<0.8.0)"] -test = ["anyio[trio] (>=3.2.1,<4.0.0)", "black (==23.1.0)", "coverage[toml] (>=6.5.0,<8.0)", "databases[sqlite] (>=0.3.2,<0.7.0)", "email-validator (>=1.1.1,<2.0.0)", "flask (>=1.1.2,<3.0.0)", "httpx (>=0.23.0,<0.24.0)", "isort (>=5.0.6,<6.0.0)", "mypy (==0.982)", "orjson (>=3.2.1,<4.0.0)", "passlib[bcrypt] (>=1.7.2,<2.0.0)", "peewee (>=3.13.3,<4.0.0)", "pytest (>=7.1.3,<8.0.0)", "python-jose[cryptography] (>=3.3.0,<4.0.0)", "python-multipart (>=0.0.5,<0.0.7)", "pyyaml (>=5.3.1,<7.0.0)", "ruff (==0.0.138)", "sqlalchemy (>=1.3.18,<1.4.43)", "types-orjson (==3.6.2)", "types-ujson (==5.7.0.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0,<6.0.0)"] - -[[package]] -name = "flake8" -version = "6.1.0" -description = "the modular source code checker: pep8 pyflakes and co" -category = "dev" -optional = false -python-versions = ">=3.8.1" -files = [ - {file = "flake8-6.1.0-py2.py3-none-any.whl", hash = "sha256:ffdfce58ea94c6580c77888a86506937f9a1a227dfcd15f245d694ae20a6b6e5"}, - {file = "flake8-6.1.0.tar.gz", hash = "sha256:d5b3857f07c030bdb5bf41c7f53799571d75c4491748a3adcd47de929e34cd23"}, -] - -[package.dependencies] -mccabe = ">=0.7.0,<0.8.0" -pycodestyle = ">=2.11.0,<2.12.0" -pyflakes = ">=3.1.0,<3.2.0" - -[[package]] -name = "flake8-bugbear" -version = "21.11.29" -description = "A plugin for flake8 finding likely bugs and design problems in your program. Contains warnings that don't belong in pyflakes and pycodestyle." -category = "dev" -optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "flake8-bugbear-21.11.29.tar.gz", hash = "sha256:8b04cb2fafc6a78e1a9d873bd3988e4282f7959bb6b0d7c1ae648ec09b937a7b"}, - {file = "flake8_bugbear-21.11.29-py36.py37.py38-none-any.whl", hash = "sha256:179e41ddae5de5e3c20d1f61736feeb234e70958fbb56ab3c28a67739c8e9a82"}, + {file = "fastapi-0.104.0-py3-none-any.whl", hash = "sha256:456482c1178fb7beb2814b88e1885bc49f9a81f079665016feffe3e1c6a7663e"}, + {file = "fastapi-0.104.0.tar.gz", hash = "sha256:9c44de45693ae037b0c6914727a29c49a40668432b67c859a87851fc6a7b74c6"}, ] [package.dependencies] -attrs = ">=19.2.0" -flake8 = ">=3.0.0" +anyio = ">=3.7.1,<4.0.0" +pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0 || >2.0.0,<2.0.1 || >2.0.1,<2.1.0 || >2.1.0,<3.0.0" +starlette = ">=0.27.0,<0.28.0" +typing-extensions = ">=4.8.0" [package.extras] -dev = ["coverage", "hypothesis", "hypothesmith (>=0.2)", "pre-commit"] +all = ["email-validator (>=2.0.0)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=2.11.2)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.5)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] [[package]] -name = "flake8-pyproject" -version = "1.2.3" -description = "Flake8 plug-in loading the configuration from pyproject.toml" -category = "dev" +name = "filelock" +version = "3.12.4" +description = "A platform independent file lock." optional = false -python-versions = ">= 3.6" +python-versions = ">=3.8" files = [ - {file = "flake8_pyproject-1.2.3-py3-none-any.whl", hash = "sha256:6249fe53545205af5e76837644dc80b4c10037e73a0e5db87ff562d75fb5bd4a"}, + {file = "filelock-3.12.4-py3-none-any.whl", hash = "sha256:08c21d87ded6e2b9da6728c3dff51baf1dcecf973b768ef35bcbc3447edb9ad4"}, + {file = "filelock-3.12.4.tar.gz", hash = "sha256:2e6f249f1f3654291606e046b09f1fd5eac39b360664c27f5aad072012f8bcbd"}, ] -[package.dependencies] -Flake8 = ">=5" -TOMLi = {version = "*", markers = "python_version < \"3.11\""} - [package.extras] -dev = ["pyTest", "pyTest-cov"] +docs = ["furo (>=2023.7.26)", "sphinx (>=7.1.2)", "sphinx-autodoc-typehints (>=1.24)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3)", "diff-cover (>=7.7)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-timeout (>=2.1)"] +typing = ["typing-extensions (>=4.7.1)"] [[package]] name = "fsspec" -version = "2023.9.0" +version = "2023.9.2" description = "File-system specification" -category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "fsspec-2023.9.0-py3-none-any.whl", hash = "sha256:d55b9ab2a4c1f2b759888ae9f93e40c2aa72c0808132e87e282b549f9e6c4254"}, - {file = "fsspec-2023.9.0.tar.gz", hash = "sha256:4dbf0fefee035b7c6d3bbbe6bc99b2f201f40d4dca95b67c2b719be77bcd917f"}, + {file = "fsspec-2023.9.2-py3-none-any.whl", hash = "sha256:603dbc52c75b84da501b9b2ec8c11e1f61c25984c4a0dda1f129ef391fbfc9b4"}, + {file = "fsspec-2023.9.2.tar.gz", hash = "sha256:80bfb8c70cc27b2178cc62a935ecf242fc6e8c3fb801f9c571fc01b1e715ba7d"}, ] [package.extras] @@ -774,92 +717,92 @@ tqdm = ["tqdm"] [[package]] name = "greenlet" -version = "2.0.2" +version = "3.0.0" description = "Lightweight in-process concurrent programming" -category = "main" optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" +python-versions = ">=3.7" files = [ - {file = "greenlet-2.0.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:bdfea8c661e80d3c1c99ad7c3ff74e6e87184895bbaca6ee8cc61209f8b9b85d"}, - {file = "greenlet-2.0.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:9d14b83fab60d5e8abe587d51c75b252bcc21683f24699ada8fb275d7712f5a9"}, - {file = "greenlet-2.0.2-cp27-cp27m-win32.whl", hash = "sha256:6c3acb79b0bfd4fe733dff8bc62695283b57949ebcca05ae5c129eb606ff2d74"}, - {file = "greenlet-2.0.2-cp27-cp27m-win_amd64.whl", hash = "sha256:283737e0da3f08bd637b5ad058507e578dd462db259f7f6e4c5c365ba4ee9343"}, - {file = "greenlet-2.0.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:d27ec7509b9c18b6d73f2f5ede2622441de812e7b1a80bbd446cb0633bd3d5ae"}, - {file = "greenlet-2.0.2-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:30bcf80dda7f15ac77ba5af2b961bdd9dbc77fd4ac6105cee85b0d0a5fcf74df"}, - {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26fbfce90728d82bc9e6c38ea4d038cba20b7faf8a0ca53a9c07b67318d46088"}, - {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9190f09060ea4debddd24665d6804b995a9c122ef5917ab26e1566dcc712ceeb"}, - {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d75209eed723105f9596807495d58d10b3470fa6732dd6756595e89925ce2470"}, - {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3a51c9751078733d88e013587b108f1b7a1fb106d402fb390740f002b6f6551a"}, - {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:76ae285c8104046b3a7f06b42f29c7b73f77683df18c49ab5af7983994c2dd91"}, - {file = "greenlet-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:2d4686f195e32d36b4d7cf2d166857dbd0ee9f3d20ae349b6bf8afc8485b3645"}, - {file = "greenlet-2.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c4302695ad8027363e96311df24ee28978162cdcdd2006476c43970b384a244c"}, - {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c48f54ef8e05f04d6eff74b8233f6063cb1ed960243eacc474ee73a2ea8573ca"}, - {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a1846f1b999e78e13837c93c778dcfc3365902cfb8d1bdb7dd73ead37059f0d0"}, - {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a06ad5312349fec0ab944664b01d26f8d1f05009566339ac6f63f56589bc1a2"}, - {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:eff4eb9b7eb3e4d0cae3d28c283dc16d9bed6b193c2e1ace3ed86ce48ea8df19"}, - {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5454276c07d27a740c5892f4907c86327b632127dd9abec42ee62e12427ff7e3"}, - {file = "greenlet-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:7cafd1208fdbe93b67c7086876f061f660cfddc44f404279c1585bbf3cdc64c5"}, - {file = "greenlet-2.0.2-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:910841381caba4f744a44bf81bfd573c94e10b3045ee00de0cbf436fe50673a6"}, - {file = "greenlet-2.0.2-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:18a7f18b82b52ee85322d7a7874e676f34ab319b9f8cce5de06067384aa8ff43"}, - {file = "greenlet-2.0.2-cp35-cp35m-win32.whl", hash = "sha256:03a8f4f3430c3b3ff8d10a2a86028c660355ab637cee9333d63d66b56f09d52a"}, - {file = "greenlet-2.0.2-cp35-cp35m-win_amd64.whl", hash = "sha256:4b58adb399c4d61d912c4c331984d60eb66565175cdf4a34792cd9600f21b394"}, - {file = "greenlet-2.0.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:703f18f3fda276b9a916f0934d2fb6d989bf0b4fb5a64825260eb9bfd52d78f0"}, - {file = "greenlet-2.0.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:32e5b64b148966d9cccc2c8d35a671409e45f195864560829f395a54226408d3"}, - {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dd11f291565a81d71dab10b7033395b7a3a5456e637cf997a6f33ebdf06f8db"}, - {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0f72c9ddb8cd28532185f54cc1453f2c16fb417a08b53a855c4e6a418edd099"}, - {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd021c754b162c0fb55ad5d6b9d960db667faad0fa2ff25bb6e1301b0b6e6a75"}, - {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:3c9b12575734155d0c09d6c3e10dbd81665d5c18e1a7c6597df72fd05990c8cf"}, - {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b9ec052b06a0524f0e35bd8790686a1da006bd911dd1ef7d50b77bfbad74e292"}, - {file = "greenlet-2.0.2-cp36-cp36m-win32.whl", hash = "sha256:dbfcfc0218093a19c252ca8eb9aee3d29cfdcb586df21049b9d777fd32c14fd9"}, - {file = "greenlet-2.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:9f35ec95538f50292f6d8f2c9c9f8a3c6540bbfec21c9e5b4b751e0a7c20864f"}, - {file = "greenlet-2.0.2-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:d5508f0b173e6aa47273bdc0a0b5ba055b59662ba7c7ee5119528f466585526b"}, - {file = "greenlet-2.0.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:f82d4d717d8ef19188687aa32b8363e96062911e63ba22a0cff7802a8e58e5f1"}, - {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9c59a2120b55788e800d82dfa99b9e156ff8f2227f07c5e3012a45a399620b7"}, - {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2780572ec463d44c1d3ae850239508dbeb9fed38e294c68d19a24d925d9223ca"}, - {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:937e9020b514ceedb9c830c55d5c9872abc90f4b5862f89c0887033ae33c6f73"}, - {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:36abbf031e1c0f79dd5d596bfaf8e921c41df2bdf54ee1eed921ce1f52999a86"}, - {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:18e98fb3de7dba1c0a852731c3070cf022d14f0d68b4c87a19cc1016f3bb8b33"}, - {file = "greenlet-2.0.2-cp37-cp37m-win32.whl", hash = "sha256:3f6ea9bd35eb450837a3d80e77b517ea5bc56b4647f5502cd28de13675ee12f7"}, - {file = "greenlet-2.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:7492e2b7bd7c9b9916388d9df23fa49d9b88ac0640db0a5b4ecc2b653bf451e3"}, - {file = "greenlet-2.0.2-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:b864ba53912b6c3ab6bcb2beb19f19edd01a6bfcbdfe1f37ddd1778abfe75a30"}, - {file = "greenlet-2.0.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:ba2956617f1c42598a308a84c6cf021a90ff3862eddafd20c3333d50f0edb45b"}, - {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc3a569657468b6f3fb60587e48356fe512c1754ca05a564f11366ac9e306526"}, - {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8eab883b3b2a38cc1e050819ef06a7e6344d4a990d24d45bc6f2cf959045a45b"}, - {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acd2162a36d3de67ee896c43effcd5ee3de247eb00354db411feb025aa319857"}, - {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0bf60faf0bc2468089bdc5edd10555bab6e85152191df713e2ab1fcc86382b5a"}, - {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b0ef99cdbe2b682b9ccbb964743a6aca37905fda5e0452e5ee239b1654d37f2a"}, - {file = "greenlet-2.0.2-cp38-cp38-win32.whl", hash = "sha256:b80f600eddddce72320dbbc8e3784d16bd3fb7b517e82476d8da921f27d4b249"}, - {file = "greenlet-2.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:4d2e11331fc0c02b6e84b0d28ece3a36e0548ee1a1ce9ddde03752d9b79bba40"}, - {file = "greenlet-2.0.2-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:88d9ab96491d38a5ab7c56dd7a3cc37d83336ecc564e4e8816dbed12e5aaefc8"}, - {file = "greenlet-2.0.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:561091a7be172ab497a3527602d467e2b3fbe75f9e783d8b8ce403fa414f71a6"}, - {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:971ce5e14dc5e73715755d0ca2975ac88cfdaefcaab078a284fea6cfabf866df"}, - {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be4ed120b52ae4d974aa40215fcdfde9194d63541c7ded40ee12eb4dda57b76b"}, - {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94c817e84245513926588caf1152e3b559ff794d505555211ca041f032abbb6b"}, - {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1a819eef4b0e0b96bb0d98d797bef17dc1b4a10e8d7446be32d1da33e095dbb8"}, - {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7efde645ca1cc441d6dc4b48c0f7101e8d86b54c8530141b09fd31cef5149ec9"}, - {file = "greenlet-2.0.2-cp39-cp39-win32.whl", hash = "sha256:ea9872c80c132f4663822dd2a08d404073a5a9b5ba6155bea72fb2a79d1093b5"}, - {file = "greenlet-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:db1a39669102a1d8d12b57de2bb7e2ec9066a6f2b3da35ae511ff93b01b5d564"}, - {file = "greenlet-2.0.2.tar.gz", hash = "sha256:e7c8dc13af7db097bed64a051d2dd49e9f0af495c26995c00a9ee842690d34c0"}, -] - -[package.extras] -docs = ["Sphinx", "docutils (<0.18)"] + {file = "greenlet-3.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e09dea87cc91aea5500262993cbd484b41edf8af74f976719dd83fe724644cd6"}, + {file = "greenlet-3.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f47932c434a3c8d3c86d865443fadc1fbf574e9b11d6650b656e602b1797908a"}, + {file = "greenlet-3.0.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bdfaeecf8cc705d35d8e6de324bf58427d7eafb55f67050d8f28053a3d57118c"}, + {file = "greenlet-3.0.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6a68d670c8f89ff65c82b936275369e532772eebc027c3be68c6b87ad05ca695"}, + {file = "greenlet-3.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38ad562a104cd41e9d4644f46ea37167b93190c6d5e4048fcc4b80d34ecb278f"}, + {file = "greenlet-3.0.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:02a807b2a58d5cdebb07050efe3d7deaf915468d112dfcf5e426d0564aa3aa4a"}, + {file = "greenlet-3.0.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b1660a15a446206c8545edc292ab5c48b91ff732f91b3d3b30d9a915d5ec4779"}, + {file = "greenlet-3.0.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:813720bd57e193391dfe26f4871186cf460848b83df7e23e6bef698a7624b4c9"}, + {file = "greenlet-3.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:aa15a2ec737cb609ed48902b45c5e4ff6044feb5dcdfcf6fa8482379190330d7"}, + {file = "greenlet-3.0.0-cp310-universal2-macosx_11_0_x86_64.whl", hash = "sha256:7709fd7bb02b31908dc8fd35bfd0a29fc24681d5cc9ac1d64ad07f8d2b7db62f"}, + {file = "greenlet-3.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:211ef8d174601b80e01436f4e6905aca341b15a566f35a10dd8d1e93f5dbb3b7"}, + {file = "greenlet-3.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6512592cc49b2c6d9b19fbaa0312124cd4c4c8a90d28473f86f92685cc5fef8e"}, + {file = "greenlet-3.0.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:871b0a8835f9e9d461b7fdaa1b57e3492dd45398e87324c047469ce2fc9f516c"}, + {file = "greenlet-3.0.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b505fcfc26f4148551826a96f7317e02c400665fa0883fe505d4fcaab1dabfdd"}, + {file = "greenlet-3.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:123910c58234a8d40eaab595bc56a5ae49bdd90122dde5bdc012c20595a94c14"}, + {file = "greenlet-3.0.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:96d9ea57292f636ec851a9bb961a5cc0f9976900e16e5d5647f19aa36ba6366b"}, + {file = "greenlet-3.0.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0b72b802496cccbd9b31acea72b6f87e7771ccfd7f7927437d592e5c92ed703c"}, + {file = "greenlet-3.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:527cd90ba3d8d7ae7dceb06fda619895768a46a1b4e423bdb24c1969823b8362"}, + {file = "greenlet-3.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:37f60b3a42d8b5499be910d1267b24355c495064f271cfe74bf28b17b099133c"}, + {file = "greenlet-3.0.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1482fba7fbed96ea7842b5a7fc11d61727e8be75a077e603e8ab49d24e234383"}, + {file = "greenlet-3.0.0-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:be557119bf467d37a8099d91fbf11b2de5eb1fd5fc5b91598407574848dc910f"}, + {file = "greenlet-3.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:73b2f1922a39d5d59cc0e597987300df3396b148a9bd10b76a058a2f2772fc04"}, + {file = "greenlet-3.0.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d1e22c22f7826096ad503e9bb681b05b8c1f5a8138469b255eb91f26a76634f2"}, + {file = "greenlet-3.0.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1d363666acc21d2c204dd8705c0e0457d7b2ee7a76cb16ffc099d6799744ac99"}, + {file = "greenlet-3.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:334ef6ed8337bd0b58bb0ae4f7f2dcc84c9f116e474bb4ec250a8bb9bd797a66"}, + {file = "greenlet-3.0.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6672fdde0fd1a60b44fb1751a7779c6db487e42b0cc65e7caa6aa686874e79fb"}, + {file = "greenlet-3.0.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:952256c2bc5b4ee8df8dfc54fc4de330970bf5d79253c863fb5e6761f00dda35"}, + {file = "greenlet-3.0.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:269d06fa0f9624455ce08ae0179430eea61085e3cf6457f05982b37fd2cefe17"}, + {file = "greenlet-3.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:9adbd8ecf097e34ada8efde9b6fec4dd2a903b1e98037adf72d12993a1c80b51"}, + {file = "greenlet-3.0.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6b5ce7f40f0e2f8b88c28e6691ca6806814157ff05e794cdd161be928550f4c"}, + {file = "greenlet-3.0.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ecf94aa539e97a8411b5ea52fc6ccd8371be9550c4041011a091eb8b3ca1d810"}, + {file = "greenlet-3.0.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80dcd3c938cbcac986c5c92779db8e8ce51a89a849c135172c88ecbdc8c056b7"}, + {file = "greenlet-3.0.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e52a712c38e5fb4fd68e00dc3caf00b60cb65634d50e32281a9d6431b33b4af1"}, + {file = "greenlet-3.0.0-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d5539f6da3418c3dc002739cb2bb8d169056aa66e0c83f6bacae0cd3ac26b423"}, + {file = "greenlet-3.0.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:343675e0da2f3c69d3fb1e894ba0a1acf58f481f3b9372ce1eb465ef93cf6fed"}, + {file = "greenlet-3.0.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:abe1ef3d780de56defd0c77c5ba95e152f4e4c4e12d7e11dd8447d338b85a625"}, + {file = "greenlet-3.0.0-cp37-cp37m-win32.whl", hash = "sha256:e693e759e172fa1c2c90d35dea4acbdd1d609b6936115d3739148d5e4cd11947"}, + {file = "greenlet-3.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:bdd696947cd695924aecb3870660b7545a19851f93b9d327ef8236bfc49be705"}, + {file = "greenlet-3.0.0-cp37-universal2-macosx_11_0_x86_64.whl", hash = "sha256:cc3e2679ea13b4de79bdc44b25a0c4fcd5e94e21b8f290791744ac42d34a0353"}, + {file = "greenlet-3.0.0-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:63acdc34c9cde42a6534518e32ce55c30f932b473c62c235a466469a710bfbf9"}, + {file = "greenlet-3.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a1a6244ff96343e9994e37e5b4839f09a0207d35ef6134dce5c20d260d0302c"}, + {file = "greenlet-3.0.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b822fab253ac0f330ee807e7485769e3ac85d5eef827ca224feaaefa462dc0d0"}, + {file = "greenlet-3.0.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8060b32d8586e912a7b7dac2d15b28dbbd63a174ab32f5bc6d107a1c4143f40b"}, + {file = "greenlet-3.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:621fcb346141ae08cb95424ebfc5b014361621b8132c48e538e34c3c93ac7365"}, + {file = "greenlet-3.0.0-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6bb36985f606a7c49916eff74ab99399cdfd09241c375d5a820bb855dfb4af9f"}, + {file = "greenlet-3.0.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:10b5582744abd9858947d163843d323d0b67be9432db50f8bf83031032bc218d"}, + {file = "greenlet-3.0.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f351479a6914fd81a55c8e68963609f792d9b067fb8a60a042c585a621e0de4f"}, + {file = "greenlet-3.0.0-cp38-cp38-win32.whl", hash = "sha256:9de687479faec7db5b198cc365bc34addd256b0028956501f4d4d5e9ca2e240a"}, + {file = "greenlet-3.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:3fd2b18432e7298fcbec3d39e1a0aa91ae9ea1c93356ec089421fabc3651572b"}, + {file = "greenlet-3.0.0-cp38-universal2-macosx_11_0_x86_64.whl", hash = "sha256:3c0d36f5adc6e6100aedbc976d7428a9f7194ea79911aa4bf471f44ee13a9464"}, + {file = "greenlet-3.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4cd83fb8d8e17633ad534d9ac93719ef8937568d730ef07ac3a98cb520fd93e4"}, + {file = "greenlet-3.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a5b2d4cdaf1c71057ff823a19d850ed5c6c2d3686cb71f73ae4d6382aaa7a06"}, + {file = "greenlet-3.0.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e7dcdfad252f2ca83c685b0fa9fba00e4d8f243b73839229d56ee3d9d219314"}, + {file = "greenlet-3.0.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c94e4e924d09b5a3e37b853fe5924a95eac058cb6f6fb437ebb588b7eda79870"}, + {file = "greenlet-3.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad6fb737e46b8bd63156b8f59ba6cdef46fe2b7db0c5804388a2d0519b8ddb99"}, + {file = "greenlet-3.0.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d55db1db455c59b46f794346efce896e754b8942817f46a1bada2d29446e305a"}, + {file = "greenlet-3.0.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:56867a3b3cf26dc8a0beecdb4459c59f4c47cdd5424618c08515f682e1d46692"}, + {file = "greenlet-3.0.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9a812224a5fb17a538207e8cf8e86f517df2080c8ee0f8c1ed2bdaccd18f38f4"}, + {file = "greenlet-3.0.0-cp39-cp39-win32.whl", hash = "sha256:0d3f83ffb18dc57243e0151331e3c383b05e5b6c5029ac29f754745c800f8ed9"}, + {file = "greenlet-3.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:831d6f35037cf18ca5e80a737a27d822d87cd922521d18ed3dbc8a6967be50ce"}, + {file = "greenlet-3.0.0-cp39-universal2-macosx_11_0_x86_64.whl", hash = "sha256:a048293392d4e058298710a54dfaefcefdf49d287cd33fb1f7d63d55426e4355"}, + {file = "greenlet-3.0.0.tar.gz", hash = "sha256:19834e3f91f485442adc1ee440171ec5d9a4840a1f7bd5ed97833544719ce10b"}, +] + +[package.extras] +docs = ["Sphinx"] test = ["objgraph", "psutil"] [[package]] name = "gunicorn" -version = "20.1.0" +version = "21.2.0" description = "WSGI HTTP Server for UNIX" -category = "dev" optional = false python-versions = ">=3.5" files = [ - {file = "gunicorn-20.1.0-py3-none-any.whl", hash = "sha256:9dcc4547dbb1cb284accfb15ab5667a0e5d1881cc443e0677b4882a4067a807e"}, - {file = "gunicorn-20.1.0.tar.gz", hash = "sha256:e0a968b5ba15f8a328fdfd7ab1fcb5af4470c28aaf7e55df02a99bc13138e6e8"}, + {file = "gunicorn-21.2.0-py3-none-any.whl", hash = "sha256:3213aa5e8c24949e792bcacfc176fef362e7aac80b76c56f6b5122bf350722f0"}, + {file = "gunicorn-21.2.0.tar.gz", hash = "sha256:88ec8bff1d634f98e61b9f65bc4bf3cd918a90806c6f5c48bc5603849ec81033"}, ] [package.dependencies] -setuptools = ">=3.0" +packaging = "*" [package.extras] eventlet = ["eventlet (>=0.24.1)"] @@ -871,7 +814,6 @@ tornado = ["tornado (>=0.2)"] name = "h11" version = "0.14.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -883,7 +825,6 @@ files = [ name = "h2" version = "4.1.0" description = "HTTP/2 State-Machine based protocol implementation" -category = "main" optional = false python-versions = ">=3.6.1" files = [ @@ -899,7 +840,6 @@ hyperframe = ">=6.0,<7" name = "hpack" version = "4.0.0" description = "Pure-Python HPACK header compression" -category = "main" optional = false python-versions = ">=3.6.1" files = [ @@ -909,31 +849,29 @@ files = [ [[package]] name = "httpcore" -version = "0.16.3" +version = "0.18.0" description = "A minimal low-level HTTP client." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "httpcore-0.16.3-py3-none-any.whl", hash = "sha256:da1fb708784a938aa084bde4feb8317056c55037247c787bd7e19eb2c2949dc0"}, - {file = "httpcore-0.16.3.tar.gz", hash = "sha256:c5d6f04e2fc530f39e0c077e6a30caa53f1451096120f1f38b954afd0b17c0cb"}, + {file = "httpcore-0.18.0-py3-none-any.whl", hash = "sha256:adc5398ee0a476567bf87467063ee63584a8bce86078bf748e48754f60202ced"}, + {file = "httpcore-0.18.0.tar.gz", hash = "sha256:13b5e5cd1dca1a6636a6aaea212b19f4f85cd88c366a2b82304181b769aab3c9"}, ] [package.dependencies] anyio = ">=3.0,<5.0" certifi = "*" h11 = ">=0.13,<0.15" -sniffio = ">=1.0.0,<2.0.0" +sniffio = "==1.*" [package.extras] http2 = ["h2 (>=3,<5)"] -socks = ["socksio (>=1.0.0,<2.0.0)"] +socks = ["socksio (==1.*)"] [[package]] name = "httptools" version = "0.6.0" description = "A collection of framework independent HTTP protocol utils." -category = "dev" optional = false python-versions = ">=3.5.0" files = [ @@ -979,34 +917,32 @@ test = ["Cython (>=0.29.24,<0.30.0)"] [[package]] name = "httpx" -version = "0.23.3" +version = "0.25.0" description = "The next generation HTTP client." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "httpx-0.23.3-py3-none-any.whl", hash = "sha256:a211fcce9b1254ea24f0cd6af9869b3d29aba40154e947d2a07bb499b3e310d6"}, - {file = "httpx-0.23.3.tar.gz", hash = "sha256:9818458eb565bb54898ccb9b8b251a28785dd4a55afbc23d0eb410754fe7d0f9"}, + {file = "httpx-0.25.0-py3-none-any.whl", hash = "sha256:181ea7f8ba3a82578be86ef4171554dd45fec26a02556a744db029a0a27b7100"}, + {file = "httpx-0.25.0.tar.gz", hash = "sha256:47ecda285389cb32bb2691cc6e069e3ab0205956f681c5b2ad2325719751d875"}, ] [package.dependencies] certifi = "*" h2 = {version = ">=3,<5", optional = true, markers = "extra == \"http2\""} -httpcore = ">=0.15.0,<0.17.0" -rfc3986 = {version = ">=1.3,<2", extras = ["idna2008"]} +httpcore = ">=0.18.0,<0.19.0" +idna = "*" sniffio = "*" [package.extras] brotli = ["brotli", "brotlicffi"] -cli = ["click (>=8.0.0,<9.0.0)", "pygments (>=2.0.0,<3.0.0)", "rich (>=10,<13)"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] http2 = ["h2 (>=3,<5)"] -socks = ["socksio (>=1.0.0,<2.0.0)"] +socks = ["socksio (==1.*)"] [[package]] name = "hyperframe" version = "6.0.1" description = "HTTP/2 framing layer for Python" -category = "main" optional = false python-versions = ">=3.6.1" files = [ @@ -1014,11 +950,24 @@ files = [ {file = "hyperframe-6.0.1.tar.gz", hash = "sha256:ae510046231dc8e9ecb1a6586f63d2347bf4c8905914aa84ba585ae85f28a914"}, ] +[[package]] +name = "identify" +version = "2.5.30" +description = "File identification library for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "identify-2.5.30-py2.py3-none-any.whl", hash = "sha256:afe67f26ae29bab007ec21b03d4114f41316ab9dd15aa8736a167481e108da54"}, + {file = "identify-2.5.30.tar.gz", hash = "sha256:f302a4256a15c849b91cfcdcec052a8ce914634b2f77ae87dad29cd749f2d88d"}, +] + +[package.extras] +license = ["ukkonen"] + [[package]] name = "idna" version = "3.4" description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1030,7 +979,6 @@ files = [ name = "imagesize" version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1042,7 +990,6 @@ files = [ name = "importlib-metadata" version = "6.8.0" description = "Read metadata from Python packages" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1062,7 +1009,6 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1074,7 +1020,6 @@ files = [ name = "ipykernel" version = "6.25.2" description = "IPython Kernel for Jupyter" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1088,7 +1033,7 @@ comm = ">=0.1.1" debugpy = ">=1.6.5" ipython = ">=7.23.1" jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" matplotlib-inline = ">=0.1" nest-asyncio = "*" packaging = "*" @@ -1106,14 +1051,13 @@ test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio" [[package]] name = "ipython" -version = "8.15.0" +version = "8.16.1" description = "IPython: Productive Interactive Computing" -category = "dev" optional = false python-versions = ">=3.9" files = [ - {file = "ipython-8.15.0-py3-none-any.whl", hash = "sha256:45a2c3a529296870a97b7de34eda4a31bee16bc7bf954e07d39abe49caf8f887"}, - {file = "ipython-8.15.0.tar.gz", hash = "sha256:2baeb5be6949eeebf532150f81746f8333e2ccce02de1c7eedde3f23ed5e9f1e"}, + {file = "ipython-8.16.1-py3-none-any.whl", hash = "sha256:0852469d4d579d9cd613c220af7bf0c9cc251813e12be647cb9d463939db9b1e"}, + {file = "ipython-8.16.1.tar.gz", hash = "sha256:ad52f58fca8f9f848e256c629eff888efc0528c12fe0f8ec14f33205f23ef938"}, ] [package.dependencies] @@ -1144,34 +1088,15 @@ qtconsole = ["qtconsole"] test = ["pytest (<7.1)", "pytest-asyncio", "testpath"] test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pandas", "pytest (<7.1)", "pytest-asyncio", "testpath", "trio"] -[[package]] -name = "isort" -version = "5.12.0" -description = "A Python utility / library to sort Python imports." -category = "dev" -optional = false -python-versions = ">=3.8.0" -files = [ - {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, - {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, -] - -[package.extras] -colors = ["colorama (>=0.4.3)"] -pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib"] -plugins = ["setuptools"] -requirements-deprecated-finder = ["pip-api", "pipreqs"] - [[package]] name = "jedi" -version = "0.19.0" +version = "0.19.1" description = "An autocompletion tool for Python that can be used for text editors." -category = "dev" optional = false python-versions = ">=3.6" files = [ - {file = "jedi-0.19.0-py2.py3-none-any.whl", hash = "sha256:cb8ce23fbccff0025e9386b5cf85e892f94c9b822378f8da49970471335ac64e"}, - {file = "jedi-0.19.0.tar.gz", hash = "sha256:bcf9894f1753969cbac8022a8c2eaee06bfa3724e4192470aaffe7eb6272b0c4"}, + {file = "jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0"}, + {file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"}, ] [package.dependencies] @@ -1180,13 +1105,12 @@ parso = ">=0.8.3,<0.9.0" [package.extras] docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] -testing = ["Django (<3.1)", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] +testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] [[package]] name = "jinja2" version = "3.1.2" description = "A very fast and expressive template engine." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1202,14 +1126,13 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jsonschema" -version = "4.19.0" +version = "4.19.1" description = "An implementation of JSON Schema validation for Python" -category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema-4.19.0-py3-none-any.whl", hash = "sha256:043dc26a3845ff09d20e4420d6012a9c91c9aa8999fa184e7efcfeccb41e32cb"}, - {file = "jsonschema-4.19.0.tar.gz", hash = "sha256:6e1e7569ac13be8139b2dd2c21a55d350066ee3f80df06c608b398cdc6f30e8f"}, + {file = "jsonschema-4.19.1-py3-none-any.whl", hash = "sha256:cd5f1f9ed9444e554b38ba003af06c0a8c2868131e56bfbef0550fb450c0330e"}, + {file = "jsonschema-4.19.1.tar.gz", hash = "sha256:ec84cc37cfa703ef7cd4928db24f9cb31428a5d0fa77747b8b51a847458e0bbf"}, ] [package.dependencies] @@ -1226,7 +1149,6 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- name = "jsonschema-specifications" version = "2023.7.1" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1241,7 +1163,6 @@ referencing = ">=0.28.0" name = "jupyter-client" version = "8.3.1" description = "Jupyter protocol implementation and client libraries" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1250,7 +1171,7 @@ files = [ ] [package.dependencies] -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" python-dateutil = ">=2.8.2" pyzmq = ">=23.0" tornado = ">=6.2" @@ -1262,14 +1183,13 @@ test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pyt [[package]] name = "jupyter-core" -version = "5.3.1" +version = "5.4.0" description = "Jupyter core package. A base package on which Jupyter projects rely." -category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_core-5.3.1-py3-none-any.whl", hash = "sha256:ae9036db959a71ec1cac33081eeb040a79e681f08ab68b0883e9a676c7a90dce"}, - {file = "jupyter_core-5.3.1.tar.gz", hash = "sha256:5ba5c7938a7f97a6b0481463f7ff0dbac7c15ba48cf46fa4035ca6e838aa1aba"}, + {file = "jupyter_core-5.4.0-py3-none-any.whl", hash = "sha256:66e252f675ac04dcf2feb6ed4afb3cd7f68cf92f483607522dc251f32d471571"}, + {file = "jupyter_core-5.4.0.tar.gz", hash = "sha256:e4b98344bb94ee2e3e6c4519a97d001656009f9cb2b7f2baf15b3c205770011d"}, ] [package.dependencies] @@ -1285,7 +1205,6 @@ test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] name = "latexcodec" version = "2.0.1" description = "A lexer and codec to work with LaTeX code in Python." -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1300,7 +1219,6 @@ six = ">=1.4.1" name = "locket" version = "1.0.0" description = "File-based locks for Python on Linux and Windows" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1312,7 +1230,6 @@ files = [ name = "mako" version = "1.2.4" description = "A super-fast templating language that borrows the best ideas from the existing templating languages." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1332,7 +1249,6 @@ testing = ["pytest"] name = "markupsafe" version = "2.1.3" description = "Safely add untrusted strings to HTML/XML markup." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1356,6 +1272,16 @@ files = [ {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, @@ -1392,7 +1318,6 @@ files = [ name = "matplotlib-inline" version = "0.1.6" description = "Inline Matplotlib backend for Jupyter" -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -1403,23 +1328,10 @@ files = [ [package.dependencies] traitlets = "*" -[[package]] -name = "mccabe" -version = "0.7.0" -description = "McCabe checker, plugin for flake8" -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, - {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, -] - [[package]] name = "mistune" version = "2.0.5" description = "A sane Markdown parser with useful plugins and renderers" -category = "dev" optional = false python-versions = "*" files = [ @@ -1428,57 +1340,66 @@ files = [ ] [[package]] -name = "mypy" -version = "1.0.1" -description = "Optional static typing for Python" -category = "main" +name = "multimethod" +version = "1.10" +description = "Multiple argument dispatching." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "mypy-1.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:71a808334d3f41ef011faa5a5cd8153606df5fc0b56de5b2e89566c8093a0c9a"}, - {file = "mypy-1.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:920169f0184215eef19294fa86ea49ffd4635dedfdea2b57e45cb4ee85d5ccaf"}, - {file = "mypy-1.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:27a0f74a298769d9fdc8498fcb4f2beb86f0564bcdb1a37b58cbbe78e55cf8c0"}, - {file = "mypy-1.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:65b122a993d9c81ea0bfde7689b3365318a88bde952e4dfa1b3a8b4ac05d168b"}, - {file = "mypy-1.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:5deb252fd42a77add936b463033a59b8e48eb2eaec2976d76b6878d031933fe4"}, - {file = "mypy-1.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2013226d17f20468f34feddd6aae4635a55f79626549099354ce641bc7d40262"}, - {file = "mypy-1.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:48525aec92b47baed9b3380371ab8ab6e63a5aab317347dfe9e55e02aaad22e8"}, - {file = "mypy-1.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c96b8a0c019fe29040d520d9257d8c8f122a7343a8307bf8d6d4a43f5c5bfcc8"}, - {file = "mypy-1.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:448de661536d270ce04f2d7dddaa49b2fdba6e3bd8a83212164d4174ff43aa65"}, - {file = "mypy-1.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:d42a98e76070a365a1d1c220fcac8aa4ada12ae0db679cb4d910fabefc88b994"}, - {file = "mypy-1.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e64f48c6176e243ad015e995de05af7f22bbe370dbb5b32bd6988438ec873919"}, - {file = "mypy-1.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fdd63e4f50e3538617887e9aee91855368d9fc1dea30da743837b0df7373bc4"}, - {file = "mypy-1.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:dbeb24514c4acbc78d205f85dd0e800f34062efcc1f4a4857c57e4b4b8712bff"}, - {file = "mypy-1.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a2948c40a7dd46c1c33765718936669dc1f628f134013b02ff5ac6c7ef6942bf"}, - {file = "mypy-1.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5bc8d6bd3b274dd3846597855d96d38d947aedba18776aa998a8d46fabdaed76"}, - {file = "mypy-1.0.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:17455cda53eeee0a4adb6371a21dd3dbf465897de82843751cf822605d152c8c"}, - {file = "mypy-1.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e831662208055b006eef68392a768ff83596035ffd6d846786578ba1714ba8f6"}, - {file = "mypy-1.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e60d0b09f62ae97a94605c3f73fd952395286cf3e3b9e7b97f60b01ddfbbda88"}, - {file = "mypy-1.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:0af4f0e20706aadf4e6f8f8dc5ab739089146b83fd53cb4a7e0e850ef3de0bb6"}, - {file = "mypy-1.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:24189f23dc66f83b839bd1cce2dfc356020dfc9a8bae03978477b15be61b062e"}, - {file = "mypy-1.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:93a85495fb13dc484251b4c1fd7a5ac370cd0d812bbfc3b39c1bafefe95275d5"}, - {file = "mypy-1.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f546ac34093c6ce33f6278f7c88f0f147a4849386d3bf3ae193702f4fe31407"}, - {file = "mypy-1.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c6c2ccb7af7154673c591189c3687b013122c5a891bb5651eca3db8e6c6c55bd"}, - {file = "mypy-1.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:15b5a824b58c7c822c51bc66308e759243c32631896743f030daf449fe3677f3"}, - {file = "mypy-1.0.1-py3-none-any.whl", hash = "sha256:eda5c8b9949ed411ff752b9a01adda31afe7eae1e53e946dbdf9db23865e66c4"}, - {file = "mypy-1.0.1.tar.gz", hash = "sha256:28cea5a6392bb43d266782983b5a4216c25544cd7d80be681a155ddcdafd152d"}, + {file = "multimethod-1.10-py3-none-any.whl", hash = "sha256:afd84da9c3d0445c84f827e4d63ad42d17c6d29b122427c6dee9032ac2d2a0d4"}, + {file = "multimethod-1.10.tar.gz", hash = "sha256:daa45af3fe257f73abb69673fd54ddeaf31df0eb7363ad6e1251b7c9b192d8c5"}, ] -[package.dependencies] -mypy-extensions = ">=0.4.3" +[[package]] +name = "mypy" +version = "1.6.1" +description = "Optional static typing for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "mypy-1.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e5012e5cc2ac628177eaac0e83d622b2dd499e28253d4107a08ecc59ede3fc2c"}, + {file = "mypy-1.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d8fbb68711905f8912e5af474ca8b78d077447d8f3918997fecbf26943ff3cbb"}, + {file = "mypy-1.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21a1ad938fee7d2d96ca666c77b7c494c3c5bd88dff792220e1afbebb2925b5e"}, + {file = "mypy-1.6.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b96ae2c1279d1065413965c607712006205a9ac541895004a1e0d4f281f2ff9f"}, + {file = "mypy-1.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:40b1844d2e8b232ed92e50a4bd11c48d2daa351f9deee6c194b83bf03e418b0c"}, + {file = "mypy-1.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:81af8adaa5e3099469e7623436881eff6b3b06db5ef75e6f5b6d4871263547e5"}, + {file = "mypy-1.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8c223fa57cb154c7eab5156856c231c3f5eace1e0bed9b32a24696b7ba3c3245"}, + {file = "mypy-1.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8032e00ce71c3ceb93eeba63963b864bf635a18f6c0c12da6c13c450eedb183"}, + {file = "mypy-1.6.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4c46b51de523817a0045b150ed11b56f9fff55f12b9edd0f3ed35b15a2809de0"}, + {file = "mypy-1.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:19f905bcfd9e167159b3d63ecd8cb5e696151c3e59a1742e79bc3bcb540c42c7"}, + {file = "mypy-1.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:82e469518d3e9a321912955cc702d418773a2fd1e91c651280a1bda10622f02f"}, + {file = "mypy-1.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d4473c22cc296425bbbce7e9429588e76e05bc7342da359d6520b6427bf76660"}, + {file = "mypy-1.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59a0d7d24dfb26729e0a068639a6ce3500e31d6655df8557156c51c1cb874ce7"}, + {file = "mypy-1.6.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:cfd13d47b29ed3bbaafaff7d8b21e90d827631afda134836962011acb5904b71"}, + {file = "mypy-1.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:eb4f18589d196a4cbe5290b435d135dee96567e07c2b2d43b5c4621b6501531a"}, + {file = "mypy-1.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:41697773aa0bf53ff917aa077e2cde7aa50254f28750f9b88884acea38a16169"}, + {file = "mypy-1.6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7274b0c57737bd3476d2229c6389b2ec9eefeb090bbaf77777e9d6b1b5a9d143"}, + {file = "mypy-1.6.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbaf4662e498c8c2e352da5f5bca5ab29d378895fa2d980630656178bd607c46"}, + {file = "mypy-1.6.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bb8ccb4724f7d8601938571bf3f24da0da791fe2db7be3d9e79849cb64e0ae85"}, + {file = "mypy-1.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:68351911e85145f582b5aa6cd9ad666c8958bcae897a1bfda8f4940472463c45"}, + {file = "mypy-1.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:49ae115da099dcc0922a7a895c1eec82c1518109ea5c162ed50e3b3594c71208"}, + {file = "mypy-1.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8b27958f8c76bed8edaa63da0739d76e4e9ad4ed325c814f9b3851425582a3cd"}, + {file = "mypy-1.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:925cd6a3b7b55dfba252b7c4561892311c5358c6b5a601847015a1ad4eb7d332"}, + {file = "mypy-1.6.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8f57e6b6927a49550da3d122f0cb983d400f843a8a82e65b3b380d3d7259468f"}, + {file = "mypy-1.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:a43ef1c8ddfdb9575691720b6352761f3f53d85f1b57d7745701041053deff30"}, + {file = "mypy-1.6.1-py3-none-any.whl", hash = "sha256:4cbe68ef919c28ea561165206a2dcb68591c50f3bcf777932323bc208d949cf1"}, + {file = "mypy-1.6.1.tar.gz", hash = "sha256:4d01c00d09a0be62a4ca3f933e315455bde83f37f892ba4b08ce92f3cf44bcc1"}, +] + +[package.dependencies] +mypy-extensions = ">=1.0.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = ">=3.10" +typing-extensions = ">=4.1.0" [package.extras] dmypy = ["psutil (>=4.0)"] install-types = ["pip"] -python2 = ["typed-ast (>=1.4.0,<2)"] reports = ["lxml"] [[package]] name = "mypy-extensions" version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1488,56 +1409,74 @@ files = [ [[package]] name = "nest-asyncio" -version = "1.5.7" +version = "1.5.8" description = "Patch asyncio to allow nested event loops" -category = "dev" optional = false python-versions = ">=3.5" files = [ - {file = "nest_asyncio-1.5.7-py3-none-any.whl", hash = "sha256:5301c82941b550b3123a1ea772ba9a1c80bad3a182be8c1a5ae6ad3be57a9657"}, - {file = "nest_asyncio-1.5.7.tar.gz", hash = "sha256:6a80f7b98f24d9083ed24608977c09dd608d83f91cccc24c9d2cba6d10e01c10"}, + {file = "nest_asyncio-1.5.8-py3-none-any.whl", hash = "sha256:accda7a339a70599cb08f9dd09a67e0c2ef8d8d6f4c07f96ab203f2ae254e48d"}, + {file = "nest_asyncio-1.5.8.tar.gz", hash = "sha256:25aa2ca0d2a5b5531956b9e273b45cf664cae2b145101d73b86b199978d48fdb"}, +] + +[[package]] +name = "nodeenv" +version = "1.8.0" +description = "Node.js virtual environment builder" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" +files = [ + {file = "nodeenv-1.8.0-py2.py3-none-any.whl", hash = "sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec"}, + {file = "nodeenv-1.8.0.tar.gz", hash = "sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2"}, ] +[package.dependencies] +setuptools = "*" + [[package]] name = "numpy" -version = "1.25.2" +version = "1.26.0" description = "Fundamental package for array computing in Python" -category = "main" optional = false -python-versions = ">=3.9" -files = [ - {file = "numpy-1.25.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:db3ccc4e37a6873045580d413fe79b68e47a681af8db2e046f1dacfa11f86eb3"}, - {file = "numpy-1.25.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:90319e4f002795ccfc9050110bbbaa16c944b1c37c0baeea43c5fb881693ae1f"}, - {file = "numpy-1.25.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfe4a913e29b418d096e696ddd422d8a5d13ffba4ea91f9f60440a3b759b0187"}, - {file = "numpy-1.25.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f08f2e037bba04e707eebf4bc934f1972a315c883a9e0ebfa8a7756eabf9e357"}, - {file = "numpy-1.25.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bec1e7213c7cb00d67093247f8c4db156fd03075f49876957dca4711306d39c9"}, - {file = "numpy-1.25.2-cp310-cp310-win32.whl", hash = "sha256:7dc869c0c75988e1c693d0e2d5b26034644399dd929bc049db55395b1379e044"}, - {file = "numpy-1.25.2-cp310-cp310-win_amd64.whl", hash = "sha256:834b386f2b8210dca38c71a6e0f4fd6922f7d3fcff935dbe3a570945acb1b545"}, - {file = "numpy-1.25.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c5462d19336db4560041517dbb7759c21d181a67cb01b36ca109b2ae37d32418"}, - {file = "numpy-1.25.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c5652ea24d33585ea39eb6a6a15dac87a1206a692719ff45d53c5282e66d4a8f"}, - {file = "numpy-1.25.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d60fbae8e0019865fc4784745814cff1c421df5afee233db6d88ab4f14655a2"}, - {file = "numpy-1.25.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60e7f0f7f6d0eee8364b9a6304c2845b9c491ac706048c7e8cf47b83123b8dbf"}, - {file = "numpy-1.25.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bb33d5a1cf360304754913a350edda36d5b8c5331a8237268c48f91253c3a364"}, - {file = "numpy-1.25.2-cp311-cp311-win32.whl", hash = "sha256:5883c06bb92f2e6c8181df7b39971a5fb436288db58b5a1c3967702d4278691d"}, - {file = "numpy-1.25.2-cp311-cp311-win_amd64.whl", hash = "sha256:5c97325a0ba6f9d041feb9390924614b60b99209a71a69c876f71052521d42a4"}, - {file = "numpy-1.25.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b79e513d7aac42ae918db3ad1341a015488530d0bb2a6abcbdd10a3a829ccfd3"}, - {file = "numpy-1.25.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:eb942bfb6f84df5ce05dbf4b46673ffed0d3da59f13635ea9b926af3deb76926"}, - {file = "numpy-1.25.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e0746410e73384e70d286f93abf2520035250aad8c5714240b0492a7302fdca"}, - {file = "numpy-1.25.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7806500e4f5bdd04095e849265e55de20d8cc4b661b038957354327f6d9b295"}, - {file = "numpy-1.25.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8b77775f4b7df768967a7c8b3567e309f617dd5e99aeb886fa14dc1a0791141f"}, - {file = "numpy-1.25.2-cp39-cp39-win32.whl", hash = "sha256:2792d23d62ec51e50ce4d4b7d73de8f67a2fd3ea710dcbc8563a51a03fb07b01"}, - {file = "numpy-1.25.2-cp39-cp39-win_amd64.whl", hash = "sha256:76b4115d42a7dfc5d485d358728cdd8719be33cc5ec6ec08632a5d6fca2ed380"}, - {file = "numpy-1.25.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:1a1329e26f46230bf77b02cc19e900db9b52f398d6722ca853349a782d4cff55"}, - {file = "numpy-1.25.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c3abc71e8b6edba80a01a52e66d83c5d14433cbcd26a40c329ec7ed09f37901"}, - {file = "numpy-1.25.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:1b9735c27cea5d995496f46a8b1cd7b408b3f34b6d50459d9ac8fe3a20cc17bf"}, - {file = "numpy-1.25.2.tar.gz", hash = "sha256:fd608e19c8d7c55021dffd43bfe5492fab8cc105cc8986f813f8c3c048b38760"}, +python-versions = "<3.13,>=3.9" +files = [ + {file = "numpy-1.26.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f8db2f125746e44dce707dd44d4f4efeea8d7e2b43aace3f8d1f235cfa2733dd"}, + {file = "numpy-1.26.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0621f7daf973d34d18b4e4bafb210bbaf1ef5e0100b5fa750bd9cde84c7ac292"}, + {file = "numpy-1.26.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51be5f8c349fdd1a5568e72713a21f518e7d6707bcf8503b528b88d33b57dc68"}, + {file = "numpy-1.26.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:767254ad364991ccfc4d81b8152912e53e103ec192d1bb4ea6b1f5a7117040be"}, + {file = "numpy-1.26.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:436c8e9a4bdeeee84e3e59614d38c3dbd3235838a877af8c211cfcac8a80b8d3"}, + {file = "numpy-1.26.0-cp310-cp310-win32.whl", hash = "sha256:c2e698cb0c6dda9372ea98a0344245ee65bdc1c9dd939cceed6bb91256837896"}, + {file = "numpy-1.26.0-cp310-cp310-win_amd64.whl", hash = "sha256:09aaee96c2cbdea95de76ecb8a586cb687d281c881f5f17bfc0fb7f5890f6b91"}, + {file = "numpy-1.26.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:637c58b468a69869258b8ae26f4a4c6ff8abffd4a8334c830ffb63e0feefe99a"}, + {file = "numpy-1.26.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:306545e234503a24fe9ae95ebf84d25cba1fdc27db971aa2d9f1ab6bba19a9dd"}, + {file = "numpy-1.26.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c6adc33561bd1d46f81131d5352348350fc23df4d742bb246cdfca606ea1208"}, + {file = "numpy-1.26.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e062aa24638bb5018b7841977c360d2f5917268d125c833a686b7cbabbec496c"}, + {file = "numpy-1.26.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:546b7dd7e22f3c6861463bebb000646fa730e55df5ee4a0224408b5694cc6148"}, + {file = "numpy-1.26.0-cp311-cp311-win32.whl", hash = "sha256:c0b45c8b65b79337dee5134d038346d30e109e9e2e9d43464a2970e5c0e93229"}, + {file = "numpy-1.26.0-cp311-cp311-win_amd64.whl", hash = "sha256:eae430ecf5794cb7ae7fa3808740b015aa80747e5266153128ef055975a72b99"}, + {file = "numpy-1.26.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:166b36197e9debc4e384e9c652ba60c0bacc216d0fc89e78f973a9760b503388"}, + {file = "numpy-1.26.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f042f66d0b4ae6d48e70e28d487376204d3cbf43b84c03bac57e28dac6151581"}, + {file = "numpy-1.26.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5e18e5b14a7560d8acf1c596688f4dfd19b4f2945b245a71e5af4ddb7422feb"}, + {file = "numpy-1.26.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f6bad22a791226d0a5c7c27a80a20e11cfe09ad5ef9084d4d3fc4a299cca505"}, + {file = "numpy-1.26.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4acc65dd65da28060e206c8f27a573455ed724e6179941edb19f97e58161bb69"}, + {file = "numpy-1.26.0-cp312-cp312-win32.whl", hash = "sha256:bb0d9a1aaf5f1cb7967320e80690a1d7ff69f1d47ebc5a9bea013e3a21faec95"}, + {file = "numpy-1.26.0-cp312-cp312-win_amd64.whl", hash = "sha256:ee84ca3c58fe48b8ddafdeb1db87388dce2c3c3f701bf447b05e4cfcc3679112"}, + {file = "numpy-1.26.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4a873a8180479bc829313e8d9798d5234dfacfc2e8a7ac188418189bb8eafbd2"}, + {file = "numpy-1.26.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:914b28d3215e0c721dc75db3ad6d62f51f630cb0c277e6b3bcb39519bed10bd8"}, + {file = "numpy-1.26.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c78a22e95182fb2e7874712433eaa610478a3caf86f28c621708d35fa4fd6e7f"}, + {file = "numpy-1.26.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86f737708b366c36b76e953c46ba5827d8c27b7a8c9d0f471810728e5a2fe57c"}, + {file = "numpy-1.26.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b44e6a09afc12952a7d2a58ca0a2429ee0d49a4f89d83a0a11052da696440e49"}, + {file = "numpy-1.26.0-cp39-cp39-win32.whl", hash = "sha256:5671338034b820c8d58c81ad1dafc0ed5a00771a82fccc71d6438df00302094b"}, + {file = "numpy-1.26.0-cp39-cp39-win_amd64.whl", hash = "sha256:020cdbee66ed46b671429c7265cf00d8ac91c046901c55684954c3958525dab2"}, + {file = "numpy-1.26.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0792824ce2f7ea0c82ed2e4fecc29bb86bee0567a080dacaf2e0a01fe7654369"}, + {file = "numpy-1.26.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d484292eaeb3e84a51432a94f53578689ffdea3f90e10c8b203a99be5af57d8"}, + {file = "numpy-1.26.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:186ba67fad3c60dbe8a3abff3b67a91351100f2661c8e2a80364ae6279720299"}, + {file = "numpy-1.26.0.tar.gz", hash = "sha256:f93fc78fe8bf15afe2b8d6b6499f1c73953169fad1e9a8dd086cdff3190e7fdf"}, ] [[package]] name = "openpyxl" version = "3.1.2" description = "A Python library to read/write Excel 2010 xlsx/xlsm files" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1550,49 +1489,53 @@ et-xmlfile = "*" [[package]] name = "packaging" -version = "23.1" +version = "23.2" description = "Core utilities for Python packages" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, - {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, + {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, + {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, ] [[package]] name = "pandas" -version = "2.1.0" +version = "2.1.1" description = "Powerful data structures for data analysis, time series, and statistics" -category = "main" optional = false python-versions = ">=3.9" files = [ - {file = "pandas-2.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:40dd20439ff94f1b2ed55b393ecee9cb6f3b08104c2c40b0cb7186a2f0046242"}, - {file = "pandas-2.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d4f38e4fedeba580285eaac7ede4f686c6701a9e618d8a857b138a126d067f2f"}, - {file = "pandas-2.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e6a0fe052cf27ceb29be9429428b4918f3740e37ff185658f40d8702f0b3e09"}, - {file = "pandas-2.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d81e1813191070440d4c7a413cb673052b3b4a984ffd86b8dd468c45742d3cc"}, - {file = "pandas-2.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:eb20252720b1cc1b7d0b2879ffc7e0542dd568f24d7c4b2347cb035206936421"}, - {file = "pandas-2.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:38f74ef7ebc0ffb43b3d633e23d74882bce7e27bfa09607f3c5d3e03ffd9a4a5"}, - {file = "pandas-2.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cda72cc8c4761c8f1d97b169661f23a86b16fdb240bdc341173aee17e4d6cedd"}, - {file = "pandas-2.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d97daeac0db8c993420b10da4f5f5b39b01fc9ca689a17844e07c0a35ac96b4b"}, - {file = "pandas-2.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8c58b1113892e0c8078f006a167cc210a92bdae23322bb4614f2f0b7a4b510f"}, - {file = "pandas-2.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:629124923bcf798965b054a540f9ccdfd60f71361255c81fa1ecd94a904b9dd3"}, - {file = "pandas-2.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:70cf866af3ab346a10debba8ea78077cf3a8cd14bd5e4bed3d41555a3280041c"}, - {file = "pandas-2.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:d53c8c1001f6a192ff1de1efe03b31a423d0eee2e9e855e69d004308e046e694"}, - {file = "pandas-2.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:86f100b3876b8c6d1a2c66207288ead435dc71041ee4aea789e55ef0e06408cb"}, - {file = "pandas-2.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28f330845ad21c11db51e02d8d69acc9035edfd1116926ff7245c7215db57957"}, - {file = "pandas-2.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9a6ccf0963db88f9b12df6720e55f337447aea217f426a22d71f4213a3099a6"}, - {file = "pandas-2.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d99e678180bc59b0c9443314297bddce4ad35727a1a2656dbe585fd78710b3b9"}, - {file = "pandas-2.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b31da36d376d50a1a492efb18097b9101bdbd8b3fbb3f49006e02d4495d4c644"}, - {file = "pandas-2.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:0164b85937707ec7f70b34a6c3a578dbf0f50787f910f21ca3b26a7fd3363437"}, - {file = "pandas-2.1.0.tar.gz", hash = "sha256:62c24c7fc59e42b775ce0679cfa7b14a5f9bfb7643cfbe708c960699e05fb918"}, + {file = "pandas-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:58d997dbee0d4b64f3cb881a24f918b5f25dd64ddf31f467bb9b67ae4c63a1e4"}, + {file = "pandas-2.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02304e11582c5d090e5a52aec726f31fe3f42895d6bfc1f28738f9b64b6f0614"}, + {file = "pandas-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffa8f0966de2c22de408d0e322db2faed6f6e74265aa0856f3824813cf124363"}, + {file = "pandas-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1f84c144dee086fe4f04a472b5cd51e680f061adf75c1ae4fc3a9275560f8f4"}, + {file = "pandas-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:75ce97667d06d69396d72be074f0556698c7f662029322027c226fd7a26965cb"}, + {file = "pandas-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:4c3f32fd7c4dccd035f71734df39231ac1a6ff95e8bdab8d891167197b7018d2"}, + {file = "pandas-2.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9e2959720b70e106bb1d8b6eadd8ecd7c8e99ccdbe03ee03260877184bb2877d"}, + {file = "pandas-2.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:25e8474a8eb258e391e30c288eecec565bfed3e026f312b0cbd709a63906b6f8"}, + {file = "pandas-2.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b8bd1685556f3374520466998929bade3076aeae77c3e67ada5ed2b90b4de7f0"}, + {file = "pandas-2.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc3657869c7902810f32bd072f0740487f9e030c1a3ab03e0af093db35a9d14e"}, + {file = "pandas-2.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:05674536bd477af36aa2effd4ec8f71b92234ce0cc174de34fd21e2ee99adbc2"}, + {file = "pandas-2.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:b407381258a667df49d58a1b637be33e514b07f9285feb27769cedb3ab3d0b3a"}, + {file = "pandas-2.1.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c747793c4e9dcece7bb20156179529898abf505fe32cb40c4052107a3c620b49"}, + {file = "pandas-2.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3bcad1e6fb34b727b016775bea407311f7721db87e5b409e6542f4546a4951ea"}, + {file = "pandas-2.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5ec7740f9ccb90aec64edd71434711f58ee0ea7f5ed4ac48be11cfa9abf7317"}, + {file = "pandas-2.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:29deb61de5a8a93bdd033df328441a79fcf8dd3c12d5ed0b41a395eef9cd76f0"}, + {file = "pandas-2.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4f99bebf19b7e03cf80a4e770a3e65eee9dd4e2679039f542d7c1ace7b7b1daa"}, + {file = "pandas-2.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:84e7e910096416adec68075dc87b986ff202920fb8704e6d9c8c9897fe7332d6"}, + {file = "pandas-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:366da7b0e540d1b908886d4feb3d951f2f1e572e655c1160f5fde28ad4abb750"}, + {file = "pandas-2.1.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9e50e72b667415a816ac27dfcfe686dc5a0b02202e06196b943d54c4f9c7693e"}, + {file = "pandas-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc1ab6a25da197f03ebe6d8fa17273126120874386b4ac11c1d687df288542dd"}, + {file = "pandas-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0dbfea0dd3901ad4ce2306575c54348d98499c95be01b8d885a2737fe4d7a98"}, + {file = "pandas-2.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0489b0e6aa3d907e909aef92975edae89b1ee1654db5eafb9be633b0124abe97"}, + {file = "pandas-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:4cdb0fab0400c2cb46dafcf1a0fe084c8bb2480a1fa8d81e19d15e12e6d4ded2"}, + {file = "pandas-2.1.1.tar.gz", hash = "sha256:fecb198dc389429be557cde50a2d46da8434a17fe37d7d41ff102e3987fd947b"}, ] [package.dependencies] numpy = [ {version = ">=1.22.4", markers = "python_version < \"3.11\""}, - {version = ">=1.23.2", markers = "python_version >= \"3.11\""}, + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, ] python-dateutil = ">=2.8.2" pytz = ">=2020.1" @@ -1622,37 +1565,53 @@ sql-other = ["SQLAlchemy (>=1.4.36)"] test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)"] xml = ["lxml (>=4.8.0)"] +[[package]] +name = "pandas-stubs" +version = "2.1.1.230928" +description = "Type annotations for pandas" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pandas_stubs-2.1.1.230928-py3-none-any.whl", hash = "sha256:992d97159e054ca3175ebe8321ac5616cf6502dd8218b03bb0eaf3c4f6939037"}, + {file = "pandas_stubs-2.1.1.230928.tar.gz", hash = "sha256:ce1691c71c5d67b8f332da87763f7f54650f46895d99964d588c3a5d79e2cacc"}, +] + +[package.dependencies] +numpy = {version = ">=1.26.0", markers = "python_version < \"3.13\""} +types-pytz = ">=2022.1.1" + [[package]] name = "pandera" -version = "0.13.4" +version = "0.17.2" description = "A light-weight and flexible data validation and testing tool for statistical data objects." -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "pandera-0.13.4-py3-none-any.whl", hash = "sha256:9e91687861406284270add1d467f204630377892e7a4b45809bb7546f0013153"}, - {file = "pandera-0.13.4.tar.gz", hash = "sha256:6ef2b7ee00d3439ac815d4347984421a08502da1020cec60c06dd0135e8aee2f"}, + {file = "pandera-0.17.2-py3-none-any.whl", hash = "sha256:8e4e7b279c62f6d4b5109801544bf8d46e1c9fdf7ceceb8fedd5f3dad0c1bea1"}, + {file = "pandera-0.17.2.tar.gz", hash = "sha256:67515984f855ba14d12443f893b5ff90ae6796f613d5f3df43abad406a48c373"}, ] [package.dependencies] +multimethod = "*" numpy = ">=1.19.0" packaging = ">=20.0" pandas = ">=1.2.0" pydantic = "*" +typeguard = ">=3.0.2" typing-inspect = ">=0.6.0" wrapt = "*" [package.extras] -all = ["black", "dask", "fastapi", "frictionless", "geopandas", "hypothesis (>=5.41.1)", "modin", "pandas-stubs (<=1.4.3.220807)", "pyspark (>=3.2.0)", "pyyaml (>=5.1)", "ray (<=1.7.0)", "scipy", "shapely"] +all = ["black", "dask", "fastapi", "frictionless (<=4.40.8)", "geopandas", "hypothesis (>=5.41.1)", "modin", "pandas-stubs", "pyspark (>=3.2.0)", "pyyaml (>=5.1)", "ray", "scipy", "shapely"] dask = ["dask"] fastapi = ["fastapi"] geopandas = ["geopandas", "shapely"] hypotheses = ["scipy"] -io = ["black", "frictionless", "pyyaml (>=5.1)"] -modin = ["dask", "modin", "ray (<=1.7.0)"] +io = ["black", "frictionless (<=4.40.8)", "pyyaml (>=5.1)"] +modin = ["dask", "modin", "ray"] modin-dask = ["dask", "modin"] -modin-ray = ["modin", "ray (<=1.7.0)"] -mypy = ["pandas-stubs (<=1.4.3.220807)"] +modin-ray = ["modin", "ray"] +mypy = ["pandas-stubs"] pyspark = ["pyspark (>=3.2.0)"] strategies = ["hypothesis (>=5.41.1)"] @@ -1660,7 +1619,6 @@ strategies = ["hypothesis (>=5.41.1)"] name = "parso" version = "0.8.3" description = "A Python Parser" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1674,14 +1632,13 @@ testing = ["docopt", "pytest (<6.0.0)"] [[package]] name = "partd" -version = "1.4.0" +version = "1.4.1" description = "Appendable key-value storage" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "partd-1.4.0-py3-none-any.whl", hash = "sha256:7a63529348cf0dff14b986db641cd1b83c16b5cb9fc647c2851779db03282ef8"}, - {file = "partd-1.4.0.tar.gz", hash = "sha256:aa0ff35dbbcc807ae374db56332f4c1b39b46f67bf2975f5151e0b4186aed0d5"}, + {file = "partd-1.4.1-py3-none-any.whl", hash = "sha256:27e766663d36c161e2827aa3e28541c992f0b9527d3cca047e13fb3acdb989e6"}, + {file = "partd-1.4.1.tar.gz", hash = "sha256:56c25dd49e6fea5727e731203c466c6e092f308d8f0024e199d02f6aa2167f67"}, ] [package.dependencies] @@ -1695,7 +1652,6 @@ complete = ["blosc", "numpy (>=1.9.0)", "pandas (>=0.19.0)", "pyzmq"] name = "pathspec" version = "0.11.2" description = "Utility library for gitignore style pattern matching of file paths." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1707,7 +1663,6 @@ files = [ name = "pexpect" version = "4.8.0" description = "Pexpect allows easy control of interactive console applications." -category = "dev" optional = false python-versions = "*" files = [ @@ -1722,7 +1677,6 @@ ptyprocess = ">=0.5" name = "pickleshare" version = "0.7.5" description = "Tiny 'shelve'-like database with concurrency support" -category = "dev" optional = false python-versions = "*" files = [ @@ -1734,7 +1688,6 @@ files = [ name = "picobox" version = "3.0.0" description = "Dependency injection framework designed with Python in mind." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1744,14 +1697,13 @@ files = [ [[package]] name = "platformdirs" -version = "3.10.0" +version = "3.11.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "platformdirs-3.10.0-py3-none-any.whl", hash = "sha256:d7c24979f292f916dc9cbf8648319032f551ea8c49a4c9bf2fb556a02070ec1d"}, - {file = "platformdirs-3.10.0.tar.gz", hash = "sha256:b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d"}, + {file = "platformdirs-3.11.0-py3-none-any.whl", hash = "sha256:e9d171d00af68be50e9202731309c4e658fd8bc76f55c11c7dd760d023bda68e"}, + {file = "platformdirs-3.11.0.tar.gz", hash = "sha256:cf8ee52a3afdb965072dcc652433e0c7e3e40cf5ea1477cd4b3b1d2eb75495b3"}, ] [package.extras] @@ -1762,7 +1714,6 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-co name = "pluggy" version = "1.3.0" description = "plugin and hook calling mechanisms for python" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1774,11 +1725,28 @@ files = [ dev = ["pre-commit", "tox"] testing = ["pytest", "pytest-benchmark"] +[[package]] +name = "pre-commit" +version = "3.5.0" +description = "A framework for managing and maintaining multi-language pre-commit hooks." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pre_commit-3.5.0-py2.py3-none-any.whl", hash = "sha256:841dc9aef25daba9a0238cd27984041fa0467b4199fc4852e27950664919f660"}, + {file = "pre_commit-3.5.0.tar.gz", hash = "sha256:5804465c675b659b0862f07907f96295d490822a450c4c40e747d0b1c6ebcb32"}, +] + +[package.dependencies] +cfgv = ">=2.0.0" +identify = ">=1.0.0" +nodeenv = ">=0.11.1" +pyyaml = ">=5.1" +virtualenv = ">=20.10.0" + [[package]] name = "prompt-toolkit" version = "3.0.39" description = "Library for building powerful interactive command lines in Python" -category = "dev" optional = false python-versions = ">=3.7.0" files = [ @@ -1793,7 +1761,6 @@ wcwidth = "*" name = "psutil" version = "5.9.5" description = "Cross-platform lib for process and system monitoring in Python." -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1818,98 +1785,106 @@ test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] [[package]] name = "psycopg" -version = "3.1.10" +version = "3.1.12" description = "PostgreSQL database adapter for Python" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "psycopg-3.1.10-py3-none-any.whl", hash = "sha256:8bbeddae5075c7890b2fa3e3553440376d3c5e28418335dee3c3656b06fa2b52"}, - {file = "psycopg-3.1.10.tar.gz", hash = "sha256:15b25741494344c24066dc2479b0f383dd1b82fa5e75612fa4fa5bb30726e9b6"}, + {file = "psycopg-3.1.12-py3-none-any.whl", hash = "sha256:8ec5230d6a7eb654b4fb3cf2d3eda8871d68f24807b934790504467f1deee9f8"}, + {file = "psycopg-3.1.12.tar.gz", hash = "sha256:cec7ad2bc6a8510e56c45746c631cf9394148bdc8a9a11fd8cf8554ce129ae78"}, ] [package.dependencies] -psycopg-binary = {version = "3.1.10", optional = true, markers = "extra == \"binary\""} +psycopg-binary = {version = "3.1.12", optional = true, markers = "extra == \"binary\""} typing-extensions = ">=4.1" tzdata = {version = "*", markers = "sys_platform == \"win32\""} [package.extras] -binary = ["psycopg-binary (==3.1.10)"] -c = ["psycopg-c (==3.1.10)"] +binary = ["psycopg-binary (==3.1.12)"] +c = ["psycopg-c (==3.1.12)"] dev = ["black (>=23.1.0)", "dnspython (>=2.1)", "flake8 (>=4.0)", "mypy (>=1.4.1)", "types-setuptools (>=57.4)", "wheel (>=0.37)"] docs = ["Sphinx (>=5.0)", "furo (==2022.6.21)", "sphinx-autobuild (>=2021.3.14)", "sphinx-autodoc-typehints (>=1.12)"] pool = ["psycopg-pool"] -test = ["anyio (>=3.6.2)", "mypy (>=1.4.1)", "pproxy (>=2.7)", "pytest (>=6.2.5)", "pytest-cov (>=3.0)", "pytest-randomly (>=3.5)"] +test = ["anyio (>=3.6.2,<4.0)", "mypy (>=1.4.1)", "pproxy (>=2.7)", "pytest (>=6.2.5)", "pytest-cov (>=3.0)", "pytest-randomly (>=3.5)"] [[package]] name = "psycopg-binary" -version = "3.1.10" +version = "3.1.12" description = "PostgreSQL database adapter for Python -- C optimisation distribution" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "psycopg_binary-3.1.10-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a529c203f6e0f4c67ba27cf8f9739eb3bc880ad70d6ad6c0e56c2230a66b5a09"}, - {file = "psycopg_binary-3.1.10-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:bd6e14d1aeb12754a43446c77a5ce819b68875cc25ae6538089ef90d7f6dd6f7"}, - {file = "psycopg_binary-3.1.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1583ced5948cf88124212c4503dfe5b01ac3e2dd1a2833c083917f4c4aabe8b4"}, - {file = "psycopg_binary-3.1.10-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2098721c486478987be700723b28ec7a48f134eba339de36af0e745f37dfe461"}, - {file = "psycopg_binary-3.1.10-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7e61f7b412fca7b15dd043a0b22fd528d2ed8276e76b3764c3889e29fa65082b"}, - {file = "psycopg_binary-3.1.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0f33e33a072e3d5af51ee4d4a439e10dbe623fe87ef295d5d688180d529f13f"}, - {file = "psycopg_binary-3.1.10-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f6f7738c59262d8d19154164d99c881ed58ed377fb6f1d685eb0dc43bbcd8022"}, - {file = "psycopg_binary-3.1.10-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:511d38b1e1961d179d47d5103ba9634ecfc7ead431d19a9337ef82f3a2bca807"}, - {file = "psycopg_binary-3.1.10-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:666e7acf2ffdb5e8a58e8b0c1759facdb9688c7e90ee8ca7aed675803b57404d"}, - {file = "psycopg_binary-3.1.10-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:57b93c756fee5f7c7bd580c34cd5d244f7d5638f8b2cf25333f97b9b8b2ebfd1"}, - {file = "psycopg_binary-3.1.10-cp310-cp310-win_amd64.whl", hash = "sha256:a1d61b7724c7215a8ea4495a5c6b704656f4b7bb6165f4cb9989b685886ebc48"}, - {file = "psycopg_binary-3.1.10-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:36fff836a7823c9d71fa7faa333c74b2b081af216cebdbb0f481dce55ee2d974"}, - {file = "psycopg_binary-3.1.10-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:32caf98cb00881bfcbbbae39a15f2a4e08b79ff983f1c0f13b60a888ef6e8431"}, - {file = "psycopg_binary-3.1.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5565a6a86fee8d74f30de89e07f399567cdf59367aeb09624eb690d524339076"}, - {file = "psycopg_binary-3.1.10-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9fb0d64520b29bd80a6731476ad8e1c20348dfdee00ab098899d23247b641675"}, - {file = "psycopg_binary-3.1.10-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfc05ed4e74fa8615d7cc2bd57f00f97662f4e865a731dbd43da9a527e289c8c"}, - {file = "psycopg_binary-3.1.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c5b59c8cff887757ddf438ff9489d79c5e6b717112c96f5c68e16f367ff8724e"}, - {file = "psycopg_binary-3.1.10-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a4cbaf12361136afefc5faab21a174a437e71c803b083f410e5140c7605bc66b"}, - {file = "psycopg_binary-3.1.10-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ff72576061c774bcce5f5440b93e63d4c430032dd056d30f6cb1988e549dd92c"}, - {file = "psycopg_binary-3.1.10-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:a4e91e1a8d61c60f592a1dfcebdf55e52a29fe4fdb650c5bd5414c848e77d029"}, - {file = "psycopg_binary-3.1.10-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f7187269d825e84c945be7d93dd5088a4e0b6481a4bdaba3bf7069d4ac13703d"}, - {file = "psycopg_binary-3.1.10-cp311-cp311-win_amd64.whl", hash = "sha256:ba7812a593c16d9d661844dc8dd4d81548fd1c2a0ee676f3e3d8638369f4c5e4"}, - {file = "psycopg_binary-3.1.10-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:88caa5859740507b3596c6c2e00ceaccee2c6ab5317bc535887801ad3cc7f3e1"}, - {file = "psycopg_binary-3.1.10-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a3a7e99ba10c2e83a48d79431560e0d5ca7865f68f2bac3a462dc2b151e9926"}, - {file = "psycopg_binary-3.1.10-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:848f4f4707dc73f4b4e844c92f3de795b2ddb728f75132602bda5e6ba55084fc"}, - {file = "psycopg_binary-3.1.10-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:415961e839bb49cfd75cd961503fb8846c0768f247db1fa7171c1ac61d38711b"}, - {file = "psycopg_binary-3.1.10-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0471869e658d0c6b8c3ed53153794739c18d7dad2dd5b8e6ff023a364c20f7df"}, - {file = "psycopg_binary-3.1.10-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:4290060ee0d856caa979ecf675c0e6959325f508272ccf27f64c3801c7bcbde7"}, - {file = "psycopg_binary-3.1.10-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:abf04bc06c8f6a1ac3dc2106d3b79c8661352e9d8a57ca2934ffa6aae8fe600a"}, - {file = "psycopg_binary-3.1.10-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:51fe70708243b83bf16710d8c11b61bd46562e6a24a6300d5434380b35911059"}, - {file = "psycopg_binary-3.1.10-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8b658f7f8b49fb60a1c52e3f6692f690a85bdf1ad30aafe0f3f1fd74f6958cf8"}, - {file = "psycopg_binary-3.1.10-cp37-cp37m-win_amd64.whl", hash = "sha256:ffc8c796194f23b9b07f6d25f927ec4df84a194bbc7a1f9e73316734eef512f9"}, - {file = "psycopg_binary-3.1.10-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:74ce92122be34cf0e5f06d79869e1001c8421a68fa7ddf6fe38a717155cf3a64"}, - {file = "psycopg_binary-3.1.10-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:75608a900984061c8898be68fbddc6f3da5eefdffce6e0624f5371645740d172"}, - {file = "psycopg_binary-3.1.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6670d160d054466e8fdedfbc749ef8bf7dfdf69296048954d24645dd4d3d3c01"}, - {file = "psycopg_binary-3.1.10-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d32026cfab7ba7ac687a42c33345026a2fb6fc5608a6144077f767af4386be0b"}, - {file = "psycopg_binary-3.1.10-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:908fa388a5b75dfd17a937acb24708bd272e21edefca9a495004c6f70ec2636a"}, - {file = "psycopg_binary-3.1.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e46b97073bd4de114f475249d681eaf054e950699c5d7af554d3684db39b82d"}, - {file = "psycopg_binary-3.1.10-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9cf56bb4b115def3a18157f3b3b7d8322ee94a8dea30028db602c8f9ae34ad1e"}, - {file = "psycopg_binary-3.1.10-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3b6c6f90241c4c5a6ca3f0d8827e37ef90fdc4deb9d8cfa5678baa0ea374b391"}, - {file = "psycopg_binary-3.1.10-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:747176a6aeb058079f56c5397bd90339581ab7b3cc0d62e7445654e6a484c7e1"}, - {file = "psycopg_binary-3.1.10-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:41a415e78c457b06497fa0084e4ea7245ca1a377b55756dd757034210b64da7e"}, - {file = "psycopg_binary-3.1.10-cp38-cp38-win_amd64.whl", hash = "sha256:a7bbe9017edd898d7b3a8747700ed045dda96a907dff87f45e642e28d8584481"}, - {file = "psycopg_binary-3.1.10-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0f062f20256708929a58c41d44f350efced4c00a603323d1413f6dc0b84d95a5"}, - {file = "psycopg_binary-3.1.10-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dea30f2704337ca2d0322fccfe1fa30f61ce9185de3937eb986321063114a51f"}, - {file = "psycopg_binary-3.1.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9d88ac72531034ebf7ec09114e732b066a9078f4ce213cf65cc5e42eb538d30"}, - {file = "psycopg_binary-3.1.10-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2bea0940d69c3e24a72530730952687912893b34c53aa39e79045e7b446174d"}, - {file = "psycopg_binary-3.1.10-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6a691dc8e2436d9c1e5cf93902d63e9501688fccc957eb22f952d37886257470"}, - {file = "psycopg_binary-3.1.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa92661f99351765673835a4d936d79bd24dfbb358b29b084d83be38229a90e4"}, - {file = "psycopg_binary-3.1.10-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:30eb731ed5525d8df892db6532cc8ffd8a163b73bc355127dee9c49334e16eee"}, - {file = "psycopg_binary-3.1.10-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:50bf7a59d3a85a82d466fed341d352b44d09d6adc18656101d163a7cfc6509a0"}, - {file = "psycopg_binary-3.1.10-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f48665947c55f8d6eb3f0be98de80411508e1ec329f354685329b57fced82c7f"}, - {file = "psycopg_binary-3.1.10-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:caa771569da01fc0389ca34920c331a284425a68f92d1ba0a80cc08935f8356e"}, - {file = "psycopg_binary-3.1.10-cp39-cp39-win_amd64.whl", hash = "sha256:b30887e631fd67affaed98f6cd2135b44f2d1a6d9bca353a69c3889c78bd7aa8"}, + {file = "psycopg_binary-3.1.12-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:29a69f62aae8617361376d9ed1e34966ae9c3a74c4ab3aa430a7ce0c11530862"}, + {file = "psycopg_binary-3.1.12-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7308316fdb6796399041b80db0ab9f356504ed26427e46834ade82ba94b067ce"}, + {file = "psycopg_binary-3.1.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:130752b9b2f8d071f179e257b9698cedfe4546be81ad5ecd8ed52cf9d725580d"}, + {file = "psycopg_binary-3.1.12-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:45bcecc96a6e6fe11e06b75f7ba8005d6f717f16fae7ab1cf5a0aec5191f87c3"}, + {file = "psycopg_binary-3.1.12-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc3f0fcc4fcccffda2450c725bee9fad73bc6c110cfbe3b8a777063845d9c6b9"}, + {file = "psycopg_binary-3.1.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f93749f0fe69cfbfec22af690bb4b241f1a4347c57be26fe2e5b70588f7d602f"}, + {file = "psycopg_binary-3.1.12-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:36147f708cc6a9d74c2b8d880f8dd3a6d53364b5c487536adaa022d435c90733"}, + {file = "psycopg_binary-3.1.12-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:2bbcc6fbabc2b92d18d955d9fa104fd9d8bd2dcb97a279c4e788c6b714ffd1af"}, + {file = "psycopg_binary-3.1.12-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:0dee8a1ecc501d9c3db06d08184712459bbb5806a09121c3a25e8cbe91e234d7"}, + {file = "psycopg_binary-3.1.12-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:49d6acf228edb5bd9000735b89b780b18face776d081b905cf68e149d57dfcc1"}, + {file = "psycopg_binary-3.1.12-cp310-cp310-win_amd64.whl", hash = "sha256:ee65335781a54f29f4abc28060a6188c41bdd42fdc3cbc1dd84695ed8ef18321"}, + {file = "psycopg_binary-3.1.12-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d401722aa38bda64d1ba8293f6dad99f6f684711e2c016a93f138f2bbcff2a4b"}, + {file = "psycopg_binary-3.1.12-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:46eac158e8e794d9414a8fe7706beeee9b1ecc4accbea914314825ace8137105"}, + {file = "psycopg_binary-3.1.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f017400679aa38f6cb22b888b8ec198a5b100ec2132e6b3bcfa797b14b5b438"}, + {file = "psycopg_binary-3.1.12-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d176c4614f5208ab9938d5426d61627c8fbc7f8dab53fef42c8bf2ab8605aa51"}, + {file = "psycopg_binary-3.1.12-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c48c4f3fcfd9e75e3fdb18eea320de591e06059a859280ec26ce8d753299353d"}, + {file = "psycopg_binary-3.1.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98fce28d8136bdd883f20d26467bf259b5fb559eb64d8f83695690714cdfdad3"}, + {file = "psycopg_binary-3.1.12-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4a0f44bc29fc1b56ee1c865796cbe354078ee1e985f898e4915db185055bf7d"}, + {file = "psycopg_binary-3.1.12-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6def4f238ca02d6b42336b405d02729c081c978cda9b6ba7549a9c63a91ba823"}, + {file = "psycopg_binary-3.1.12-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:000838cb5ab7851116b462e58893a96b0f1e35864135a6283f3242a730ec45d3"}, + {file = "psycopg_binary-3.1.12-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7949e1aefe339f04dbecac6aa036c9cd137a58f966c4b96ab933823c340ee12"}, + {file = "psycopg_binary-3.1.12-cp311-cp311-win_amd64.whl", hash = "sha256:b32922872460575083487de41e17e8cf308c3550da02c704efe42960bc6c19de"}, + {file = "psycopg_binary-3.1.12-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:70054ada2f890d004dc3d5ff908e34aecb085fd599d40db2975c09a39c50dfc3"}, + {file = "psycopg_binary-3.1.12-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7544d6d74f5b5f9daafe8a4ed7d266787d62a2bf16f5120c45d42d1f4a856bc8"}, + {file = "psycopg_binary-3.1.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:43197161099cb4e36a9ca44c10657908b619d7263ffcff30932ad4627430dc3c"}, + {file = "psycopg_binary-3.1.12-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:68398cdf3aedd4042b1126b9aba34615f1ab592831483282f19f0159fce5ca75"}, + {file = "psycopg_binary-3.1.12-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:77ae6cda3ffee2425aca9ea7af57296d0c701e2ac5897b48b95dfee050234592"}, + {file = "psycopg_binary-3.1.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:278e8888e90fb6ebd7eae8ccb85199eafd712b734e641e0d40f2a903e946102d"}, + {file = "psycopg_binary-3.1.12-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:047c4ba8d3089465b0a69c4c669128df43403867858d78da6b40b33788bfa89f"}, + {file = "psycopg_binary-3.1.12-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8248b11ac490bb74de80457ab0e9cef31c08164ff7b867031927a17e5c9e19ed"}, + {file = "psycopg_binary-3.1.12-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6979c02acb9783c6134ee516751b8f891a2d4db7f73ebecc9e92750283d6fb99"}, + {file = "psycopg_binary-3.1.12-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:eaf2375b724ad61ee82a5c2a849e57b12b3cb510ec8845084132bbb907cb3335"}, + {file = "psycopg_binary-3.1.12-cp312-cp312-win_amd64.whl", hash = "sha256:6177cfa6f872a9cc84dbfc7dc163af6ef01639c50acc9a441673f29c2305c37a"}, + {file = "psycopg_binary-3.1.12-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b81427fd5a97c9b4ac12f3b8d985870b0c3866b5fc2e72e51cacd3630ffd6466"}, + {file = "psycopg_binary-3.1.12-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f17a2c393879aa54f840540009d0e70a30d22ffa0038d81e258ac2c99b15d74"}, + {file = "psycopg_binary-3.1.12-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6c6a5d125a61101ef5ab7384206e43952fe2a5fca997b96d28a28a752512f900"}, + {file = "psycopg_binary-3.1.12-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:942a18df448a33d77aa7dff7e93062ace7926608a965db003622cb5f27910ba2"}, + {file = "psycopg_binary-3.1.12-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3195baff3e3e5d71828400d38af0ffc5a15d7dca2bfaadc9eb615235774b9290"}, + {file = "psycopg_binary-3.1.12-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:f26bb34e0e9bb83fba00c4835f91f5c5348cdf689df8c8b503571c0d0027c8f5"}, + {file = "psycopg_binary-3.1.12-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:104bdc85c5c4884b3f900155b635588a28740f561b32a3e27c38bcd249feba41"}, + {file = "psycopg_binary-3.1.12-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:53464cb71e06faac479f44b8870f115004187e1dfb299b9725d1d7f85d9e5479"}, + {file = "psycopg_binary-3.1.12-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:052835aac03ee6a9d5b6fe35c468da79084ebe38709e6d3c24ff5b9422fb2947"}, + {file = "psycopg_binary-3.1.12-cp37-cp37m-win_amd64.whl", hash = "sha256:a21a7fffec1a225b26d72adb960d771fc5a9aba8e1f7dd710abcaa9a980e9740"}, + {file = "psycopg_binary-3.1.12-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6925a543e88cdfd1a2f679c7a33c08f107de60728a4a3c52f88d4491d40a7f51"}, + {file = "psycopg_binary-3.1.12-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b04957bd5caff94eac38306357b6d448dd20a6f68fd998e115e3731a55118d83"}, + {file = "psycopg_binary-3.1.12-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f6f55979804853efa5ce84d7ef59ff3772e0823247497f7d4a6870e6527fd791"}, + {file = "psycopg_binary-3.1.12-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d343e1f564fdc8964e1c08b8a6c1f6ebf4b45ee5631b5241c9cbac793f4500c"}, + {file = "psycopg_binary-3.1.12-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:48c4ba35f717783327931aa9da6e6aab81b6b90f3e6b902b18e269d73e7d0882"}, + {file = "psycopg_binary-3.1.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d77c95d6086e0714225764772bf8110bb29dfbc6c32aa56e725a01998ce20e7c"}, + {file = "psycopg_binary-3.1.12-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6dea80e65c7a97150d555b64744e7279ff4c6b259d27580b756a5b282a7d44e3"}, + {file = "psycopg_binary-3.1.12-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:03a851123d0155e1d6ca5b6cccf624e2fc71c8f7eae76f5100196e0fca047d30"}, + {file = "psycopg_binary-3.1.12-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:99ad07b9ef5853713bb63c55e179af52994e96f445c5d66b87d8b986182922ef"}, + {file = "psycopg_binary-3.1.12-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4441d0f8ecae499a6ac5c79078c9fcd406c0bf70e72cb6cba888aca51aa46943"}, + {file = "psycopg_binary-3.1.12-cp38-cp38-win_amd64.whl", hash = "sha256:cb45a709b966583773acc3418fffbf6d73b014943b6efceca6a7d3ca960956cf"}, + {file = "psycopg_binary-3.1.12-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5112245daf98e22046316e72690689a8952a9b078908206a6b16cd28d84cde7c"}, + {file = "psycopg_binary-3.1.12-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c2eb94bf0bd653c940517cd92dc4f98c85d505f69013b247dda747413bcf0a8b"}, + {file = "psycopg_binary-3.1.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d41b03ce52a109858735ac19fe0295e3f77bef0388d6a3e105074ad68f4a9645"}, + {file = "psycopg_binary-3.1.12-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4fddc3c9beaf745de3da10230f0144a4c667b21c3f7a94a3bb1fb004954c9810"}, + {file = "psycopg_binary-3.1.12-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c5987616698c895ae079fb5e26811b72948cb3b75c2c690446379298e96c1568"}, + {file = "psycopg_binary-3.1.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f4ae45d58bd79795a2d23d05be5496b226b09ac2688b9ed9808e13c345e2d542"}, + {file = "psycopg_binary-3.1.12-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bb98252ac8ba41a121f88979e4232ffc1d6722c953531cbdae2b328322308581"}, + {file = "psycopg_binary-3.1.12-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:ca09e4937c9db24a58951ee9aea7aae7bca11a954b30c59f3b271e9bdebd80d7"}, + {file = "psycopg_binary-3.1.12-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:03e321e149d051daa20892ed1bb3beabf0aae98a8c37da30ec80fa12306f9ba9"}, + {file = "psycopg_binary-3.1.12-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d819cb43cccc10ba501b9d462409fcaaeb19f77b8379b2e7ca0ced4a49446d4a"}, + {file = "psycopg_binary-3.1.12-cp39-cp39-win_amd64.whl", hash = "sha256:c9eb2ba27760bc1303f0708ba95b9e4f3f3b77a081ef4f7f53375c71da3a1bee"}, ] [[package]] name = "ptvsd" version = "4.3.2" description = "Remote debugging server for Python support in Visual Studio and Visual Studio Code" -category = "dev" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" files = [ @@ -1944,7 +1919,6 @@ files = [ name = "ptyprocess" version = "0.7.0" description = "Run a subprocess in a pseudo terminal" -category = "dev" optional = false python-versions = "*" files = [ @@ -1956,7 +1930,6 @@ files = [ name = "pure-eval" version = "0.2.2" description = "Safely evaluate AST nodes without side effects" -category = "dev" optional = false python-versions = "*" files = [ @@ -1967,23 +1940,10 @@ files = [ [package.extras] tests = ["pytest"] -[[package]] -name = "py" -version = "1.11.0" -description = "library with cross-python path, ini-parsing, io, code, log facilities" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, - {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, -] - [[package]] name = "py-cpuinfo" version = "9.0.0" description = "Get CPU info with pure Python" -category = "dev" optional = false python-versions = "*" files = [ @@ -1995,7 +1955,6 @@ files = [ name = "pybtex" version = "0.24.0" description = "A BibTeX-compatible bibliography processor in Python" -category = "dev" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*" files = [ @@ -2015,7 +1974,6 @@ test = ["pytest"] name = "pybtex-docutils" version = "1.0.3" description = "A docutils backend for pybtex." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2027,23 +1985,10 @@ files = [ docutils = ">=0.14" pybtex = ">=0.16" -[[package]] -name = "pycodestyle" -version = "2.11.0" -description = "Python style guide checker" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pycodestyle-2.11.0-py2.py3-none-any.whl", hash = "sha256:5d1013ba8dc7895b548be5afb05740ca82454fd899971563d2ef625d090326f8"}, - {file = "pycodestyle-2.11.0.tar.gz", hash = "sha256:259bcc17857d8a8b3b4a2327324b79e5f020a13c16074670f9c8c8f872ea76d0"}, -] - [[package]] name = "pycparser" version = "2.21" description = "C parser in Python" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -2053,74 +1998,160 @@ files = [ [[package]] name = "pydantic" -version = "1.10.12" -description = "Data validation and settings management using python type hints" -category = "main" +version = "2.4.2" +description = "Data validation using Python type hints" optional = false python-versions = ">=3.7" files = [ - {file = "pydantic-1.10.12-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a1fcb59f2f355ec350073af41d927bf83a63b50e640f4dbaa01053a28b7a7718"}, - {file = "pydantic-1.10.12-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b7ccf02d7eb340b216ec33e53a3a629856afe1c6e0ef91d84a4e6f2fb2ca70fe"}, - {file = "pydantic-1.10.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8fb2aa3ab3728d950bcc885a2e9eff6c8fc40bc0b7bb434e555c215491bcf48b"}, - {file = "pydantic-1.10.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:771735dc43cf8383959dc9b90aa281f0b6092321ca98677c5fb6125a6f56d58d"}, - {file = "pydantic-1.10.12-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ca48477862372ac3770969b9d75f1bf66131d386dba79506c46d75e6b48c1e09"}, - {file = "pydantic-1.10.12-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a5e7add47a5b5a40c49b3036d464e3c7802f8ae0d1e66035ea16aa5b7a3923ed"}, - {file = "pydantic-1.10.12-cp310-cp310-win_amd64.whl", hash = "sha256:e4129b528c6baa99a429f97ce733fff478ec955513630e61b49804b6cf9b224a"}, - {file = "pydantic-1.10.12-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b0d191db0f92dfcb1dec210ca244fdae5cbe918c6050b342d619c09d31eea0cc"}, - {file = "pydantic-1.10.12-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:795e34e6cc065f8f498c89b894a3c6da294a936ee71e644e4bd44de048af1405"}, - {file = "pydantic-1.10.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69328e15cfda2c392da4e713443c7dbffa1505bc9d566e71e55abe14c97ddc62"}, - {file = "pydantic-1.10.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2031de0967c279df0d8a1c72b4ffc411ecd06bac607a212892757db7462fc494"}, - {file = "pydantic-1.10.12-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ba5b2e6fe6ca2b7e013398bc7d7b170e21cce322d266ffcd57cca313e54fb246"}, - {file = "pydantic-1.10.12-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2a7bac939fa326db1ab741c9d7f44c565a1d1e80908b3797f7f81a4f86bc8d33"}, - {file = "pydantic-1.10.12-cp311-cp311-win_amd64.whl", hash = "sha256:87afda5539d5140cb8ba9e8b8c8865cb5b1463924d38490d73d3ccfd80896b3f"}, - {file = "pydantic-1.10.12-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:549a8e3d81df0a85226963611950b12d2d334f214436a19537b2efed61b7639a"}, - {file = "pydantic-1.10.12-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:598da88dfa127b666852bef6d0d796573a8cf5009ffd62104094a4fe39599565"}, - {file = "pydantic-1.10.12-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba5c4a8552bff16c61882db58544116d021d0b31ee7c66958d14cf386a5b5350"}, - {file = "pydantic-1.10.12-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c79e6a11a07da7374f46970410b41d5e266f7f38f6a17a9c4823db80dadf4303"}, - {file = "pydantic-1.10.12-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ab26038b8375581dc832a63c948f261ae0aa21f1d34c1293469f135fa92972a5"}, - {file = "pydantic-1.10.12-cp37-cp37m-win_amd64.whl", hash = "sha256:e0a16d274b588767602b7646fa05af2782576a6cf1022f4ba74cbb4db66f6ca8"}, - {file = "pydantic-1.10.12-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6a9dfa722316f4acf4460afdf5d41d5246a80e249c7ff475c43a3a1e9d75cf62"}, - {file = "pydantic-1.10.12-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a73f489aebd0c2121ed974054cb2759af8a9f747de120acd2c3394cf84176ccb"}, - {file = "pydantic-1.10.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b30bcb8cbfccfcf02acb8f1a261143fab622831d9c0989707e0e659f77a18e0"}, - {file = "pydantic-1.10.12-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2fcfb5296d7877af406ba1547dfde9943b1256d8928732267e2653c26938cd9c"}, - {file = "pydantic-1.10.12-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:2f9a6fab5f82ada41d56b0602606a5506aab165ca54e52bc4545028382ef1c5d"}, - {file = "pydantic-1.10.12-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:dea7adcc33d5d105896401a1f37d56b47d443a2b2605ff8a969a0ed5543f7e33"}, - {file = "pydantic-1.10.12-cp38-cp38-win_amd64.whl", hash = "sha256:1eb2085c13bce1612da8537b2d90f549c8cbb05c67e8f22854e201bde5d98a47"}, - {file = "pydantic-1.10.12-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ef6c96b2baa2100ec91a4b428f80d8f28a3c9e53568219b6c298c1125572ebc6"}, - {file = "pydantic-1.10.12-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6c076be61cd0177a8433c0adcb03475baf4ee91edf5a4e550161ad57fc90f523"}, - {file = "pydantic-1.10.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d5a58feb9a39f481eda4d5ca220aa8b9d4f21a41274760b9bc66bfd72595b86"}, - {file = "pydantic-1.10.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5f805d2d5d0a41633651a73fa4ecdd0b3d7a49de4ec3fadf062fe16501ddbf1"}, - {file = "pydantic-1.10.12-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1289c180abd4bd4555bb927c42ee42abc3aee02b0fb2d1223fb7c6e5bef87dbe"}, - {file = "pydantic-1.10.12-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5d1197e462e0364906cbc19681605cb7c036f2475c899b6f296104ad42b9f5fb"}, - {file = "pydantic-1.10.12-cp39-cp39-win_amd64.whl", hash = "sha256:fdbdd1d630195689f325c9ef1a12900524dceb503b00a987663ff4f58669b93d"}, - {file = "pydantic-1.10.12-py3-none-any.whl", hash = "sha256:b749a43aa51e32839c9d71dc67eb1e4221bb04af1033a32e3923d46f9effa942"}, - {file = "pydantic-1.10.12.tar.gz", hash = "sha256:0fe8a415cea8f340e7a9af9c54fc71a649b43e8ca3cc732986116b3cb135d303"}, + {file = "pydantic-2.4.2-py3-none-any.whl", hash = "sha256:bc3ddf669d234f4220e6e1c4d96b061abe0998185a8d7855c0126782b7abc8c1"}, + {file = "pydantic-2.4.2.tar.gz", hash = "sha256:94f336138093a5d7f426aac732dcfe7ab4eb4da243c88f891d65deb4a2556ee7"}, ] [package.dependencies] -typing-extensions = ">=4.2.0" +annotated-types = ">=0.4.0" +pydantic-core = "2.10.1" +typing-extensions = ">=4.6.1" [package.extras] -dotenv = ["python-dotenv (>=0.10.4)"] -email = ["email-validator (>=1.0.3)"] +email = ["email-validator (>=2.0.0)"] [[package]] -name = "pyflakes" -version = "3.1.0" -description = "passive checker of Python programs" -category = "dev" +name = "pydantic-core" +version = "2.10.1" +description = "" optional = false -python-versions = ">=3.8" +python-versions = ">=3.7" files = [ - {file = "pyflakes-3.1.0-py2.py3-none-any.whl", hash = "sha256:4132f6d49cb4dae6819e5379898f2b8cce3c5f23994194c24b77d5da2e36f774"}, - {file = "pyflakes-3.1.0.tar.gz", hash = "sha256:a0aae034c444db0071aa077972ba4768d40c830d9539fd45bf4cd3f8f6992efc"}, + {file = "pydantic_core-2.10.1-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:d64728ee14e667ba27c66314b7d880b8eeb050e58ffc5fec3b7a109f8cddbd63"}, + {file = "pydantic_core-2.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:48525933fea744a3e7464c19bfede85df4aba79ce90c60b94d8b6e1eddd67096"}, + {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef337945bbd76cce390d1b2496ccf9f90b1c1242a3a7bc242ca4a9fc5993427a"}, + {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1392e0638af203cee360495fd2cfdd6054711f2db5175b6e9c3c461b76f5175"}, + {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0675ba5d22de54d07bccde38997e780044dcfa9a71aac9fd7d4d7a1d2e3e65f7"}, + {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:128552af70a64660f21cb0eb4876cbdadf1a1f9d5de820fed6421fa8de07c893"}, + {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f6e6aed5818c264412ac0598b581a002a9f050cb2637a84979859e70197aa9e"}, + {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ecaac27da855b8d73f92123e5f03612b04c5632fd0a476e469dfc47cd37d6b2e"}, + {file = "pydantic_core-2.10.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b3c01c2fb081fced3bbb3da78510693dc7121bb893a1f0f5f4b48013201f362e"}, + {file = "pydantic_core-2.10.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:92f675fefa977625105708492850bcbc1182bfc3e997f8eecb866d1927c98ae6"}, + {file = "pydantic_core-2.10.1-cp310-none-win32.whl", hash = "sha256:420a692b547736a8d8703c39ea935ab5d8f0d2573f8f123b0a294e49a73f214b"}, + {file = "pydantic_core-2.10.1-cp310-none-win_amd64.whl", hash = "sha256:0880e239827b4b5b3e2ce05e6b766a7414e5f5aedc4523be6b68cfbc7f61c5d0"}, + {file = "pydantic_core-2.10.1-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:073d4a470b195d2b2245d0343569aac7e979d3a0dcce6c7d2af6d8a920ad0bea"}, + {file = "pydantic_core-2.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:600d04a7b342363058b9190d4e929a8e2e715c5682a70cc37d5ded1e0dd370b4"}, + {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39215d809470f4c8d1881758575b2abfb80174a9e8daf8f33b1d4379357e417c"}, + {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eeb3d3d6b399ffe55f9a04e09e635554012f1980696d6b0aca3e6cf42a17a03b"}, + {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a7a7902bf75779bc12ccfc508bfb7a4c47063f748ea3de87135d433a4cca7a2f"}, + {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3625578b6010c65964d177626fde80cf60d7f2e297d56b925cb5cdeda6e9925a"}, + {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:caa48fc31fc7243e50188197b5f0c4228956f97b954f76da157aae7f67269ae8"}, + {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:07ec6d7d929ae9c68f716195ce15e745b3e8fa122fc67698ac6498d802ed0fa4"}, + {file = "pydantic_core-2.10.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e6f31a17acede6a8cd1ae2d123ce04d8cca74056c9d456075f4f6f85de055607"}, + {file = "pydantic_core-2.10.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d8f1ebca515a03e5654f88411420fea6380fc841d1bea08effb28184e3d4899f"}, + {file = "pydantic_core-2.10.1-cp311-none-win32.whl", hash = "sha256:6db2eb9654a85ada248afa5a6db5ff1cf0f7b16043a6b070adc4a5be68c716d6"}, + {file = "pydantic_core-2.10.1-cp311-none-win_amd64.whl", hash = "sha256:4a5be350f922430997f240d25f8219f93b0c81e15f7b30b868b2fddfc2d05f27"}, + {file = "pydantic_core-2.10.1-cp311-none-win_arm64.whl", hash = "sha256:5fdb39f67c779b183b0c853cd6b45f7db84b84e0571b3ef1c89cdb1dfc367325"}, + {file = "pydantic_core-2.10.1-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:b1f22a9ab44de5f082216270552aa54259db20189e68fc12484873d926426921"}, + {file = "pydantic_core-2.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8572cadbf4cfa95fb4187775b5ade2eaa93511f07947b38f4cd67cf10783b118"}, + {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db9a28c063c7c00844ae42a80203eb6d2d6bbb97070cfa00194dff40e6f545ab"}, + {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0e2a35baa428181cb2270a15864ec6286822d3576f2ed0f4cd7f0c1708472aff"}, + {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05560ab976012bf40f25d5225a58bfa649bb897b87192a36c6fef1ab132540d7"}, + {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d6495008733c7521a89422d7a68efa0a0122c99a5861f06020ef5b1f51f9ba7c"}, + {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14ac492c686defc8e6133e3a2d9eaf5261b3df26b8ae97450c1647286750b901"}, + {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8282bab177a9a3081fd3d0a0175a07a1e2bfb7fcbbd949519ea0980f8a07144d"}, + {file = "pydantic_core-2.10.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:aafdb89fdeb5fe165043896817eccd6434aee124d5ee9b354f92cd574ba5e78f"}, + {file = "pydantic_core-2.10.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f6defd966ca3b187ec6c366604e9296f585021d922e666b99c47e78738b5666c"}, + {file = "pydantic_core-2.10.1-cp312-none-win32.whl", hash = "sha256:7c4d1894fe112b0864c1fa75dffa045720a194b227bed12f4be7f6045b25209f"}, + {file = "pydantic_core-2.10.1-cp312-none-win_amd64.whl", hash = "sha256:5994985da903d0b8a08e4935c46ed8daf5be1cf217489e673910951dc533d430"}, + {file = "pydantic_core-2.10.1-cp312-none-win_arm64.whl", hash = "sha256:0d8a8adef23d86d8eceed3e32e9cca8879c7481c183f84ed1a8edc7df073af94"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:9badf8d45171d92387410b04639d73811b785b5161ecadabf056ea14d62d4ede"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:ebedb45b9feb7258fac0a268a3f6bec0a2ea4d9558f3d6f813f02ff3a6dc6698"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfe1090245c078720d250d19cb05d67e21a9cd7c257698ef139bc41cf6c27b4f"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e357571bb0efd65fd55f18db0a2fb0ed89d0bb1d41d906b138f088933ae618bb"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b3dcd587b69bbf54fc04ca157c2323b8911033e827fffaecf0cafa5a892a0904"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c120c9ce3b163b985a3b966bb701114beb1da4b0468b9b236fc754783d85aa3"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15d6bca84ffc966cc9976b09a18cf9543ed4d4ecbd97e7086f9ce9327ea48891"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5cabb9710f09d5d2e9e2748c3e3e20d991a4c5f96ed8f1132518f54ab2967221"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:82f55187a5bebae7d81d35b1e9aaea5e169d44819789837cdd4720d768c55d15"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:1d40f55222b233e98e3921df7811c27567f0e1a4411b93d4c5c0f4ce131bc42f"}, + {file = "pydantic_core-2.10.1-cp37-none-win32.whl", hash = "sha256:14e09ff0b8fe6e46b93d36a878f6e4a3a98ba5303c76bb8e716f4878a3bee92c"}, + {file = "pydantic_core-2.10.1-cp37-none-win_amd64.whl", hash = "sha256:1396e81b83516b9d5c9e26a924fa69164156c148c717131f54f586485ac3c15e"}, + {file = "pydantic_core-2.10.1-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:6835451b57c1b467b95ffb03a38bb75b52fb4dc2762bb1d9dbed8de31ea7d0fc"}, + {file = "pydantic_core-2.10.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b00bc4619f60c853556b35f83731bd817f989cba3e97dc792bb8c97941b8053a"}, + {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fa467fd300a6f046bdb248d40cd015b21b7576c168a6bb20aa22e595c8ffcdd"}, + {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d99277877daf2efe074eae6338453a4ed54a2d93fb4678ddfe1209a0c93a2468"}, + {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa7db7558607afeccb33c0e4bf1c9a9a835e26599e76af6fe2fcea45904083a6"}, + {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aad7bd686363d1ce4ee930ad39f14e1673248373f4a9d74d2b9554f06199fb58"}, + {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:443fed67d33aa85357464f297e3d26e570267d1af6fef1c21ca50921d2976302"}, + {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:042462d8d6ba707fd3ce9649e7bf268633a41018d6a998fb5fbacb7e928a183e"}, + {file = "pydantic_core-2.10.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ecdbde46235f3d560b18be0cb706c8e8ad1b965e5c13bbba7450c86064e96561"}, + {file = "pydantic_core-2.10.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ed550ed05540c03f0e69e6d74ad58d026de61b9eaebebbaaf8873e585cbb18de"}, + {file = "pydantic_core-2.10.1-cp38-none-win32.whl", hash = "sha256:8cdbbd92154db2fec4ec973d45c565e767ddc20aa6dbaf50142676484cbff8ee"}, + {file = "pydantic_core-2.10.1-cp38-none-win_amd64.whl", hash = "sha256:9f6f3e2598604956480f6c8aa24a3384dbf6509fe995d97f6ca6103bb8c2534e"}, + {file = "pydantic_core-2.10.1-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:655f8f4c8d6a5963c9a0687793da37b9b681d9ad06f29438a3b2326d4e6b7970"}, + {file = "pydantic_core-2.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e570ffeb2170e116a5b17e83f19911020ac79d19c96f320cbfa1fa96b470185b"}, + {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64322bfa13e44c6c30c518729ef08fda6026b96d5c0be724b3c4ae4da939f875"}, + {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:485a91abe3a07c3a8d1e082ba29254eea3e2bb13cbbd4351ea4e5a21912cc9b0"}, + {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7c2b8eb9fc872e68b46eeaf835e86bccc3a58ba57d0eedc109cbb14177be531"}, + {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a5cb87bdc2e5f620693148b5f8f842d293cae46c5f15a1b1bf7ceeed324a740c"}, + {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25bd966103890ccfa028841a8f30cebcf5875eeac8c4bde4fe221364c92f0c9a"}, + {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f323306d0556351735b54acbf82904fe30a27b6a7147153cbe6e19aaaa2aa429"}, + {file = "pydantic_core-2.10.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0c27f38dc4fbf07b358b2bc90edf35e82d1703e22ff2efa4af4ad5de1b3833e7"}, + {file = "pydantic_core-2.10.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f1365e032a477c1430cfe0cf2856679529a2331426f8081172c4a74186f1d595"}, + {file = "pydantic_core-2.10.1-cp39-none-win32.whl", hash = "sha256:a1c311fd06ab3b10805abb72109f01a134019739bd3286b8ae1bc2fc4e50c07a"}, + {file = "pydantic_core-2.10.1-cp39-none-win_amd64.whl", hash = "sha256:ae8a8843b11dc0b03b57b52793e391f0122e740de3df1474814c700d2622950a"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:d43002441932f9a9ea5d6f9efaa2e21458221a3a4b417a14027a1d530201ef1b"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fcb83175cc4936a5425dde3356f079ae03c0802bbdf8ff82c035f8a54b333521"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:962ed72424bf1f72334e2f1e61b68f16c0e596f024ca7ac5daf229f7c26e4208"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2cf5bb4dd67f20f3bbc1209ef572a259027c49e5ff694fa56bed62959b41e1f9"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e544246b859f17373bed915182ab841b80849ed9cf23f1f07b73b7c58baee5fb"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c0877239307b7e69d025b73774e88e86ce82f6ba6adf98f41069d5b0b78bd1bf"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:53df009d1e1ba40f696f8995683e067e3967101d4bb4ea6f667931b7d4a01357"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a1254357f7e4c82e77c348dabf2d55f1d14d19d91ff025004775e70a6ef40ada"}, + {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:524ff0ca3baea164d6d93a32c58ac79eca9f6cf713586fdc0adb66a8cdeab96a"}, + {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f0ac9fb8608dbc6eaf17956bf623c9119b4db7dbb511650910a82e261e6600f"}, + {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:320f14bd4542a04ab23747ff2c8a778bde727158b606e2661349557f0770711e"}, + {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:63974d168b6233b4ed6a0046296803cb13c56637a7b8106564ab575926572a55"}, + {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:417243bf599ba1f1fef2bb8c543ceb918676954734e2dcb82bf162ae9d7bd514"}, + {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:dda81e5ec82485155a19d9624cfcca9be88a405e2857354e5b089c2a982144b2"}, + {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:14cfbb00959259e15d684505263d5a21732b31248a5dd4941f73a3be233865b9"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:631cb7415225954fdcc2a024119101946793e5923f6c4d73a5914d27eb3d3a05"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:bec7dd208a4182e99c5b6c501ce0b1f49de2802448d4056091f8e630b28e9a52"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:149b8a07712f45b332faee1a2258d8ef1fb4a36f88c0c17cb687f205c5dc6e7d"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d966c47f9dd73c2d32a809d2be529112d509321c5310ebf54076812e6ecd884"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7eb037106f5c6b3b0b864ad226b0b7ab58157124161d48e4b30c4a43fef8bc4b"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:154ea7c52e32dce13065dbb20a4a6f0cc012b4f667ac90d648d36b12007fa9f7"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e562617a45b5a9da5be4abe72b971d4f00bf8555eb29bb91ec2ef2be348cd132"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:f23b55eb5464468f9e0e9a9935ce3ed2a870608d5f534025cd5536bca25b1402"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:e9121b4009339b0f751955baf4543a0bfd6bc3f8188f8056b1a25a2d45099934"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:0523aeb76e03f753b58be33b26540880bac5aa54422e4462404c432230543f33"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e0e2959ef5d5b8dc9ef21e1a305a21a36e254e6a34432d00c72a92fdc5ecda5"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da01bec0a26befab4898ed83b362993c844b9a607a86add78604186297eb047e"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f2e9072d71c1f6cfc79a36d4484c82823c560e6f5599c43c1ca6b5cdbd54f881"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f36a3489d9e28fe4b67be9992a23029c3cec0babc3bd9afb39f49844a8c721c5"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f64f82cc3443149292b32387086d02a6c7fb39b8781563e0ca7b8d7d9cf72bd7"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b4a6db486ac8e99ae696e09efc8b2b9fea67b63c8f88ba7a1a16c24a057a0776"}, + {file = "pydantic_core-2.10.1.tar.gz", hash = "sha256:0f8682dbdd2f67f8e1edddcbffcc29f60a6182b4901c367fc8c1c40d30bb0a82"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" + +[[package]] +name = "pydantic-settings" +version = "2.0.3" +description = "Settings management using Pydantic" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pydantic_settings-2.0.3-py3-none-any.whl", hash = "sha256:ddd907b066622bd67603b75e2ff791875540dc485b7307c4fffc015719da8625"}, + {file = "pydantic_settings-2.0.3.tar.gz", hash = "sha256:962dc3672495aad6ae96a4390fac7e593591e144625e5112d359f8f67fb75945"}, ] +[package.dependencies] +pydantic = ">=2.0.1" +python-dotenv = ">=0.21.0" + [[package]] name = "pygments" version = "2.16.1" description = "Pygments is a syntax highlighting package written in Python." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2135,7 +2166,6 @@ plugins = ["importlib-metadata"] name = "pyjwt" version = "2.8.0" description = "JSON Web Token implementation in Python" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2153,7 +2183,6 @@ tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] name = "pyproject-hooks" version = "1.0.0" description = "Wrappers to call pyproject.toml-based build backend hooks." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2166,39 +2195,35 @@ tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} [[package]] name = "pytest" -version = "6.2.5" +version = "7.4.2" description = "pytest: simple powerful testing with Python" -category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, - {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, + {file = "pytest-7.4.2-py3-none-any.whl", hash = "sha256:1d881c6124e08ff0a1bb75ba3ec0bfd8b5354a01c194ddd5a0a870a48d99b002"}, + {file = "pytest-7.4.2.tar.gz", hash = "sha256:a766259cfab564a2ad52cb1aae1b881a75c3eb7e34ca3779697c23ed47c47069"}, ] [package.dependencies] -atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} -attrs = ">=19.2.0" colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" pluggy = ">=0.12,<2.0" -py = ">=1.8.2" -toml = "*" +tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-benchmark" -version = "3.4.1" +version = "4.0.0" description = "A ``pytest`` fixture for benchmarking code. It will group the tests into rounds that are calibrated to the chosen timer." -category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=3.7" files = [ - {file = "pytest-benchmark-3.4.1.tar.gz", hash = "sha256:40e263f912de5a81d891619032983557d62a3d85843f9a9f30b98baea0cd7b47"}, - {file = "pytest_benchmark-3.4.1-py2.py3-none-any.whl", hash = "sha256:36d2b08c4882f6f997fd3126a3d6dfd70f3249cde178ed8bbc0b73db7c20f809"}, + {file = "pytest-benchmark-4.0.0.tar.gz", hash = "sha256:fb0785b83efe599a6a956361c0691ae1dbb5318018561af10f3e915caa0048d1"}, + {file = "pytest_benchmark-4.0.0-py3-none-any.whl", hash = "sha256:fdb7db64e31c8b277dff9850d2a2556d8b60bcb0ea6524e36e28ffd7c87f71d6"}, ] [package.dependencies] @@ -2212,20 +2237,18 @@ histogram = ["pygal", "pygaljs"] [[package]] name = "pytest-cov" -version = "2.12.1" +version = "4.1.0" description = "Pytest plugin for measuring coverage." -category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=3.7" files = [ - {file = "pytest-cov-2.12.1.tar.gz", hash = "sha256:261ceeb8c227b726249b376b8526b600f38667ee314f910353fa318caa01f4d7"}, - {file = "pytest_cov-2.12.1-py2.py3-none-any.whl", hash = "sha256:261bb9e47e65bd099c89c3edf92972865210c36813f80ede5277dceb77a4a62a"}, + {file = "pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"}, + {file = "pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a"}, ] [package.dependencies] -coverage = ">=5.2.1" +coverage = {version = ">=5.2.1", extras = ["toml"]} pytest = ">=4.6" -toml = "*" [package.extras] testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] @@ -2234,7 +2257,6 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale name = "pytest-lazy-fixture" version = "0.6.3" description = "It helps to use fixtures in pytest.mark.parametrize" -category = "dev" optional = false python-versions = "*" files = [ @@ -2249,7 +2271,6 @@ pytest = ">=3.2.5" name = "python-dateutil" version = "2.8.2" description = "Extensions to the standard Python datetime module" -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ @@ -2262,14 +2283,13 @@ six = ">=1.5" [[package]] name = "python-dotenv" -version = "0.19.2" +version = "1.0.0" description = "Read key-value pairs from a .env file and set them as environment variables" -category = "main" optional = false -python-versions = ">=3.5" +python-versions = ">=3.8" files = [ - {file = "python-dotenv-0.19.2.tar.gz", hash = "sha256:a5de49a31e953b45ff2d2fd434bbc2670e8db5273606c1e737cc6b93eff3655f"}, - {file = "python_dotenv-0.19.2-py2.py3-none-any.whl", hash = "sha256:32b2bdc1873fd3a3c346da1c6db83d0053c3c62f28f1f38516070c4c8971b1d3"}, + {file = "python-dotenv-1.0.0.tar.gz", hash = "sha256:a8df96034aae6d2d50a4ebe8216326c61c3eb64836776504fcca410e5937a3ba"}, + {file = "python_dotenv-1.0.0-py3-none-any.whl", hash = "sha256:f5971a9226b701070a4bf2c38c89e5a3f0d64de8debda981d1db98583009122a"}, ] [package.extras] @@ -2279,7 +2299,6 @@ cli = ["click (>=5.0)"] name = "pytz" version = "2023.3.post1" description = "World timezone definitions, modern and historical" -category = "main" optional = false python-versions = "*" files = [ @@ -2291,7 +2310,6 @@ files = [ name = "pywin32" version = "306" description = "Python for Window Extensions" -category = "dev" optional = false python-versions = "*" files = [ @@ -2315,7 +2333,6 @@ files = [ name = "pyyaml" version = "6.0.1" description = "YAML parser and emitter for Python" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2324,6 +2341,7 @@ files = [ {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, @@ -2331,8 +2349,15 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, @@ -2349,6 +2374,7 @@ files = [ {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, @@ -2356,6 +2382,7 @@ files = [ {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, @@ -2365,7 +2392,6 @@ files = [ name = "pyzmq" version = "25.1.1" description = "Python bindings for 0MQ" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2471,7 +2497,6 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} name = "referencing" version = "0.30.2" description = "JSON Referencing + Python" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2487,7 +2512,6 @@ rpds-py = ">=0.7.0" name = "requests" version = "2.31.0" description = "Python HTTP for Humans." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2505,153 +2529,160 @@ urllib3 = ">=1.21.1,<3" socks = ["PySocks (>=1.5.6,!=1.5.7)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] -[[package]] -name = "rfc3986" -version = "1.5.0" -description = "Validating URI References per RFC 3986" -category = "main" -optional = false -python-versions = "*" -files = [ - {file = "rfc3986-1.5.0-py2.py3-none-any.whl", hash = "sha256:a86d6e1f5b1dc238b218b012df0aa79409667bb209e58da56d0b94704e712a97"}, - {file = "rfc3986-1.5.0.tar.gz", hash = "sha256:270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835"}, -] - -[package.dependencies] -idna = {version = "*", optional = true, markers = "extra == \"idna2008\""} - -[package.extras] -idna2008 = ["idna"] - [[package]] name = "rpds-py" -version = "0.10.2" +version = "0.10.4" description = "Python bindings to Rust's persistent data structures (rpds)" -category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "rpds_py-0.10.2-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:9f00d54b18dd837f1431d66b076737deb7c29ce3ebb8412ceaf44d5e1954ac0c"}, - {file = "rpds_py-0.10.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f4d561f4728f825e3b793a53064b606ca0b6fc264f67d09e54af452aafc5b82"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:013d6c784150d10236a74b4094a79d96a256b814457e388fc5a4ba9efe24c402"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd1142d22fdb183a0fff66d79134bf644401437fed874f81066d314c67ee193c"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a0536ed2b9297c75104e1a3da330828ba1b2639fa53b38d396f98bf7e3c68df"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:41bd430b7b63aa802c02964e331ac0b177148fef5f807d2c90d05ce71a52b4d4"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e8474f7233fe1949ce4e03bea698a600c2d5d6b51dab6d6e6336dbe69acf23e"}, - {file = "rpds_py-0.10.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d9d7efaad48b859053b90dedd69bc92f2095084251e732e4c57ac9726bcb1e64"}, - {file = "rpds_py-0.10.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5612b0b1de8d5114520094bd5fc3d04eb8af6f3e10d48ef05b7c8e77c1fd9545"}, - {file = "rpds_py-0.10.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5d5eaf988951f6ecb6854ca3300b87123599c711183c83da7ce39717a7cbdbce"}, - {file = "rpds_py-0.10.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:75c8766734ac0053e1d683567e65e85306c4ec62631b0591caeb287ac8f72e08"}, - {file = "rpds_py-0.10.2-cp310-none-win32.whl", hash = "sha256:8de9b88f0cbac73cfed34220d13c57849e62a7099a714b929142425e926d223a"}, - {file = "rpds_py-0.10.2-cp310-none-win_amd64.whl", hash = "sha256:2275f1a022e2383da5d2d101fe11ccdcbae799148c4b83260a4b9309fa3e1fc2"}, - {file = "rpds_py-0.10.2-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:dd91a7d7a9ce7f4983097c91ce211f3e5569cc21caa16f2692298a07e396f82b"}, - {file = "rpds_py-0.10.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e82b4a70cc67094f3f3fd77579702f48fcf1de7bdc67d79b8f1e24d089a6162c"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e281b71922208e00886e4b7ffbfcf27874486364f177418ab676f102130e7ec9"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b3eb1a0d2b6d232d1bcdfc3fcc5f7b004ab3fbd9203011a3172f051d4527c0b6"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:02945ae38fd78efc40900f509890de84cfd5ffe2cd2939eeb3a8800dc68b87cb"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ccfb77f6dc8abffa6f1c7e3975ed9070a41ce5fcc11154d2bead8c1baa940f09"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af52078719209bef33e38131486fd784832dd8d1dc9b85f00a44f6e7437dd021"}, - {file = "rpds_py-0.10.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:56ba7c1100ed079527f2b995bf5486a2e557e6d5b733c52e8947476338815b69"}, - {file = "rpds_py-0.10.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:899b03a3be785a7e1ff84b237da71f0efa2f021512f147dd34ffdf7aa82cb678"}, - {file = "rpds_py-0.10.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:22e6de18f00583f06928cc8d0993104ecc62f7c6da6478db2255de89a30e45d1"}, - {file = "rpds_py-0.10.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:edd74b760a6bb950397e7a7bd2f38e6700f6525062650b1d77c6d851b82f02c2"}, - {file = "rpds_py-0.10.2-cp311-none-win32.whl", hash = "sha256:18909093944727e068ebfc92e2e6ed1c4fa44135507c1c0555213ce211c53214"}, - {file = "rpds_py-0.10.2-cp311-none-win_amd64.whl", hash = "sha256:9568764e72d85cf7855ca78b48e07ed1be47bf230e2cea8dabda3c95f660b0ff"}, - {file = "rpds_py-0.10.2-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:0fc625059b83695fbb4fc8b7a8b66fa94ff9c7b78c84fb9986cd53ff88a28d80"}, - {file = "rpds_py-0.10.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c86231c66e4f422e7c13ea6200bb4048b3016c8bfd11b4fd0dabd04d2c8e3501"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56777c57246e048908b550af9b81b0ec9cf804fd47cb7502ccd93238bd6025c2"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a4cb372e22e9c879bd9a9cc9b20b7c1fbf30a605ac953da45ecec05d8a6e1c77"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa3b3a43dabc4cc57a7800f526cbe03f71c69121e21b863fdf497b59b462b163"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:59d222086daa55421d599609b32d0ebe544e57654c4a0a1490c54a7ebaa67561"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:529aab727f54a937085184e7436e1d0e19975cf10115eda12d37a683e4ee5342"}, - {file = "rpds_py-0.10.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43e9b1531d6a898bdf086acb75c41265c7ec4331267d7619148d407efc72bd24"}, - {file = "rpds_py-0.10.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c2772bb95062e3f9774140205cd65d8997e39620715486cf5f843cf4ad8f744c"}, - {file = "rpds_py-0.10.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ba1b28e44f611f3f2b436bd8290050a61db4b59a8e24be4465f44897936b3824"}, - {file = "rpds_py-0.10.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5aba767e64b494483ad60c4873bec78d16205a21f8247c99749bd990d9c846c2"}, - {file = "rpds_py-0.10.2-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:e1954f4b239d1a92081647eecfd51cbfd08ea16eb743b8af1cd0113258feea14"}, - {file = "rpds_py-0.10.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:de4a2fd524993578fe093044f291b4b24aab134390030b3b9b5f87fd41ab7e75"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e69737bd56006a86fd5a78b2b85447580a6138c930a75eb9ef39fe03d90782b1"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f40abbcc0a7d9a8a80870af839d317e6932533f98682aabd977add6c53beeb23"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:29ec8507664f94cc08457d98cfc41c3cdbddfa8952438e644177a29b04937876"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bcde80aefe7054fad6277762fb7e9d35c72ea479a485ae1bb14629c640987b30"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a65de5c02884760a14a58304fb6303f9ddfc582e630f385daea871e1bdb18686"}, - {file = "rpds_py-0.10.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e92e5817eb6bfed23aa5e45bfe30647b83602bdd6f9e25d63524d4e6258458b0"}, - {file = "rpds_py-0.10.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2c8fc6c841ada60a86d29c9ebe2e8757c47eda6553f3596c560e59ca6e9b6fa1"}, - {file = "rpds_py-0.10.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:8557c807388e6617161fe51b1a4747ea8d1133f2d2ad8e79583439abebe58fbd"}, - {file = "rpds_py-0.10.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:00e97d43a36811b78fa9ad9d3329bf34f76a31e891a7031a2ac01450c9b168ab"}, - {file = "rpds_py-0.10.2-cp38-none-win32.whl", hash = "sha256:1ed3d5385d14be894e12a9033be989e012214a9811e7194849c94032ad69682a"}, - {file = "rpds_py-0.10.2-cp38-none-win_amd64.whl", hash = "sha256:02b4a2e28eb24dac4ef43dda4f6a6f7766e355179b143f7d0c76a1c5488a307b"}, - {file = "rpds_py-0.10.2-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:2a55631b93e47956fbc97d69ba2054a8c6a4016f9a3064ec4e031f5f1030cb90"}, - {file = "rpds_py-0.10.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2ffbf1b38c88d0466de542e91b08225d51782282512f8e2b11715126c41fda48"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213f9ef5c02ec2f883c1075d25a873149daadbaea50d18d622e9db55ec9849c2"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b00150a9a3fd0a8efaa90bc2696c105b04039d50763dd1c95a34c88c5966cb57"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ab0f7aabdbce4a202e013083eeab71afdb85efa405dc4a06fea98cde81204675"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2cd0c9fb5d40887500b4ed818770c68ab4fa6e0395d286f9704be6751b1b7d98"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8578fc6c8bdd0201327503720fa581000b4bd3934abbf07e2628d1ad3de157d"}, - {file = "rpds_py-0.10.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d27d08056fcd61ff47a0cd8407eff4d3e816c82cb6b9c6f0ce9a0ad49225f81"}, - {file = "rpds_py-0.10.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c8f6526df47953b07c45b95c4d1da6b9a0861c0e5da0271db96bb1d807825412"}, - {file = "rpds_py-0.10.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:177c033e467a66a054dd3a9534167234a3d0b2e41445807b13b626e01da25d92"}, - {file = "rpds_py-0.10.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9c74cbee9e532dc34371127f7686d6953e5153a1f22beab7f953d95ee4a0fe09"}, - {file = "rpds_py-0.10.2-cp39-none-win32.whl", hash = "sha256:05a1382905026bdd560f806c8c7c16e0f3e3fb359ba8868203ca6e5799884968"}, - {file = "rpds_py-0.10.2-cp39-none-win_amd64.whl", hash = "sha256:3fd503c27e7b7034128e30847ecdb4bff4ca5e60f29ad022a9f66ae8940d54ac"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:4a96147791e49e84207dd1530109aa0e9eeaf1c8b7a59f150047fc0fcdf9bb64"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:203eb1532d51591d32e8dfafd60b5d31347ea7278c8da02b4b550287f6abe28b"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2f416cdfe92f5fbb77177f5f3f7830059d1582db05f2c7119bf80069d1ab69b"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b2660000e1a113869c86eb5cc07f3343467490f3cd9d0299f81da9ddae7137b7"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1adb04e4b4e41bf30aaa77eeb169c1b9ba9e5010e2e6ce8d6c17e1446edc9b68"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2bca97521ee786087f0c5ef318fef3eef0266a9c3deff88205523cf353af7394"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4969592e3cdeefa4cbb15a26cec102cbd4a1d6e5b695fac9fa026e19741138c8"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:df61f818edf7c8626bfa392f825860fb670b5f8336e238eb0ec7e2a5689cdded"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:b589d93a60e78fe55d5bc76ee8c2bf945dbdbb7cd16044c53e0307604e448de1"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:73da69e1f612c3e682e34dcb971272d90d6f27b2c99acff444ca455a89978574"}, - {file = "rpds_py-0.10.2-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:89438e8885a186c69fe31f7ef98bb2bf29688c466c3caf9060f404c0be89ae80"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:c4ecc4e9a5d73a816cae36ee6b5d8b7a0c72013cae1e101406e832887c3dc2d8"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:907b214da5d2fcff0b6ddb83de1333890ca92abaf4bbf8d9c61dc1b95c87fd6e"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb44644371eaa29a3aba7b69b1862d0d56f073bb7585baa32e4271a71a91ee82"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:80c3cf46511653f94dfe07c7c79ab105c4164d6e1dfcb35b7214fb9af53eaef4"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eaba0613c759ebf95988a84f766ca6b7432d55ce399194f95dde588ad1be0878"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0527c97dcd8bb983822ee31d3760187083fd3ba18ac4dd22cf5347c89d5628f4"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9cdfd649011ce2d90cb0dd304c5aba1190fac0c266d19a9e2b96b81cfd150a09"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:75eea40355a8690459c7291ce6c8ce39c27bd223675c7da6619f510c728feb97"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4f1b804cfad04f862d6a84af9d1ad941b06f671878f0f7ecad6c92007d423de6"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:bf77f9017fcfa1232f98598a637406e6c33982ccba8a5922339575c3e2b90ea5"}, - {file = "rpds_py-0.10.2-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:46c4c550bf59ce05d6bff2c98053822549aaf9fbaf81103edea325e03350bca1"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:46af4a742b90c7460e94214f923452c2c1d050a9da1d2b8d4c70cbc045e692b7"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:2a86d246a160d98d820ee7d02dc18c923c228de095be362e57b9fd8970b2c4a1"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae141c9017f8f473a6ee07a9425da021816a9f8c0683c2e5442f0ccf56b0fc62"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e1147bc3d0dd1e549d991110d0a09557ec9f925dbc1ca62871fcdab2ec9d716b"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fce7a8ee8d0f682c953c0188735d823f0fcb62779bf92cd6ba473a8e730e26ad"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4c7f9d70f99e1fbcbf57c75328b80e1c0a7f6cad43e75efa90a97221be5efe15"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b309908b6ff5ffbf6394818cb73b5a2a74073acee2c57fe8719046389aeff0d"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3ff1f585a0fdc1415bd733b804f33d386064a308672249b14828130dd43e7c31"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:0188b580c490bccb031e9b67e9e8c695a3c44ac5e06218b152361eca847317c3"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:abe081453166e206e3a8c6d8ace57214c17b6d9477d7601ac14a365344dbc1f4"}, - {file = "rpds_py-0.10.2-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9118de88c16947eaf5b92f749e65b0501ea69e7c2be7bd6aefc12551622360e1"}, - {file = "rpds_py-0.10.2.tar.gz", hash = "sha256:289073f68452b96e70990085324be7223944c7409973d13ddfe0eea1c1b5663b"}, + {file = "rpds_py-0.10.4-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:e41824343c2c129599645373992b1ce17720bb8a514f04ff9567031e1c26951e"}, + {file = "rpds_py-0.10.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b9d8884d58ea8801e5906a491ab34af975091af76d1a389173db491ee7e316bb"}, + {file = "rpds_py-0.10.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5db93f9017b384a4f194e1d89e1ce82d0a41b1fafdbbd3e0c8912baf13f2950f"}, + {file = "rpds_py-0.10.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c31ecfc53ac03dad4928a1712f3a2893008bfba1b3cde49e1c14ff67faae2290"}, + {file = "rpds_py-0.10.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4f92d2372ec992c82fd7c74aa21e2a1910b3dcdc6a7e6392919a138f21d528a3"}, + {file = "rpds_py-0.10.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f7ea49ddf51d5ec0c3cbd95190dd15e077a3153c8d4b22a33da43b5dd2b3c640"}, + {file = "rpds_py-0.10.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c27942722cd5039bbf5098c7e21935a96243fed00ea11a9589f3c6c6424bd84"}, + {file = "rpds_py-0.10.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:08f07150c8ebbdbce1d2d51b8e9f4d588749a2af6a98035485ebe45c7ad9394e"}, + {file = "rpds_py-0.10.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f3331a3684192659fa1090bf2b448db928152fcba08222e58106f44758ef25f7"}, + {file = "rpds_py-0.10.4-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:efffa359cc69840c8793f0c05a7b663de6afa7b9078fa6c80309ee38b9db677d"}, + {file = "rpds_py-0.10.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:86e8d6ff15fa7a9590c0addaf3ce52fb58bda4299cab2c2d0afa404db6848dab"}, + {file = "rpds_py-0.10.4-cp310-none-win32.whl", hash = "sha256:8f90fc6dd505867514c8b8ef68a712dc0be90031a773c1ae2ad469f04062daef"}, + {file = "rpds_py-0.10.4-cp310-none-win_amd64.whl", hash = "sha256:9f9184744fb800c9f28e155a5896ecb54816296ee79d5d1978be6a2ae60f53c4"}, + {file = "rpds_py-0.10.4-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:72e9b1e92830c876cd49565d8404e4dcc9928302d348ea2517bc3f9e3a873a2a"}, + {file = "rpds_py-0.10.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3650eae998dc718960e90120eb45d42bd57b18b21b10cb9ee05f91bff2345d48"}, + {file = "rpds_py-0.10.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f40413d2859737ce6d95c29ce2dde0ef7cdc3063b5830ae4342fef5922c3bba7"}, + {file = "rpds_py-0.10.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b953d11b544ca5f2705bb77b177d8e17ab1bfd69e0fd99790a11549d2302258c"}, + {file = "rpds_py-0.10.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:28b4942ec7d9d6114c1e08cace0157db92ef674636a38093cab779ace5742d3a"}, + {file = "rpds_py-0.10.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e0e2e01c5f61ddf47e3ed2d1fe1c9136e780ca6222d57a2517b9b02afd4710c"}, + {file = "rpds_py-0.10.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:927e3461dae0c09b1f2e0066e50c1a9204f8a64a3060f596e9a6742d3b307785"}, + {file = "rpds_py-0.10.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8e69bbe0ede8f7fe2616e779421bbdb37f025c802335a90f6416e4d98b368a37"}, + {file = "rpds_py-0.10.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cc688a59c100f038fa9fec9e4ab457c2e2d1fca350fe7ea395016666f0d0a2dc"}, + {file = "rpds_py-0.10.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ec001689402b9104700b50a005c2d3d0218eae90eaa8bdbbd776fe78fe8a74b7"}, + {file = "rpds_py-0.10.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:628fbb8be71a103499d10b189af7764996ab2634ed7b44b423f1e19901606e0e"}, + {file = "rpds_py-0.10.4-cp311-none-win32.whl", hash = "sha256:e3f9c9e5dd8eba4768e15f19044e1b5e216929a43a54b4ab329e103aed9f3eda"}, + {file = "rpds_py-0.10.4-cp311-none-win_amd64.whl", hash = "sha256:3bc561c183684636c0099f9c3fbab8c1671841942edbce784bb01b4707d17924"}, + {file = "rpds_py-0.10.4-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:36ff30385fb9fb3ac23a28bffdd4a230a5229ed5b15704b708b7c84bfb7fce51"}, + {file = "rpds_py-0.10.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:db0589e0bf41ff6ce284ab045ca89f27be1adf19e7bce26c2e7de6739a70c18b"}, + {file = "rpds_py-0.10.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c330cb125983c5d380fef4a4155248a276297c86d64625fdaf500157e1981c"}, + {file = "rpds_py-0.10.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d230fddc60caced271cc038e43e6fb8f4dd6b2dbaa44ac9763f2d76d05b0365a"}, + {file = "rpds_py-0.10.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a9e864ec051a58fdb6bb2e6da03942adb20273897bc70067aee283e62bbac4d"}, + {file = "rpds_py-0.10.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5e41d5b334e8de4bc3f38843f31b2afa9a0c472ebf73119d3fd55cde08974bdf"}, + {file = "rpds_py-0.10.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5bb3f3cb6072c73e6ec1f865d8b80419b599f1597acf33f63fbf02252aab5a03"}, + {file = "rpds_py-0.10.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:576d48e1e45c211e99fc02655ade65c32a75d3e383ccfd98ce59cece133ed02c"}, + {file = "rpds_py-0.10.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b28b9668a22ca2cfca4433441ba9acb2899624a323787a509a3dc5fbfa79c49d"}, + {file = "rpds_py-0.10.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ddbd113a37307638f94be5ae232a325155fd24dbfae2c56455da8724b471e7be"}, + {file = "rpds_py-0.10.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bd0ad98c7d72b0e4cbfe89cdfa12cd07d2fd6ed22864341cdce12b318a383442"}, + {file = "rpds_py-0.10.4-cp312-none-win32.whl", hash = "sha256:2a97406d5e08b7095428f01dac0d3c091dc072351151945a167e7968d2755559"}, + {file = "rpds_py-0.10.4-cp312-none-win_amd64.whl", hash = "sha256:aab24b9bbaa3d49e666e9309556591aa00748bd24ea74257a405f7fed9e8b10d"}, + {file = "rpds_py-0.10.4-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:6c5ca3eb817fb54bfd066740b64a2b31536eb8fe0b183dc35b09a7bd628ed680"}, + {file = "rpds_py-0.10.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:fd37ab9a24021821b715478357af1cf369d5a42ac7405e83e5822be00732f463"}, + {file = "rpds_py-0.10.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2573ec23ad3a59dd2bc622befac845695972f3f2d08dc1a4405d017d20a6c225"}, + {file = "rpds_py-0.10.4-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:362faeae52dc6ccc50c0b6a01fa2ec0830bb61c292033f3749a46040b876f4ba"}, + {file = "rpds_py-0.10.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:40f6e53461b19ddbb3354fe5bcf3d50d4333604ae4bf25b478333d83ca68002c"}, + {file = "rpds_py-0.10.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6090ba604ea06b525a231450ae5d343917a393cbf50423900dea968daf61d16f"}, + {file = "rpds_py-0.10.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28e29dac59df890972f73c511948072897f512974714a803fe793635b80ff8c7"}, + {file = "rpds_py-0.10.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f82abb5c5b83dc30e96be99ce76239a030b62a73a13c64410e429660a5602bfd"}, + {file = "rpds_py-0.10.4-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:a3628815fd170a64624001bfb4e28946fd515bd672e68a1902d9e0290186eaf3"}, + {file = "rpds_py-0.10.4-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:d37f27ad80f742ef82796af3fe091888864958ad0bc8bab03da1830fa00c6004"}, + {file = "rpds_py-0.10.4-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:255a23bded80605e9f3997753e3a4b89c9aec9efb07ec036b1ca81440efcc1a9"}, + {file = "rpds_py-0.10.4-cp38-none-win32.whl", hash = "sha256:049098dabfe705e9638c55a3321137a821399c50940041a6fcce267a22c70db2"}, + {file = "rpds_py-0.10.4-cp38-none-win_amd64.whl", hash = "sha256:aa45cc71bf23a3181b8aa62466b5a2b7b7fb90fdc01df67ca433cd4fce7ec94d"}, + {file = "rpds_py-0.10.4-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:3507c459767cf24c11e9520e2a37c89674266abe8e65453e5cb66398aa47ee7b"}, + {file = "rpds_py-0.10.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2603e084054351cc65097da326570102c4c5bd07426ba8471ceaefdb0b642cc9"}, + {file = "rpds_py-0.10.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0f1d336786cb62613c72c00578c98e5bb8cd57b49c5bae5d4ab906ca7872f98"}, + {file = "rpds_py-0.10.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bf032367f921201deaecf221d4cc895ea84b3decf50a9c73ee106f961885a0ad"}, + {file = "rpds_py-0.10.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7f050ceffd8c730c1619a16bbf0b9cd037dcdb94b54710928ba38c7bde67e4a4"}, + {file = "rpds_py-0.10.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8709eb4ab477c533b7d0a76cd3065d7d95c9e25e6b9f6e27caeeb8c63e8799c9"}, + {file = "rpds_py-0.10.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc20dadb102140dff63529e08ce6f9745dbd36e673ebb2b1c4a63e134bca81c2"}, + {file = "rpds_py-0.10.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cd7da2adc721ccf19ac7ec86cae3a4fcaba03d9c477d5bd64ded6e9bb817bf3f"}, + {file = "rpds_py-0.10.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e5dba1c11e089b526379e74f6c636202e4c5bad9a48c7416502b8a5b0d026c91"}, + {file = "rpds_py-0.10.4-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ffd539d213c1ea2989ab92a5b9371ae7159c8c03cf2bcb9f2f594752f755ecd3"}, + {file = "rpds_py-0.10.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e791e3d13b14d0a7921804d0efe4d7bd15508bbcf8cb7a0c1ee1a27319a5f033"}, + {file = "rpds_py-0.10.4-cp39-none-win32.whl", hash = "sha256:2f2ac8bb01f705c5caaa7fe77ffd9b03f92f1b5061b94228f6ea5eaa0fca68ad"}, + {file = "rpds_py-0.10.4-cp39-none-win_amd64.whl", hash = "sha256:7c7ca791bedda059e5195cf7c6b77384657a51429357cdd23e64ac1d4973d6dc"}, + {file = "rpds_py-0.10.4-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:9c7e7bd1fa1f535af71dfcd3700fc83a6dc261a1204f8f5327d8ffe82e52905d"}, + {file = "rpds_py-0.10.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7089d8bfa8064b28b2e39f5af7bf12d42f61caed884e35b9b4ea9e6fb1175077"}, + {file = "rpds_py-0.10.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1f191befea279cb9669b57be97ab1785781c8bab805900e95742ebfaa9cbf1d"}, + {file = "rpds_py-0.10.4-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:98c0aecf661c175ce9cb17347fc51a5c98c3e9189ca57e8fcd9348dae18541db"}, + {file = "rpds_py-0.10.4-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d81359911c3bb31c899c6a5c23b403bdc0279215e5b3bc0d2a692489fed38632"}, + {file = "rpds_py-0.10.4-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:83da147124499fe41ed86edf34b4e81e951b3fe28edcc46288aac24e8a5c8484"}, + {file = "rpds_py-0.10.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49db6c0a0e6626c2b97f5e7f8f7074da21cbd8ec73340c25e839a2457c007efa"}, + {file = "rpds_py-0.10.4-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:125776d5db15162fdd9135372bef7fe4fb7c5f5810cf25898eb74a06a0816aec"}, + {file = "rpds_py-0.10.4-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:32819b662e3b4c26355a4403ea2f60c0a00db45b640fe722dd12db3d2ef807fb"}, + {file = "rpds_py-0.10.4-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:3bd38b80491ef9686f719c1ad3d24d14fbd0e069988fdd4e7d1a6ffcdd7f4a13"}, + {file = "rpds_py-0.10.4-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:2e79eeeff8394284b09577f36316d410525e0cf0133abb3de10660e704d3d38e"}, + {file = "rpds_py-0.10.4-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:3e37f1f134037601eb4b1f46854194f0cc082435dac2ee3de11e51529f7831f2"}, + {file = "rpds_py-0.10.4-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:ba3246c60303eab3d0e562addf25a983d60bddc36f4d1edc2510f056d19df255"}, + {file = "rpds_py-0.10.4-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9123ba0f3f98ff79780eebca9984a2b525f88563844b740f94cffb9099701230"}, + {file = "rpds_py-0.10.4-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d98802b78093c7083cc51f83da41a5be5a57d406798c9f69424bd75f8ae0812a"}, + {file = "rpds_py-0.10.4-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:58bae860d1d116e6b4e1aad0cdc48a187d5893994f56d26db0c5534df7a47afd"}, + {file = "rpds_py-0.10.4-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd7e62e7d5bcfa38a62d8397fba6d0428b970ab7954c2197501cd1624f7f0bbb"}, + {file = "rpds_py-0.10.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83f5228459b84fa6279e4126a53abfdd73cd9cc183947ee5084153880f65d7"}, + {file = "rpds_py-0.10.4-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4bcb1abecd998a72ad4e36a0fca93577fd0c059a6aacc44f16247031b98f6ff4"}, + {file = "rpds_py-0.10.4-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:9e7b3ad9f53ea9e085b3d27286dd13f8290969c0a153f8a52c8b5c46002c374b"}, + {file = "rpds_py-0.10.4-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:cbec8e43cace64e63398155dc585dc479a89fef1e57ead06c22d3441e1bd09c3"}, + {file = "rpds_py-0.10.4-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ad21c60fc880204798f320387164dcacc25818a7b4ec2a0bf6b6c1d57b007d23"}, + {file = "rpds_py-0.10.4-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:6baea8a4f6f01e69e75cfdef3edd4a4d1c4b56238febbdf123ce96d09fbff010"}, + {file = "rpds_py-0.10.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:94876c21512535955a960f42a155213315e6ab06a4ce8ce372341a2a1b143eeb"}, + {file = "rpds_py-0.10.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4cb55454a20d1b935f9eaab52e6ceab624a2efd8b52927c7ae7a43e02828dbe0"}, + {file = "rpds_py-0.10.4-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:13cbd79ccedc6b39c279af31ebfb0aec0467ad5d14641ddb15738bf6e4146157"}, + {file = "rpds_py-0.10.4-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:00a88003db3cc953f8656b59fc9af9d0637a1fb93c235814007988f8c153b2f2"}, + {file = "rpds_py-0.10.4-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d0f7f77a77c37159c9f417b8dd847f67a29e98c6acb52ee98fc6b91efbd1b2b6"}, + {file = "rpds_py-0.10.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70563a1596d2e0660ca2cebb738443437fc0e38597e7cbb276de0a7363924a52"}, + {file = "rpds_py-0.10.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e3ece9aa6d07e18c966f14b4352a4c6f40249f6174d3d2c694c1062e19c6adbb"}, + {file = "rpds_py-0.10.4-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:d5ad7b1a1f6964d19b1a8acfc14bf7864f39587b3e25c16ca04f6cd1815026b3"}, + {file = "rpds_py-0.10.4-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:60018626e637528a1fa64bb3a2b3e46ab7bf672052316d61c3629814d5e65052"}, + {file = "rpds_py-0.10.4-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ae8a32ab77a84cc870bbfb60645851ca0f7d58fd251085ad67464b1445d632ca"}, + {file = "rpds_py-0.10.4.tar.gz", hash = "sha256:18d5ff7fbd305a1d564273e9eb22de83ae3cd9cd6329fddc8f12f6428a711a6a"}, +] + +[[package]] +name = "ruff" +version = "0.1.0" +description = "An extremely fast Python linter, written in Rust." +optional = false +python-versions = ">=3.7" +files = [ + {file = "ruff-0.1.0-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:87114e254dee35e069e1b922d85d4b21a5b61aec759849f393e1dbb308a00439"}, + {file = "ruff-0.1.0-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:764f36d2982cc4a703e69fb73a280b7c539fd74b50c9ee531a4e3fe88152f521"}, + {file = "ruff-0.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65f4b7fb539e5cf0f71e9bd74f8ddab74cabdd673c6fb7f17a4dcfd29f126255"}, + {file = "ruff-0.1.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:299fff467a0f163baa282266b310589b21400de0a42d8f68553422fa6bf7ee01"}, + {file = "ruff-0.1.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d412678bf205787263bb702c984012a4f97e460944c072fd7cfa2bd084857c4"}, + {file = "ruff-0.1.0-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:a5391b49b1669b540924640587d8d24128e45be17d1a916b1801d6645e831581"}, + {file = "ruff-0.1.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee8cd57f454cdd77bbcf1e11ff4e0046fb6547cac1922cc6e3583ce4b9c326d1"}, + {file = "ruff-0.1.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fa7aeed7bc23861a2b38319b636737bf11cfa55d2109620b49cf995663d3e888"}, + {file = "ruff-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b04cd4298b43b16824d9a37800e4c145ba75c29c43ce0d74cad1d66d7ae0a4c5"}, + {file = "ruff-0.1.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:7186ccf54707801d91e6314a016d1c7895e21d2e4cd614500d55870ed983aa9f"}, + {file = "ruff-0.1.0-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:d88adfd93849bc62449518228581d132e2023e30ebd2da097f73059900d8dce3"}, + {file = "ruff-0.1.0-py3-none-musllinux_1_2_i686.whl", hash = "sha256:ad2ccdb3bad5a61013c76a9c1240fdfadf2c7103a2aeebd7bcbbed61f363138f"}, + {file = "ruff-0.1.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:b77f6cfa72c6eb19b5cac967cc49762ae14d036db033f7d97a72912770fd8e1c"}, + {file = "ruff-0.1.0-py3-none-win32.whl", hash = "sha256:480bd704e8af1afe3fd444cc52e3c900b936e6ca0baf4fb0281124330b6ceba2"}, + {file = "ruff-0.1.0-py3-none-win_amd64.whl", hash = "sha256:a76ba81860f7ee1f2d5651983f87beb835def94425022dc5f0803108f1b8bfa2"}, + {file = "ruff-0.1.0-py3-none-win_arm64.whl", hash = "sha256:45abdbdab22509a2c6052ecf7050b3f5c7d6b7898dc07e82869401b531d46da4"}, + {file = "ruff-0.1.0.tar.gz", hash = "sha256:ad6b13824714b19c5f8225871cf532afb994470eecb74631cd3500fe817e6b3f"}, ] [[package]] name = "setuptools" -version = "68.2.0" +version = "68.2.2" description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-68.2.0-py3-none-any.whl", hash = "sha256:af3d5949030c3f493f550876b2fd1dd5ec66689c4ee5d5344f009746f71fd5a8"}, - {file = "setuptools-68.2.0.tar.gz", hash = "sha256:00478ca80aeebeecb2f288d3206b0de568df5cd2b8fada1209843cc9a8d88a48"}, + {file = "setuptools-68.2.2-py3-none-any.whl", hash = "sha256:b454a35605876da60632df1a60f736524eb73cc47bbc9f3f1ef1b644de74fd2a"}, + {file = "setuptools-68.2.2.tar.gz", hash = "sha256:4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87"}, ] [package.extras] docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] -testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -2663,7 +2694,6 @@ files = [ name = "snakeviz" version = "2.2.0" description = "A web-based viewer for Python profiler output" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2678,7 +2708,6 @@ tornado = ">=2.0" name = "sniffio" version = "1.3.0" description = "Sniff out which async library your code is running under" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2690,7 +2719,6 @@ files = [ name = "snowballstemmer" version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -category = "dev" optional = false python-versions = "*" files = [ @@ -2700,44 +2728,42 @@ files = [ [[package]] name = "sphinx" -version = "5.3.0" +version = "7.2.6" description = "Python documentation generator" -category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.9" files = [ - {file = "Sphinx-5.3.0.tar.gz", hash = "sha256:51026de0a9ff9fc13c05d74913ad66047e104f56a129ff73e174eb5c3ee794b5"}, - {file = "sphinx-5.3.0-py3-none-any.whl", hash = "sha256:060ca5c9f7ba57a08a1219e547b269fadf125ae25b06b9fa7f66768efb652d6d"}, + {file = "sphinx-7.2.6-py3-none-any.whl", hash = "sha256:1e09160a40b956dc623c910118fa636da93bd3ca0b9876a7b3df90f07d691560"}, + {file = "sphinx-7.2.6.tar.gz", hash = "sha256:9a5160e1ea90688d5963ba09a2dcd8bdd526620edbb65c328728f1b2228d5ab5"}, ] [package.dependencies] alabaster = ">=0.7,<0.8" babel = ">=2.9" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} -docutils = ">=0.14,<0.20" +docutils = ">=0.18.1,<0.21" imagesize = ">=1.3" Jinja2 = ">=3.0" packaging = ">=21.0" -Pygments = ">=2.12" -requests = ">=2.5.0" +Pygments = ">=2.14" +requests = ">=2.25.0" snowballstemmer = ">=2.0" sphinxcontrib-applehelp = "*" sphinxcontrib-devhelp = "*" sphinxcontrib-htmlhelp = ">=2.0.0" sphinxcontrib-jsmath = "*" sphinxcontrib-qthelp = "*" -sphinxcontrib-serializinghtml = ">=1.1.5" +sphinxcontrib-serializinghtml = ">=1.1.9" [package.extras] docs = ["sphinxcontrib-websupport"] -lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-bugbear", "flake8-comprehensions", "flake8-simplify", "isort", "mypy (>=0.981)", "sphinx-lint", "types-requests", "types-typed-ast"] -test = ["cython", "html5lib", "pytest (>=4.6)", "typed_ast"] +lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-simplify", "isort", "mypy (>=0.990)", "ruff", "sphinx-lint", "types-requests"] +test = ["cython (>=3.0)", "filelock", "html5lib", "pytest (>=4.6)", "setuptools (>=67.0)"] [[package]] name = "sphinx-mdinclude" version = "0.5.3" description = "Markdown extension for Sphinx" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2754,7 +2780,6 @@ pygments = ">=2.8" name = "sphinx-multiversion" version = "0.2.4" description = "Add support for multiple versions to sphinx" -category = "dev" optional = false python-versions = "*" files = [ @@ -2769,7 +2794,6 @@ sphinx = ">=2.1" name = "sphinx-rtd-theme" version = "1.3.0" description = "Read the Docs theme for Sphinx" -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -2789,7 +2813,6 @@ dev = ["bump2version", "sphinxcontrib-httpdomain", "transifex-client", "wheel"] name = "sphinxcontrib-applehelp" version = "1.0.7" description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" -category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -2808,7 +2831,6 @@ test = ["pytest"] name = "sphinxcontrib-bibtex" version = "2.5.0" description = "Sphinx extension for BibTeX style citations." -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2826,7 +2848,6 @@ Sphinx = ">=2.1" name = "sphinxcontrib-devhelp" version = "1.0.5" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" -category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -2845,7 +2866,6 @@ test = ["pytest"] name = "sphinxcontrib-htmlhelp" version = "2.0.4" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -2864,7 +2884,6 @@ test = ["html5lib", "pytest"] name = "sphinxcontrib-httpdomain" version = "1.8.1" description = "Sphinx domain for documenting HTTP APIs" -category = "dev" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" files = [ @@ -2880,7 +2899,6 @@ Sphinx = ">=1.6" name = "sphinxcontrib-jquery" version = "4.1" description = "Extension to include jQuery on newer Sphinx releases" -category = "dev" optional = false python-versions = ">=2.7" files = [ @@ -2895,7 +2913,6 @@ Sphinx = ">=1.8" name = "sphinxcontrib-jsmath" version = "1.0.1" description = "A sphinx extension which renders display math in HTML via JavaScript" -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -2908,15 +2925,12 @@ test = ["flake8", "mypy", "pytest"] [[package]] name = "sphinxcontrib-openapi" -version = "0.8.1" +version = "0.8.2.dev2+g8ad26ba" description = "OpenAPI (fka Swagger) spec renderer for Sphinx" -category = "dev" optional = false python-versions = ">=3.7" -files = [ - {file = "sphinxcontrib-openapi-0.8.1.tar.gz", hash = "sha256:04fcf87c259345162a504ce3dfee0f71389f507c3797798dc531c7748995b4eb"}, - {file = "sphinxcontrib_openapi-0.8.1-py3-none-any.whl", hash = "sha256:45ecad2a98e304d3665c133ea08a7083a2b5d86e75c6b64c60389240b3927ad5"}, -] +files = [] +develop = false [package.dependencies] deepmerge = ">=0.1" @@ -2927,11 +2941,16 @@ sphinx = ">=2.0" sphinx-mdinclude = ">=0.5.2" sphinxcontrib-httpdomain = ">=1.5.0" +[package.source] +type = "git" +url = "https://github.com/glatterf42/openapi.git" +reference = "enh/openapi31-anyOf" +resolved_reference = "8ad26ba1dad96f061f3d23328bdc7d3387411764" + [[package]] name = "sphinxcontrib-qthelp" version = "1.0.6" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" -category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -2950,7 +2969,6 @@ test = ["pytest"] name = "sphinxcontrib-serializinghtml" version = "1.1.9" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" -category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -2967,53 +2985,60 @@ test = ["pytest"] [[package]] name = "sqlalchemy" -version = "2.0.20" +version = "2.0.22" description = "Database Abstraction Library" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "SQLAlchemy-2.0.20-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:759b51346aa388c2e606ee206c0bc6f15a5299f6174d1e10cadbe4530d3c7a98"}, - {file = "SQLAlchemy-2.0.20-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1506e988ebeaaf316f183da601f24eedd7452e163010ea63dbe52dc91c7fc70e"}, - {file = "SQLAlchemy-2.0.20-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5768c268df78bacbde166b48be788b83dddaa2a5974b8810af422ddfe68a9bc8"}, - {file = "SQLAlchemy-2.0.20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3f0dd6d15b6dc8b28a838a5c48ced7455c3e1fb47b89da9c79cc2090b072a50"}, - {file = "SQLAlchemy-2.0.20-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:243d0fb261f80a26774829bc2cee71df3222587ac789b7eaf6555c5b15651eed"}, - {file = "SQLAlchemy-2.0.20-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6eb6d77c31e1bf4268b4d61b549c341cbff9842f8e115ba6904249c20cb78a61"}, - {file = "SQLAlchemy-2.0.20-cp310-cp310-win32.whl", hash = "sha256:bcb04441f370cbe6e37c2b8d79e4af9e4789f626c595899d94abebe8b38f9a4d"}, - {file = "SQLAlchemy-2.0.20-cp310-cp310-win_amd64.whl", hash = "sha256:d32b5ffef6c5bcb452723a496bad2d4c52b346240c59b3e6dba279f6dcc06c14"}, - {file = "SQLAlchemy-2.0.20-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dd81466bdbc82b060c3c110b2937ab65ace41dfa7b18681fdfad2f37f27acdd7"}, - {file = "SQLAlchemy-2.0.20-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6fe7d61dc71119e21ddb0094ee994418c12f68c61b3d263ebaae50ea8399c4d4"}, - {file = "SQLAlchemy-2.0.20-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4e571af672e1bb710b3cc1a9794b55bce1eae5aed41a608c0401885e3491179"}, - {file = "SQLAlchemy-2.0.20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3364b7066b3c7f4437dd345d47271f1251e0cfb0aba67e785343cdbdb0fff08c"}, - {file = "SQLAlchemy-2.0.20-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1be86ccea0c965a1e8cd6ccf6884b924c319fcc85765f16c69f1ae7148eba64b"}, - {file = "SQLAlchemy-2.0.20-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1d35d49a972649b5080557c603110620a86aa11db350d7a7cb0f0a3f611948a0"}, - {file = "SQLAlchemy-2.0.20-cp311-cp311-win32.whl", hash = "sha256:27d554ef5d12501898d88d255c54eef8414576f34672e02fe96d75908993cf53"}, - {file = "SQLAlchemy-2.0.20-cp311-cp311-win_amd64.whl", hash = "sha256:411e7f140200c02c4b953b3dbd08351c9f9818d2bd591b56d0fa0716bd014f1e"}, - {file = "SQLAlchemy-2.0.20-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3c6aceebbc47db04f2d779db03afeaa2c73ea3f8dcd3987eb9efdb987ffa09a3"}, - {file = "SQLAlchemy-2.0.20-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7d3f175410a6db0ad96b10bfbb0a5530ecd4fcf1e2b5d83d968dd64791f810ed"}, - {file = "SQLAlchemy-2.0.20-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea8186be85da6587456c9ddc7bf480ebad1a0e6dcbad3967c4821233a4d4df57"}, - {file = "SQLAlchemy-2.0.20-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c3d99ba99007dab8233f635c32b5cd24fb1df8d64e17bc7df136cedbea427897"}, - {file = "SQLAlchemy-2.0.20-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:76fdfc0f6f5341987474ff48e7a66c3cd2b8a71ddda01fa82fedb180b961630a"}, - {file = "SQLAlchemy-2.0.20-cp37-cp37m-win32.whl", hash = "sha256:d3793dcf5bc4d74ae1e9db15121250c2da476e1af8e45a1d9a52b1513a393459"}, - {file = "SQLAlchemy-2.0.20-cp37-cp37m-win_amd64.whl", hash = "sha256:79fde625a0a55220d3624e64101ed68a059c1c1f126c74f08a42097a72ff66a9"}, - {file = "SQLAlchemy-2.0.20-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:599ccd23a7146e126be1c7632d1d47847fa9f333104d03325c4e15440fc7d927"}, - {file = "SQLAlchemy-2.0.20-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1a58052b5a93425f656675673ef1f7e005a3b72e3f2c91b8acca1b27ccadf5f4"}, - {file = "SQLAlchemy-2.0.20-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79543f945be7a5ada9943d555cf9b1531cfea49241809dd1183701f94a748624"}, - {file = "SQLAlchemy-2.0.20-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63e73da7fb030ae0a46a9ffbeef7e892f5def4baf8064786d040d45c1d6d1dc5"}, - {file = "SQLAlchemy-2.0.20-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3ce5e81b800a8afc870bb8e0a275d81957e16f8c4b62415a7b386f29a0cb9763"}, - {file = "SQLAlchemy-2.0.20-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cb0d3e94c2a84215532d9bcf10229476ffd3b08f481c53754113b794afb62d14"}, - {file = "SQLAlchemy-2.0.20-cp38-cp38-win32.whl", hash = "sha256:8dd77fd6648b677d7742d2c3cc105a66e2681cc5e5fb247b88c7a7b78351cf74"}, - {file = "SQLAlchemy-2.0.20-cp38-cp38-win_amd64.whl", hash = "sha256:6f8a934f9dfdf762c844e5164046a9cea25fabbc9ec865c023fe7f300f11ca4a"}, - {file = "SQLAlchemy-2.0.20-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:26a3399eaf65e9ab2690c07bd5cf898b639e76903e0abad096cd609233ce5208"}, - {file = "SQLAlchemy-2.0.20-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4cde2e1096cbb3e62002efdb7050113aa5f01718035ba9f29f9d89c3758e7e4e"}, - {file = "SQLAlchemy-2.0.20-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1b09ba72e4e6d341bb5bdd3564f1cea6095d4c3632e45dc69375a1dbe4e26ec"}, - {file = "SQLAlchemy-2.0.20-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b74eeafaa11372627ce94e4dc88a6751b2b4d263015b3523e2b1e57291102f0"}, - {file = "SQLAlchemy-2.0.20-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:77d37c1b4e64c926fa3de23e8244b964aab92963d0f74d98cbc0783a9e04f501"}, - {file = "SQLAlchemy-2.0.20-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:eefebcc5c555803065128401a1e224a64607259b5eb907021bf9b175f315d2a6"}, - {file = "SQLAlchemy-2.0.20-cp39-cp39-win32.whl", hash = "sha256:3423dc2a3b94125094897118b52bdf4d37daf142cbcf26d48af284b763ab90e9"}, - {file = "SQLAlchemy-2.0.20-cp39-cp39-win_amd64.whl", hash = "sha256:5ed61e3463021763b853628aef8bc5d469fe12d95f82c74ef605049d810f3267"}, - {file = "SQLAlchemy-2.0.20-py3-none-any.whl", hash = "sha256:63a368231c53c93e2b67d0c5556a9836fdcd383f7e3026a39602aad775b14acf"}, - {file = "SQLAlchemy-2.0.20.tar.gz", hash = "sha256:ca8a5ff2aa7f3ade6c498aaafce25b1eaeabe4e42b73e25519183e4566a16fc6"}, + {file = "SQLAlchemy-2.0.22-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f146c61ae128ab43ea3a0955de1af7e1633942c2b2b4985ac51cc292daf33222"}, + {file = "SQLAlchemy-2.0.22-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:875de9414393e778b655a3d97d60465eb3fae7c919e88b70cc10b40b9f56042d"}, + {file = "SQLAlchemy-2.0.22-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13790cb42f917c45c9c850b39b9941539ca8ee7917dacf099cc0b569f3d40da7"}, + {file = "SQLAlchemy-2.0.22-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e04ab55cf49daf1aeb8c622c54d23fa4bec91cb051a43cc24351ba97e1dd09f5"}, + {file = "SQLAlchemy-2.0.22-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a42c9fa3abcda0dcfad053e49c4f752eef71ecd8c155221e18b99d4224621176"}, + {file = "SQLAlchemy-2.0.22-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:14cd3bcbb853379fef2cd01e7c64a5d6f1d005406d877ed9509afb7a05ff40a5"}, + {file = "SQLAlchemy-2.0.22-cp310-cp310-win32.whl", hash = "sha256:d143c5a9dada696bcfdb96ba2de4a47d5a89168e71d05a076e88a01386872f97"}, + {file = "SQLAlchemy-2.0.22-cp310-cp310-win_amd64.whl", hash = "sha256:ccd87c25e4c8559e1b918d46b4fa90b37f459c9b4566f1dfbce0eb8122571547"}, + {file = "SQLAlchemy-2.0.22-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4f6ff392b27a743c1ad346d215655503cec64405d3b694228b3454878bf21590"}, + {file = "SQLAlchemy-2.0.22-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f776c2c30f0e5f4db45c3ee11a5f2a8d9de68e81eb73ec4237de1e32e04ae81c"}, + {file = "SQLAlchemy-2.0.22-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8f1792d20d2f4e875ce7a113f43c3561ad12b34ff796b84002a256f37ce9437"}, + {file = "SQLAlchemy-2.0.22-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d80eeb5189d7d4b1af519fc3f148fe7521b9dfce8f4d6a0820e8f5769b005051"}, + {file = "SQLAlchemy-2.0.22-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:69fd9e41cf9368afa034e1c81f3570afb96f30fcd2eb1ef29cb4d9371c6eece2"}, + {file = "SQLAlchemy-2.0.22-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:54bcceaf4eebef07dadfde424f5c26b491e4a64e61761dea9459103ecd6ccc95"}, + {file = "SQLAlchemy-2.0.22-cp311-cp311-win32.whl", hash = "sha256:7ee7ccf47aa503033b6afd57efbac6b9e05180f492aeed9fcf70752556f95624"}, + {file = "SQLAlchemy-2.0.22-cp311-cp311-win_amd64.whl", hash = "sha256:b560f075c151900587ade06706b0c51d04b3277c111151997ea0813455378ae0"}, + {file = "SQLAlchemy-2.0.22-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:2c9bac865ee06d27a1533471405ad240a6f5d83195eca481f9fc4a71d8b87df8"}, + {file = "SQLAlchemy-2.0.22-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:625b72d77ac8ac23da3b1622e2da88c4aedaee14df47c8432bf8f6495e655de2"}, + {file = "SQLAlchemy-2.0.22-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b39a6e21110204a8c08d40ff56a73ba542ec60bab701c36ce721e7990df49fb9"}, + {file = "SQLAlchemy-2.0.22-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53a766cb0b468223cafdf63e2d37f14a4757476157927b09300c8c5832d88560"}, + {file = "SQLAlchemy-2.0.22-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0e1ce8ebd2e040357dde01a3fb7d30d9b5736b3e54a94002641dfd0aa12ae6ce"}, + {file = "SQLAlchemy-2.0.22-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:505f503763a767556fa4deae5194b2be056b64ecca72ac65224381a0acab7ebe"}, + {file = "SQLAlchemy-2.0.22-cp312-cp312-win32.whl", hash = "sha256:154a32f3c7b00de3d090bc60ec8006a78149e221f1182e3edcf0376016be9396"}, + {file = "SQLAlchemy-2.0.22-cp312-cp312-win_amd64.whl", hash = "sha256:129415f89744b05741c6f0b04a84525f37fbabe5dc3774f7edf100e7458c48cd"}, + {file = "SQLAlchemy-2.0.22-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3940677d341f2b685a999bffe7078697b5848a40b5f6952794ffcf3af150c301"}, + {file = "SQLAlchemy-2.0.22-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55914d45a631b81a8a2cb1a54f03eea265cf1783241ac55396ec6d735be14883"}, + {file = "SQLAlchemy-2.0.22-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2096d6b018d242a2bcc9e451618166f860bb0304f590d205173d317b69986c95"}, + {file = "SQLAlchemy-2.0.22-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:19c6986cf2fb4bc8e0e846f97f4135a8e753b57d2aaaa87c50f9acbe606bd1db"}, + {file = "SQLAlchemy-2.0.22-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:6ac28bd6888fe3c81fbe97584eb0b96804bd7032d6100b9701255d9441373ec1"}, + {file = "SQLAlchemy-2.0.22-cp37-cp37m-win32.whl", hash = "sha256:cb9a758ad973e795267da334a92dd82bb7555cb36a0960dcabcf724d26299db8"}, + {file = "SQLAlchemy-2.0.22-cp37-cp37m-win_amd64.whl", hash = "sha256:40b1206a0d923e73aa54f0a6bd61419a96b914f1cd19900b6c8226899d9742ad"}, + {file = "SQLAlchemy-2.0.22-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3aa1472bf44f61dd27987cd051f1c893b7d3b17238bff8c23fceaef4f1133868"}, + {file = "SQLAlchemy-2.0.22-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:56a7e2bb639df9263bf6418231bc2a92a773f57886d371ddb7a869a24919face"}, + {file = "SQLAlchemy-2.0.22-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ccca778c0737a773a1ad86b68bda52a71ad5950b25e120b6eb1330f0df54c3d0"}, + {file = "SQLAlchemy-2.0.22-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c6c3e9350f9fb16de5b5e5fbf17b578811a52d71bb784cc5ff71acb7de2a7f9"}, + {file = "SQLAlchemy-2.0.22-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:564e9f9e4e6466273dbfab0e0a2e5fe819eec480c57b53a2cdee8e4fdae3ad5f"}, + {file = "SQLAlchemy-2.0.22-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:af66001d7b76a3fab0d5e4c1ec9339ac45748bc4a399cbc2baa48c1980d3c1f4"}, + {file = "SQLAlchemy-2.0.22-cp38-cp38-win32.whl", hash = "sha256:9e55dff5ec115316dd7a083cdc1a52de63693695aecf72bc53a8e1468ce429e5"}, + {file = "SQLAlchemy-2.0.22-cp38-cp38-win_amd64.whl", hash = "sha256:4e869a8ff7ee7a833b74868a0887e8462445ec462432d8cbeff5e85f475186da"}, + {file = "SQLAlchemy-2.0.22-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9886a72c8e6371280cb247c5d32c9c8fa141dc560124348762db8a8b236f8692"}, + {file = "SQLAlchemy-2.0.22-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a571bc8ac092a3175a1d994794a8e7a1f2f651e7c744de24a19b4f740fe95034"}, + {file = "SQLAlchemy-2.0.22-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8db5ba8b7da759b727faebc4289a9e6a51edadc7fc32207a30f7c6203a181592"}, + {file = "SQLAlchemy-2.0.22-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b0b3f2686c3f162123adba3cb8b626ed7e9b8433ab528e36ed270b4f70d1cdb"}, + {file = "SQLAlchemy-2.0.22-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0c1fea8c0abcb070ffe15311853abfda4e55bf7dc1d4889497b3403629f3bf00"}, + {file = "SQLAlchemy-2.0.22-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4bb062784f37b2d75fd9b074c8ec360ad5df71f933f927e9e95c50eb8e05323c"}, + {file = "SQLAlchemy-2.0.22-cp39-cp39-win32.whl", hash = "sha256:58a3aba1bfb32ae7af68da3f277ed91d9f57620cf7ce651db96636790a78b736"}, + {file = "SQLAlchemy-2.0.22-cp39-cp39-win_amd64.whl", hash = "sha256:92e512a6af769e4725fa5b25981ba790335d42c5977e94ded07db7d641490a85"}, + {file = "SQLAlchemy-2.0.22-py3-none-any.whl", hash = "sha256:3076740335e4aaadd7deb3fe6dcb96b3015f1613bd190a4e1634e1b99b02ec86"}, + {file = "SQLAlchemy-2.0.22.tar.gz", hash = "sha256:5434cc601aa17570d79e5377f5fd45ff92f9379e2abed0be5e8c2fba8d353d2b"}, ] [package.dependencies] @@ -3047,14 +3072,13 @@ sqlcipher = ["sqlcipher3-binary"] [[package]] name = "sqlalchemy-utils" -version = "0.40.0" +version = "0.41.1" description = "Various utility functions for SQLAlchemy." -category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "SQLAlchemy-Utils-0.40.0.tar.gz", hash = "sha256:af803089a7929803faeb6173b90f29d1a67ad02f1d1e732f40b054a8eb3c7370"}, - {file = "SQLAlchemy_Utils-0.40.0-py3-none-any.whl", hash = "sha256:4c7098d4857d5cad1248bf7cd940727aecb75b596a5574b86a93b37079929520"}, + {file = "SQLAlchemy-Utils-0.41.1.tar.gz", hash = "sha256:a2181bff01eeb84479e38571d2c0718eb52042f9afd8c194d0d02877e84b7d74"}, + {file = "SQLAlchemy_Utils-0.41.1-py3-none-any.whl", hash = "sha256:6c96b0768ea3f15c0dc56b363d386138c562752b84f647fb8d31a2223aaab801"}, ] [package.dependencies] @@ -3069,21 +3093,20 @@ intervals = ["intervals (>=0.7.1)"] password = ["passlib (>=1.6,<2.0)"] pendulum = ["pendulum (>=2.0.5)"] phone = ["phonenumbers (>=5.9.2)"] -test = ["Jinja2 (>=2.3)", "Pygments (>=1.2)", "backports.zoneinfo", "docutils (>=0.10)", "flake8 (>=2.4.0)", "flexmock (>=0.9.7)", "isort (>=4.2.2)", "pg8000 (>=1.12.4)", "psycopg2 (>=2.5.1)", "psycopg2cffi (>=2.8.1)", "pymysql", "pyodbc", "pytest (>=2.7.1)", "python-dateutil (>=2.6)", "pytz (>=2014.2)"] -test-all = ["Babel (>=1.3)", "Jinja2 (>=2.3)", "Pygments (>=1.2)", "arrow (>=0.3.4)", "backports.zoneinfo", "colour (>=0.0.4)", "cryptography (>=0.6)", "docutils (>=0.10)", "flake8 (>=2.4.0)", "flexmock (>=0.9.7)", "furl (>=0.4.1)", "intervals (>=0.7.1)", "isort (>=4.2.2)", "passlib (>=1.6,<2.0)", "pendulum (>=2.0.5)", "pg8000 (>=1.12.4)", "phonenumbers (>=5.9.2)", "psycopg2 (>=2.5.1)", "psycopg2cffi (>=2.8.1)", "pymysql", "pyodbc", "pytest (>=2.7.1)", "python-dateutil", "python-dateutil (>=2.6)", "pytz (>=2014.2)"] +test = ["Jinja2 (>=2.3)", "Pygments (>=1.2)", "backports.zoneinfo", "docutils (>=0.10)", "flake8 (>=2.4.0)", "flexmock (>=0.9.7)", "isort (>=4.2.2)", "pg8000 (>=1.12.4)", "psycopg (>=3.1.8)", "psycopg2 (>=2.5.1)", "psycopg2cffi (>=2.8.1)", "pymysql", "pyodbc", "pytest (>=2.7.1)", "python-dateutil (>=2.6)", "pytz (>=2014.2)"] +test-all = ["Babel (>=1.3)", "Jinja2 (>=2.3)", "Pygments (>=1.2)", "arrow (>=0.3.4)", "backports.zoneinfo", "colour (>=0.0.4)", "cryptography (>=0.6)", "docutils (>=0.10)", "flake8 (>=2.4.0)", "flexmock (>=0.9.7)", "furl (>=0.4.1)", "intervals (>=0.7.1)", "isort (>=4.2.2)", "passlib (>=1.6,<2.0)", "pendulum (>=2.0.5)", "pg8000 (>=1.12.4)", "phonenumbers (>=5.9.2)", "psycopg (>=3.1.8)", "psycopg2 (>=2.5.1)", "psycopg2cffi (>=2.8.1)", "pymysql", "pyodbc", "pytest (>=2.7.1)", "python-dateutil", "python-dateutil (>=2.6)", "pytz (>=2014.2)"] timezone = ["python-dateutil"] url = ["furl (>=0.4.1)"] [[package]] name = "stack-data" -version = "0.6.2" +version = "0.6.3" description = "Extract data from python stack frames and tracebacks for informative displays" -category = "dev" optional = false python-versions = "*" files = [ - {file = "stack_data-0.6.2-py3-none-any.whl", hash = "sha256:cbb2a53eb64e5785878201a97ed7c7b94883f48b87bfb0bbe8b623c74679e4a8"}, - {file = "stack_data-0.6.2.tar.gz", hash = "sha256:32d2dd0376772d01b6cb9fc996f3c8b57a357089dec328ed4b6553d037eaf815"}, + {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, + {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, ] [package.dependencies] @@ -3096,14 +3119,13 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] [[package]] name = "starlette" -version = "0.26.1" +version = "0.27.0" description = "The little ASGI library that shines." -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "starlette-0.26.1-py3-none-any.whl", hash = "sha256:e87fce5d7cbdde34b76f0ac69013fd9d190d581d80681493016666e6f96c6d5e"}, - {file = "starlette-0.26.1.tar.gz", hash = "sha256:41da799057ea8620e4667a3e69a5b1923ebd32b1819c8fa75634bbe8d8bea9bd"}, + {file = "starlette-0.27.0-py3-none-any.whl", hash = "sha256:918416370e846586541235ccd38a474c08b80443ed31c578a418e2209b3eef91"}, + {file = "starlette-0.27.0.tar.gz", hash = "sha256:6a6b0d042acb8d469a01eba54e9cda6cbd24ac602c4cd016723117d6a7e73b75"}, ] [package.dependencies] @@ -3116,7 +3138,6 @@ full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart", "pyyam name = "toml" version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" -category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -3128,7 +3149,6 @@ files = [ name = "tomli" version = "2.0.1" description = "A lil' TOML parser" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3140,7 +3160,6 @@ files = [ name = "toolz" version = "0.12.0" description = "List processing tools and functional utilities" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -3152,7 +3171,6 @@ files = [ name = "tornado" version = "6.3.3" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." -category = "dev" optional = false python-versions = ">= 3.8" files = [ @@ -3171,46 +3189,73 @@ files = [ [[package]] name = "traitlets" -version = "5.9.0" +version = "5.11.2" description = "Traitlets Python configuration system" -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "traitlets-5.9.0-py3-none-any.whl", hash = "sha256:9e6ec080259b9a5940c797d58b613b5e31441c2257b87c2e795c5228ae80d2d8"}, - {file = "traitlets-5.9.0.tar.gz", hash = "sha256:f6cde21a9c68cf756af02035f72d5a723bf607e862e7be33ece505abf4a3bad9"}, + {file = "traitlets-5.11.2-py3-none-any.whl", hash = "sha256:98277f247f18b2c5cabaf4af369187754f4fb0e85911d473f72329db8a7f4fae"}, + {file = "traitlets-5.11.2.tar.gz", hash = "sha256:7564b5bf8d38c40fa45498072bf4dc5e8346eb087bbf1e2ae2d8774f6a0f078e"}, ] [package.extras] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] -test = ["argcomplete (>=2.0)", "pre-commit", "pytest", "pytest-mock"] +test = ["argcomplete (>=3.0.3)", "mypy (>=1.5.1)", "pre-commit", "pytest (>=7.0,<7.5)", "pytest-mock", "pytest-mypy-testing"] + +[[package]] +name = "typeguard" +version = "4.1.5" +description = "Run-time type checker for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typeguard-4.1.5-py3-none-any.whl", hash = "sha256:8923e55f8873caec136c892c3bed1f676eae7be57cdb94819281b3d3bc9c0953"}, + {file = "typeguard-4.1.5.tar.gz", hash = "sha256:ea0a113bbc111bcffc90789ebb215625c963411f7096a7e9062d4e4630c155fd"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.7.0", markers = "python_version < \"3.12\""} + +[package.extras] +doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)"] +test = ["coverage[toml] (>=7)", "mypy (>=1.2.0)", "pytest (>=7)"] [[package]] name = "typer" -version = "0.4.2" +version = "0.9.0" description = "Typer, build great CLIs. Easy to code. Based on Python type hints." -category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "typer-0.4.2-py3-none-any.whl", hash = "sha256:023bae00d1baf358a6cc7cea45851639360bb716de687b42b0a4641cd99173f1"}, - {file = "typer-0.4.2.tar.gz", hash = "sha256:b8261c6c0152dd73478b5ba96ba677e5d6948c715c310f7c91079f311f62ec03"}, + {file = "typer-0.9.0-py3-none-any.whl", hash = "sha256:5d96d986a21493606a358cae4461bd8cdf83cbf33a5aa950ae629ca3b51467ee"}, + {file = "typer-0.9.0.tar.gz", hash = "sha256:50922fd79aea2f4751a8e0408ff10d2662bd0c8bbfa84755a699f3bada2978b2"}, ] [package.dependencies] click = ">=7.1.1,<9.0.0" +typing-extensions = ">=3.7.4.3" [package.extras] -all = ["colorama (>=0.4.3,<0.5.0)", "shellingham (>=1.3.0,<2.0.0)"] +all = ["colorama (>=0.4.3,<0.5.0)", "rich (>=10.11.0,<14.0.0)", "shellingham (>=1.3.0,<2.0.0)"] dev = ["autoflake (>=1.3.1,<2.0.0)", "flake8 (>=3.8.3,<4.0.0)", "pre-commit (>=2.17.0,<3.0.0)"] -doc = ["mdx-include (>=1.4.1,<2.0.0)", "mkdocs (>=1.1.2,<2.0.0)", "mkdocs-material (>=8.1.4,<9.0.0)"] -test = ["black (>=22.3.0,<23.0.0)", "coverage (>=5.2,<6.0)", "isort (>=5.0.6,<6.0.0)", "mypy (==0.910)", "pytest (>=4.4.0,<5.4.0)", "pytest-cov (>=2.10.0,<3.0.0)", "pytest-sugar (>=0.9.4,<0.10.0)", "pytest-xdist (>=1.32.0,<2.0.0)", "shellingham (>=1.3.0,<2.0.0)"] +doc = ["cairosvg (>=2.5.2,<3.0.0)", "mdx-include (>=1.4.1,<2.0.0)", "mkdocs (>=1.1.2,<2.0.0)", "mkdocs-material (>=8.1.4,<9.0.0)", "pillow (>=9.3.0,<10.0.0)"] +test = ["black (>=22.3.0,<23.0.0)", "coverage (>=6.2,<7.0)", "isort (>=5.0.6,<6.0.0)", "mypy (==0.910)", "pytest (>=4.4.0,<8.0.0)", "pytest-cov (>=2.10.0,<5.0.0)", "pytest-sugar (>=0.9.4,<0.10.0)", "pytest-xdist (>=1.32.0,<4.0.0)", "rich (>=10.11.0,<14.0.0)", "shellingham (>=1.3.0,<2.0.0)"] + +[[package]] +name = "types-pytz" +version = "2023.3.1.1" +description = "Typing stubs for pytz" +optional = false +python-versions = "*" +files = [ + {file = "types-pytz-2023.3.1.1.tar.gz", hash = "sha256:cc23d0192cd49c8f6bba44ee0c81e4586a8f30204970fc0894d209a6b08dab9a"}, + {file = "types_pytz-2023.3.1.1-py3-none-any.whl", hash = "sha256:1999a123a3dc0e39a2ef6d19f3f8584211de9e6a77fe7a0259f04a524e90a5cf"}, +] [[package]] name = "types-toml" version = "0.10.8.7" description = "Typing stubs for toml" -category = "dev" optional = false python-versions = "*" files = [ @@ -3220,21 +3265,19 @@ files = [ [[package]] name = "typing-extensions" -version = "4.7.1" -description = "Backported and Experimental Type Hints for Python 3.7+" -category = "main" +version = "4.8.0" +description = "Backported and Experimental Type Hints for Python 3.8+" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"}, - {file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"}, + {file = "typing_extensions-4.8.0-py3-none-any.whl", hash = "sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0"}, + {file = "typing_extensions-4.8.0.tar.gz", hash = "sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef"}, ] [[package]] name = "typing-inspect" version = "0.9.0" description = "Runtime inspection utilities for typing module." -category = "main" optional = false python-versions = "*" files = [ @@ -3250,7 +3293,6 @@ typing-extensions = ">=3.7.4" name = "tzdata" version = "2023.3" description = "Provider of IANA time zone data" -category = "main" optional = false python-versions = ">=2" files = [ @@ -3260,14 +3302,13 @@ files = [ [[package]] name = "urllib3" -version = "2.0.4" +version = "2.0.6" description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "urllib3-2.0.4-py3-none-any.whl", hash = "sha256:de7df1803967d2c2a98e4b11bb7d6bd9210474c46e8a0401514e3a42a75ebde4"}, - {file = "urllib3-2.0.4.tar.gz", hash = "sha256:8d22f86aae8ef5e410d4f539fde9ce6b2113a001bb4d189e0aed70642d602b11"}, + {file = "urllib3-2.0.6-py3-none-any.whl", hash = "sha256:7a7c7003b000adf9e7ca2a377c9688bbc54ed41b985789ed576570342a375cd2"}, + {file = "urllib3-2.0.6.tar.gz", hash = "sha256:b19e1a85d206b56d7df1d5e683df4a7725252a964e3993648dd0fb5a1c157564"}, ] [package.extras] @@ -3278,36 +3319,34 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "uvicorn" -version = "0.17.6" +version = "0.23.2" description = "The lightning-fast ASGI server." -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "uvicorn-0.17.6-py3-none-any.whl", hash = "sha256:19e2a0e96c9ac5581c01eb1a79a7d2f72bb479691acd2b8921fce48ed5b961a6"}, - {file = "uvicorn-0.17.6.tar.gz", hash = "sha256:5180f9d059611747d841a4a4c4ab675edf54c8489e97f96d0583ee90ac3bfc23"}, + {file = "uvicorn-0.23.2-py3-none-any.whl", hash = "sha256:1f9be6558f01239d4fdf22ef8126c39cb1ad0addf76c40e760549d2c2f43ab53"}, + {file = "uvicorn-0.23.2.tar.gz", hash = "sha256:4d3cc12d7727ba72b64d12d3cc7743124074c0a69f7b201512fc50c3e3f1569a"}, ] [package.dependencies] -asgiref = ">=3.4.0" click = ">=7.0" colorama = {version = ">=0.4", optional = true, markers = "sys_platform == \"win32\" and extra == \"standard\""} h11 = ">=0.8" -httptools = {version = ">=0.4.0", optional = true, markers = "extra == \"standard\""} +httptools = {version = ">=0.5.0", optional = true, markers = "extra == \"standard\""} python-dotenv = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} -PyYAML = {version = ">=5.1", optional = true, markers = "extra == \"standard\""} -uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "sys_platform != \"win32\" and sys_platform != \"cygwin\" and platform_python_implementation != \"PyPy\" and extra == \"standard\""} -watchgod = {version = ">=0.6", optional = true, markers = "extra == \"standard\""} -websockets = {version = ">=10.0", optional = true, markers = "extra == \"standard\""} +pyyaml = {version = ">=5.1", optional = true, markers = "extra == \"standard\""} +typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} +uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "(sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\" and extra == \"standard\""} +watchfiles = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} +websockets = {version = ">=10.4", optional = true, markers = "extra == \"standard\""} [package.extras] -standard = ["PyYAML (>=5.1)", "colorama (>=0.4)", "httptools (>=0.4.0)", "python-dotenv (>=0.13)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchgod (>=0.6)", "websockets (>=10.0)"] +standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] [[package]] name = "uvloop" version = "0.17.0" description = "Fast implementation of asyncio event loop on top of libuv" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3349,34 +3388,74 @@ docs = ["Sphinx (>=4.1.2,<4.2.0)", "sphinx-rtd-theme (>=0.5.2,<0.6.0)", "sphinxc test = ["Cython (>=0.29.32,<0.30.0)", "aiohttp", "flake8 (>=3.9.2,<3.10.0)", "mypy (>=0.800)", "psutil", "pyOpenSSL (>=22.0.0,<22.1.0)", "pycodestyle (>=2.7.0,<2.8.0)"] [[package]] -name = "watchgod" -version = "0.7" -description = "Simple, modern file watching and code reload in python." -category = "dev" +name = "virtualenv" +version = "20.24.5" +description = "Virtual Python Environment builder" optional = false -python-versions = ">=3.5" +python-versions = ">=3.7" files = [ - {file = "watchgod-0.7-py3-none-any.whl", hash = "sha256:d6c1ea21df37847ac0537ca0d6c2f4cdf513562e95f77bb93abbcf05573407b7"}, - {file = "watchgod-0.7.tar.gz", hash = "sha256:48140d62b0ebe9dd9cf8381337f06351e1f2e70b2203fa9c6eff4e572ca84f29"}, + {file = "virtualenv-20.24.5-py3-none-any.whl", hash = "sha256:b80039f280f4919c77b30f1c23294ae357c4c8701042086e3fc005963e4e537b"}, + {file = "virtualenv-20.24.5.tar.gz", hash = "sha256:e8361967f6da6fbdf1426483bfe9fca8287c242ac0bc30429905721cefbff752"}, ] +[package.dependencies] +distlib = ">=0.3.7,<1" +filelock = ">=3.12.2,<4" +platformdirs = ">=3.9.1,<4" + +[package.extras] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] + +[[package]] +name = "watchfiles" +version = "0.20.0" +description = "Simple, modern and high performance file watching and code reload in python." +optional = false +python-versions = ">=3.7" +files = [ + {file = "watchfiles-0.20.0-cp37-abi3-macosx_10_7_x86_64.whl", hash = "sha256:3796312bd3587e14926013612b23066912cf45a14af71cf2b20db1c12dadf4e9"}, + {file = "watchfiles-0.20.0-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:d0002d81c89a662b595645fb684a371b98ff90a9c7d8f8630c82f0fde8310458"}, + {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:570848706440373b4cd8017f3e850ae17f76dbdf1e9045fc79023b11e1afe490"}, + {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a0351d20d03c6f7ad6b2e8a226a5efafb924c7755ee1e34f04c77c3682417fa"}, + {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:007dcc4a401093010b389c044e81172c8a2520dba257c88f8828b3d460c6bb38"}, + {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0d82dbc1832da83e441d112069833eedd4cf583d983fb8dd666fbefbea9d99c0"}, + {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99f4c65fd2fce61a571b2a6fcf747d6868db0bef8a934e8ca235cc8533944d95"}, + {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5392dd327a05f538c56edb1c6ebba6af91afc81b40822452342f6da54907bbdf"}, + {file = "watchfiles-0.20.0-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:08dc702529bb06a2b23859110c214db245455532da5eaea602921687cfcd23db"}, + {file = "watchfiles-0.20.0-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:7d4e66a857621584869cfbad87039e65dadd7119f0d9bb9dbc957e089e32c164"}, + {file = "watchfiles-0.20.0-cp37-abi3-win32.whl", hash = "sha256:a03d1e6feb7966b417f43c3e3783188167fd69c2063e86bad31e62c4ea794cc5"}, + {file = "watchfiles-0.20.0-cp37-abi3-win_amd64.whl", hash = "sha256:eccc8942bcdc7d638a01435d915b913255bbd66f018f1af051cd8afddb339ea3"}, + {file = "watchfiles-0.20.0-cp37-abi3-win_arm64.whl", hash = "sha256:b17d4176c49d207865630da5b59a91779468dd3e08692fe943064da260de2c7c"}, + {file = "watchfiles-0.20.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:d97db179f7566dcf145c5179ddb2ae2a4450e3a634eb864b09ea04e68c252e8e"}, + {file = "watchfiles-0.20.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:835df2da7a5df5464c4a23b2d963e1a9d35afa422c83bf4ff4380b3114603644"}, + {file = "watchfiles-0.20.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:608cd94a8767f49521901aff9ae0c92cc8f5a24d528db7d6b0295290f9d41193"}, + {file = "watchfiles-0.20.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89d1de8218874925bce7bb2ae9657efc504411528930d7a83f98b1749864f2ef"}, + {file = "watchfiles-0.20.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:13f995d5152a8ba4ed7c2bbbaeee4e11a5944defc7cacd0ccb4dcbdcfd78029a"}, + {file = "watchfiles-0.20.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:9b5c8d3be7b502f8c43a33c63166ada8828dbb0c6d49c8f9ce990a96de2f5a49"}, + {file = "watchfiles-0.20.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e43af4464daa08723c04b43cf978ab86cc55c684c16172622bdac64b34e36af0"}, + {file = "watchfiles-0.20.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87d9e1f75c4f86c93d73b5bd1ebe667558357548f11b4f8af4e0e272f79413ce"}, + {file = "watchfiles-0.20.0.tar.gz", hash = "sha256:728575b6b94c90dd531514677201e8851708e6e4b5fe7028ac506a200b622019"}, +] + +[package.dependencies] +anyio = ">=3.0.0" + [[package]] name = "wcwidth" -version = "0.2.6" +version = "0.2.8" description = "Measures the displayed width of unicode strings in a terminal" -category = "dev" optional = false python-versions = "*" files = [ - {file = "wcwidth-0.2.6-py2.py3-none-any.whl", hash = "sha256:795b138f6875577cd91bba52baf9e445cd5118fd32723b460e30a0af30ea230e"}, - {file = "wcwidth-0.2.6.tar.gz", hash = "sha256:a5220780a404dbe3353789870978e472cfe477761f06ee55077256e509b156d0"}, + {file = "wcwidth-0.2.8-py2.py3-none-any.whl", hash = "sha256:77f719e01648ed600dfa5402c347481c0992263b81a027344f3e1ba25493a704"}, + {file = "wcwidth-0.2.8.tar.gz", hash = "sha256:8705c569999ffbb4f6a87c6d1b80f324bd6db952f5eb0b95bc07517f4c1813d4"}, ] [[package]] name = "websockets" version = "11.0.3" description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3456,7 +3535,6 @@ files = [ name = "wrapt" version = "1.15.0" description = "Module for decorators, wrappers and monkey patching." -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -3539,21 +3617,20 @@ files = [ [[package]] name = "zipp" -version = "3.16.2" +version = "3.17.0" description = "Backport of pathlib-compatible object wrapper for zip files" -category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "zipp-3.16.2-py3-none-any.whl", hash = "sha256:679e51dd4403591b2d6838a48de3d283f3d188412a9782faadf845f298736ba0"}, - {file = "zipp-3.16.2.tar.gz", hash = "sha256:ebc15946aa78bd63458992fc81ec3b6f7b1e92d51c35e6de1c3804e73b799147"}, + {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"}, + {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"] [metadata] lock-version = "2.0" python-versions = ">=3.10, <3.12" -content-hash = "e496455c65cb6dd803c719e68a58b1741aa2d9de5736bc1b501ad2e615f9f1be" +content-hash = "fec7275b6c685640ebc04d71ec74f69410390f0f9b0a8b02c2baf1e85b87ada4" diff --git a/pyproject.toml b/pyproject.toml index 3d824de1..b453604e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,58 +17,58 @@ documentation = "https://docs.ece.iiasa.ac.at/projects/ixmp4" [tool.poetry.dependencies] PyJWT = "^2.4.0" -SQLAlchemy = { extras = ["mypy"], version = "^2.0.7" } -SQLAlchemy-Utils = "^0.40.0" +SQLAlchemy = {extras = ["mypy"], version = "^2.0.22"} +SQLAlchemy-Utils = "^0.41.1" alembic = "^1.10.2" -dask = "^2023.4.0" -fastapi = "^0.94.0" -httpx = { extras = ["http2"], version = "^0.23.3" } +dask = "^2023.10.0" +fastapi = "^0.104.0" +httpx = {extras = ["http2"], version = "^0.25.0"} openpyxl = "^3.0.9" pandas = "^2.0.0" -pandera = "^0.13.4" -pydantic = "^1.10.5" +pandera = "^0.17.0" +pydantic = "^2.4.0" python = ">=3.10, <3.12" -python-dotenv = "^0.19.0" +python-dotenv = "^1.0.0" requests = "^2.27.1" -typer = "^0.4.0" +typer = "^0.9.0" toml = "^0.10.2" psycopg = {extras = ["binary"], version = "^3.1.10"} +pydantic-settings = "^2.0.3" [tool.poetry.group.docs] optional = true [tool.poetry.group.docs.dependencies] -sphinx = "5.3" +sphinx = "^7.2.6" sphinx-multiversion = "^0.2.4" sphinx-rtd-theme = "^1.1.1" sphinxcontrib-bibtex = "^2.5.0" -sphinxcontrib-openapi = "^0.8.1" +sphinxcontrib-openapi = {git = "https://github.com/glatterf42/openapi.git", branch = "enh/openapi31-anyOf"} [tool.poetry.group.server] optional = true [tool.poetry.group.server.dependencies] -gunicorn = "^20.1.0" -uvicorn = { version = "^0.17.0", extras = ["standard"]} +gunicorn = "^21.2.0" +uvicorn = {extras = ["standard"], version = "^0.23.2"} [tool.poetry.group.dev] optional = true [tool.poetry.group.dev.dependencies] -black = "^23.1.0" -flake8 = "^6.0.0" -flake8-bugbear = "^21.9.2" -mypy = "~1.0.1" -flake8-pyproject = "^1.2.2" +black = "^23.10.0" ptvsd = "^4.3.2" -pytest = "^6.2.5" -pytest-benchmark = "^3.4.1" -pytest-cov = "^2.12.1" +pytest = "^7.4.2" +pytest-benchmark = "^4.0.0" +pytest-cov = "^4.1.0" pytest-lazy-fixture = "^0.6.3" snakeviz = "^2.1.1" types-toml = "^0.10.8.7" -isort = "^5.12.0" -build = "^0.10.0" +build = "^1.0.3" +ruff = "^0.1.0" +pre-commit = "^3.5.0" +mypy = "^1.6.1" +pandas-stubs = "^2.0.3.230814" [tool.poetry.group.tutorial] optional = true @@ -93,34 +93,31 @@ exclude = [ ] disable_error_code = ['override'] implicit_reexport = true - plugins = ['sqlalchemy.ext.mypy.plugin'] [[tool.mypy.overrides]] module = ["pandas", "uvicorn.workers", "sqlalchemy_utils"] ignore_missing_imports = true -[tool.flake8] -max_line_length = 100 -max-complexity = 10 -select = ['C', 'E', 'F', 'W', 'B', 'B950'] -ignore = ['E203', 'E501', 'W503', 'B008'] -per-file-ignores = ['__init__.py:F401'] -count = true +[tool.ruff] +select = ["C9", "E", "F", "I", "W"] +ignore = ["B008"] +per-file-ignores = {"__init__.py"=["F401"]} exclude = [ - '.git', - '__pycache__', - '*.egg-info', - '.pytest_cache', - '.mypy_cache', - '.venv', - 'tests/', - 'example.py', - 'import.py', + ".git", + "__pycache__", + "*.egg-info", + ".pytest_cache", + ".mypy_cache", + ".venv", + "tests/", + "example.py", + "import.py", ] +line-length = 100 -[tool.isort] -profile = "black" +[tool.ruff.mccabe] +max-complexity = 10 [tool.poetry-dynamic-versioning] bump = true diff --git a/tests/core/test_iamc.py b/tests/core/test_iamc.py index 48f89f72..9aaf8e1d 100644 --- a/tests/core/test_iamc.py +++ b/tests/core/test_iamc.py @@ -1,6 +1,7 @@ import pytest -from ixmp4 import DataPoint, InconsistentIamcType +from ixmp4 import DataPoint +from ixmp4.core.exceptions import SchemaError from ..utils import add_regions, add_units, all_platforms, assert_unordered_equality @@ -20,7 +21,7 @@ def test_run_annual_datapoints_from_pyam(test_mp, test_data_annual): @all_platforms @pytest.mark.parametrize("_type", (DataPoint.Type.CATEGORICAL, DataPoint.Type.DATETIME)) def test_run_inconsistent_annual_raises(test_mp, test_data_annual, _type): - with pytest.raises(InconsistentIamcType): + with pytest.raises(SchemaError): do_run_datapoints(test_mp, test_data_annual, _type) @@ -32,7 +33,7 @@ def test_run_categorical_datapoints(test_mp, test_data_categorical): @all_platforms @pytest.mark.parametrize("_type", (DataPoint.Type.ANNUAL, DataPoint.Type.DATETIME)) def test_run_inconsistent_categorical_raises(test_mp, test_data_categorical, _type): - with pytest.raises(InconsistentIamcType): + with pytest.raises(SchemaError): do_run_datapoints(test_mp, test_data_categorical, _type) @@ -44,7 +45,7 @@ def test_run_datetime_datapoints(test_mp, test_data_datetime): @all_platforms @pytest.mark.parametrize("_type", (DataPoint.Type.ANNUAL, DataPoint.Type.CATEGORICAL)) def test_run_inconsistent_datetime_type_raises(test_mp, test_data_datetime, _type): - with pytest.raises(InconsistentIamcType): + with pytest.raises(SchemaError): do_run_datapoints(test_mp, test_data_datetime, _type) diff --git a/tests/core/test_run.py b/tests/core/test_run.py index d7c754af..f91b297a 100644 --- a/tests/core/test_run.py +++ b/tests/core/test_run.py @@ -2,7 +2,8 @@ import pandas.testing as pdt import pytest -from ixmp4 import DataPoint, InconsistentIamcType, IxmpError, Run +from ixmp4 import DataPoint, IxmpError, Run +from ixmp4.core.exceptions import SchemaError from ..utils import add_regions, add_units, all_platforms, assert_unordered_equality @@ -95,7 +96,7 @@ def test_run_annual_datapoints_from_pyam(self, test_mp, test_data_annual): "_type", (DataPoint.Type.CATEGORICAL, DataPoint.Type.DATETIME) ) def test_run_inconsistent_annual_raises(self, test_mp, test_data_annual, _type): - with pytest.raises(InconsistentIamcType): + with pytest.raises(SchemaError): do_run_datapoints(test_mp, test_data_annual, _type) def test_run_categorical_datapoints(self, test_mp, test_data_categorical): @@ -105,7 +106,7 @@ def test_run_categorical_datapoints(self, test_mp, test_data_categorical): def test_run_inconsistent_categorical_raises( self, test_mp, test_data_categorical, _type ): - with pytest.raises(InconsistentIamcType): + with pytest.raises(SchemaError): do_run_datapoints(test_mp, test_data_categorical, _type) def test_run_datetime_datapoints(self, test_mp, test_data_datetime): @@ -117,7 +118,7 @@ def test_run_datetime_datapoints(self, test_mp, test_data_datetime): def test_run_inconsistent_datetime_type_raises( self, test_mp, test_data_datetime, _type ): - with pytest.raises(InconsistentIamcType): + with pytest.raises(SchemaError): do_run_datapoints(test_mp, test_data_datetime, _type) def test_unit_dimensionless(self, test_mp, test_data_annual): diff --git a/tests/test_benchmarks.py b/tests/test_benchmarks.py index d918d8cf..1927193a 100644 --- a/tests/test_benchmarks.py +++ b/tests/test_benchmarks.py @@ -9,7 +9,7 @@ # skip tests if performance test file not found if TEST_DATA_BIG is None: - pytestmark = pytest.mark.skip(msg="Performance test file not found") # type: ignore + pytestmark = pytest.mark.skip(reason="Performance test file not found") # type: ignore def add_datapoints(test_mp, df, type=None):