From 47cfc223f6522aa99ad5617ce8096d73cace06e9 Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Silva Date: Tue, 29 Oct 2024 15:39:58 +0000 Subject: [PATCH 01/22] Added model for climaticindicator --- ...f4800cc76_added_climaticindicator_table.py | 52 ++++++++++++ arpav_ppcv/schemas/climaticindicators.py | 85 +++++++++++++++++++ arpav_ppcv/schemas/static.py | 62 ++++++++++++++ 3 files changed, 199 insertions(+) create mode 100644 arpav_ppcv/migrations/versions/ce2f4800cc76_added_climaticindicator_table.py create mode 100644 arpav_ppcv/schemas/climaticindicators.py create mode 100644 arpav_ppcv/schemas/static.py diff --git a/arpav_ppcv/migrations/versions/ce2f4800cc76_added_climaticindicator_table.py b/arpav_ppcv/migrations/versions/ce2f4800cc76_added_climaticindicator_table.py new file mode 100644 index 00000000..a2147658 --- /dev/null +++ b/arpav_ppcv/migrations/versions/ce2f4800cc76_added_climaticindicator_table.py @@ -0,0 +1,52 @@ +"""added climaticindicator table + +Revision ID: ce2f4800cc76 +Revises: 4df282a0319d +Create Date: 2024-10-29 13:30:29.859589 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa +import sqlmodel +from sqlalchemy.dialects import postgresql + +# revision identifiers, used by Alembic. +revision: str = 'ce2f4800cc76' +down_revision: Union[str, None] = '4df282a0319d' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + sa.Enum('ANNUAL', 'THIRTY_YEAR', name='aggregationperiod').create(op.get_bind()) + sa.Enum('ABSOLUTE', 'ANOMALY', name='measuretype').create(op.get_bind()) + op.create_table('climaticindicator', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sqlmodel.sql.sqltypes.AutoString(), nullable=False), + sa.Column('measure_type', postgresql.ENUM('ABSOLUTE', 'ANOMALY', name='measuretype', create_type=False), nullable=False), + sa.Column('aggregation_period', postgresql.ENUM('ANNUAL', 'THIRTY_YEAR', name='aggregationperiod', create_type=False), nullable=False), + sa.Column('display_name_english', sqlmodel.sql.sqltypes.AutoString(), nullable=False), + sa.Column('display_name_italian', sqlmodel.sql.sqltypes.AutoString(), nullable=False), + sa.Column('description_english', sqlmodel.sql.sqltypes.AutoString(), nullable=False), + sa.Column('description_italian', sqlmodel.sql.sqltypes.AutoString(), nullable=False), + sa.Column('unit_english', sqlmodel.sql.sqltypes.AutoString(), nullable=False), + sa.Column('unit_italian', sqlmodel.sql.sqltypes.AutoString(), nullable=False), + sa.Column('palette', sqlmodel.sql.sqltypes.AutoString(), nullable=False), + sa.Column('color_scale_min', sa.Float(), nullable=False), + sa.Column('color_scale_max', sa.Float(), nullable=False), + sa.Column('data_precision', sa.Integer(), nullable=False), + sa.Column('sort_order', sa.Integer(), nullable=False), + sa.PrimaryKeyConstraint('id') + ) + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('climaticindicator') + sa.Enum('ABSOLUTE', 'ANOMALY', name='measuretype').drop(op.get_bind()) + sa.Enum('ANNUAL', 'THIRTY_YEAR', name='aggregationperiod').drop(op.get_bind()) + # ### end Alembic commands ### diff --git a/arpav_ppcv/schemas/climaticindicators.py b/arpav_ppcv/schemas/climaticindicators.py new file mode 100644 index 00000000..66e10139 --- /dev/null +++ b/arpav_ppcv/schemas/climaticindicators.py @@ -0,0 +1,85 @@ +from typing import ( + Annotated, + ClassVar, + Final, + Optional, +) + +import pydantic +import sqlmodel + +from . import static + +_name_description_text: Final[str] = ( + "Parameter name. Only alphanumeric characters and the underscore are allowed. " + "Example: my_indicator" +) + + +class ClimaticIndicator(sqlmodel.SQLModel, table=True): + identifier_pattern: ClassVar[str] = "{name}-{measure_type}-{aggregation_period}" + + id: int | None = sqlmodel.Field(default=None, primary_key=True) + name: str + measure_type: static.MeasureType + aggregation_period: static.AggregationPeriod + display_name_english: str = sqlmodel.Field(default="") + display_name_italian: str = sqlmodel.Field(default="") + description_english: str = sqlmodel.Field(default="") + description_italian: str = sqlmodel.Field(default="") + unit_english: str = sqlmodel.Field(default="") + unit_italian: str = sqlmodel.Field(default="") + palette: str + color_scale_min: float + color_scale_max: float + data_precision: int = sqlmodel.Field(default=0) + sort_order: int = sqlmodel.Field(default=0) + + @pydantic.computed_field + @property + def identifier(self) -> str: + return self.identifier_pattern.format( + name=self.name, + measure_type=self.measure_type.value.lower(), + aggregation_period=self.aggregation_period.value.lower(), + ) + + +class ClimaticIndicatorCreate(sqlmodel.SQLModel): + name: Annotated[ + str, + pydantic.Field(pattern=static.NAME_PATTERN, description=_name_description_text), + ] + measure_type: static.MeasureType + aggregation_period: static.AggregationPeriod + display_name_english: str = sqlmodel.Field(default="") + display_name_italian: str = sqlmodel.Field(default="") + description_english: str = sqlmodel.Field(default="") + description_italian: str = sqlmodel.Field(default="") + unit_english: str = sqlmodel.Field(default="") + unit_italian: str = sqlmodel.Field(default="") + palette: str + color_scale_min: float = 0.0 + color_scale_max: float = 0.0 + data_precision: int = sqlmodel.Field(default=0) + sort_order: int = sqlmodel.Field(default=0) + + +class ClimaticIndicatorUpdate(sqlmodel.SQLModel): + name: Annotated[ + Optional[str], + pydantic.Field(pattern=static.NAME_PATTERN, description=_name_description_text), + ] = None + measure_type: Optional[static.MeasureType] = None + aggregation_period: Optional[static.AggregationPeriod] = None + display_name_english: Optional[str] = None + display_name_italian: Optional[str] = None + description_english: Optional[str] = None + description_italian: Optional[str] = None + unit_english: Optional[str] = None + unit_italian: Optional[str] = None + palette: Optional[str] = None + color_scale_min: Optional[float] = None + color_scale_max: Optional[float] = None + data_precision: Optional[int] = None + sort_order: Optional[int] = None diff --git a/arpav_ppcv/schemas/static.py b/arpav_ppcv/schemas/static.py new file mode 100644 index 00000000..8c118142 --- /dev/null +++ b/arpav_ppcv/schemas/static.py @@ -0,0 +1,62 @@ +import enum +from typing import Final + +import babel + +from ..config import get_translations + +NAME_PATTERN: Final[str] = r"^[a-z0-9_]+$" + + +class MeasureType(str, enum.Enum): + ABSOLUTE = "ABSOLUTE" + ANOMALY = "ANOMALY" + + def get_display_name(self, locale: babel.Locale) -> str: + translations = get_translations(locale) + _ = translations.gettext + return { + self.ABSOLUTE.name: _("absolute"), + self.ANOMALY.name: _("anomaly"), + }[self.name] or self.name + + def get_description(self, locale: babel.Locale) -> str: + translations = get_translations(locale) + _ = translations.gettext + return { + self.ABSOLUTE.name: _("absolute"), + self.ANOMALY.name: _("anomaly"), + }[self.name] or self.name + + def get_sort_order(self) -> int: + return { + self.ABSOLUTE.name: 0, + self.ANOMALY.name: 0, + }[self.name] + + +class AggregationPeriod(str, enum.Enum): + ANNUAL = "ANNUAL" + THIRTY_YEAR = "THIRTY_YEAR" + + def get_display_name(self, locale: babel.Locale) -> str: + translations = get_translations(locale) + _ = translations.gettext + return { + self.ANNUAL.name: _("annual"), + self.THIRTY_YEAR.name: _("30yr"), + }[self.name] or self.name + + def get_description(self, locale: babel.Locale) -> str: + translations = get_translations(locale) + _ = translations.gettext + return { + self.ANNUAL.name: _("annual"), + self.THIRTY_YEAR.name: _("30yr"), + }[self.name] or self.name + + def get_sort_order(self) -> int: + return { + self.ANNUAL.name: 0, + self.THIRTY_YEAR.name: 0, + }[self.name] From 42798466d1cb725fbe4461d779b53a38a74c5ed7 Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Silva Date: Tue, 29 Oct 2024 15:40:43 +0000 Subject: [PATCH 02/22] Added database operations for crud'ing a climatic indicator --- arpav_ppcv/database.py | 140 ++++++++++++++++++++++++++++++++++++++- arpav_ppcv/exceptions.py | 8 +++ 2 files changed, 147 insertions(+), 1 deletion(-) diff --git a/arpav_ppcv/database.py b/arpav_ppcv/database.py index 26e56c10..3db35f1d 100644 --- a/arpav_ppcv/database.py +++ b/arpav_ppcv/database.py @@ -17,12 +17,17 @@ from geoalchemy2.shape import from_shape from sqlalchemy import func -from . import config +from . import ( + config, + exceptions, +) from .schemas import ( base, + climaticindicators, coverages, municipalities, observations, + static, ) logger = logging.getLogger(__name__) @@ -1515,6 +1520,139 @@ def ensure_uncertainty_type_configuration_parameters_exist( return lower_bound_value, upper_bound_value +def get_climatic_indicator( + session: sqlmodel.Session, climatic_indicator_id: int +) -> Optional[climaticindicators.ClimaticIndicator]: + return session.get(climaticindicators.ClimaticIndicator, climatic_indicator_id) + + +def get_climatic_indicator_by_identifier( + session: sqlmodel.Session, climatic_indicator_identifier: str +) -> Optional[climaticindicators.ClimaticIndicator]: + try: + name, raw_measure, raw_aggregation_period = climatic_indicator_identifier.split( + "-" + ) + measure_type = static.MeasureType(raw_measure.upper()) + aggregation_period = static.AggregationPeriod(raw_aggregation_period.upper()) + except ValueError: + raise exceptions.InvalidClimaticIndicatorIdentifierError() + else: + statement = sqlmodel.select(climaticindicators.ClimaticIndicator).where( + climaticindicators.ClimaticIndicator.name == name, + climaticindicators.ClimaticIndicator.measure_type == measure_type, + climaticindicators.ClimaticIndicator.aggregation_period + == aggregation_period, + ) + return session.exec(statement).first() + + +def list_climatic_indicators( + session: sqlmodel.Session, + *, + limit: int = 20, + offset: int = 0, + include_total: bool = False, + name_filter: str | None = None, + measure_type_filter: str | None = None, + aggregation_period_filter: str | None = None, +) -> tuple[Sequence[climaticindicators.ClimaticIndicator], Optional[int]]: + """List existing climatic indicators.""" + statement = sqlmodel.select(climaticindicators.ClimaticIndicator).order_by( + climaticindicators.ClimaticIndicator.sort_order, + climaticindicators.ClimaticIndicator.name, + ) + if name_filter is not None: + statement = _add_substring_filter( + statement, name_filter, climaticindicators.ClimaticIndicator.name + ) + if measure_type_filter is not None: + statement = _add_substring_filter( + statement, + measure_type_filter, + climaticindicators.ClimaticIndicator.measure_type, + ) + if aggregation_period_filter is not None: + statement = _add_substring_filter( + statement, + aggregation_period_filter, + climaticindicators.ClimaticIndicator.aggregation_period, + ) + items = session.exec(statement.offset(offset).limit(limit)).all() + num_items = _get_total_num_records(session, statement) if include_total else None + return items, num_items + + +def collect_all_climatic_indicators( + session: sqlmodel.Session, + name_filter: Optional[str] = None, + measure_type_filter: str | None = None, + aggregation_period_filter: str | None = None, +) -> Sequence[climaticindicators.ClimaticIndicator]: + _, num_total = list_climatic_indicators( + session, + limit=1, + include_total=True, + name_filter=name_filter, + measure_type_filter=measure_type_filter, + aggregation_period_filter=aggregation_period_filter, + ) + result, _ = list_climatic_indicators( + session, + limit=num_total, + include_total=False, + name_filter=name_filter, + measure_type_filter=measure_type_filter, + aggregation_period_filter=aggregation_period_filter, + ) + return result + + +def create_climatic_indicator( + session: sqlmodel.Session, + climatic_indicator_create: climaticindicators.ClimaticIndicatorCreate, +) -> climaticindicators.ClimaticIndicator: + """Create a new climatic indicator.""" + db_climatic_indicator = climaticindicators.ClimaticIndicator( + **climatic_indicator_create.model_dump(), + ) + session.add(db_climatic_indicator) + try: + session.commit() + except sqlalchemy.exc.DBAPIError: + raise + else: + session.refresh(db_climatic_indicator) + return db_climatic_indicator + + +def update_climatic_indicator( + session: sqlmodel.Session, + db_climatic_indicator: climaticindicators.ClimaticIndicator, + climatic_indicator_update: climaticindicators.ClimaticIndicatorUpdate, +) -> climaticindicators.ClimaticIndicator: + """Update a climatic indicator.""" + data_ = climatic_indicator_update.model_dump(exclude_unset=True) + for key, value in data_.items(): + setattr(db_climatic_indicator, key, value) + session.add(db_climatic_indicator) + session.commit() + session.refresh(db_climatic_indicator) + return db_climatic_indicator + + +def delete_climatic_indicator( + session: sqlmodel.Session, climatic_indicator_id: int +) -> None: + """Delete a climatic indicator.""" + db_indicator = get_climatic_indicator(session, climatic_indicator_id) + if db_indicator is not None: + session.delete(db_indicator) + session.commit() + else: + raise exceptions.InvalidClimaticIndicatorIdError() + + def _get_total_num_records(session: sqlmodel.Session, statement): return session.exec( sqlmodel.select(sqlmodel.func.count()).select_from(statement) diff --git a/arpav_ppcv/exceptions.py b/arpav_ppcv/exceptions.py index c5b768f6..94c3e7b4 100644 --- a/arpav_ppcv/exceptions.py +++ b/arpav_ppcv/exceptions.py @@ -8,3 +8,11 @@ class InvalidCoverageIdentifierException(ArpavError): class CoverageDataRetrievalError(ArpavError): ... + + +class InvalidClimaticIndicatorIdError(ArpavError): + ... + + +class InvalidClimaticIndicatorIdentifierError(ArpavError): + ... From c8a0db503f3df26986d89b1a4312403d7ce249d0 Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Silva Date: Tue, 29 Oct 2024 15:41:13 +0000 Subject: [PATCH 03/22] Added initial bootstrap values for climatic indicators --- arpav_ppcv/bootstrapper/cliapp.py | 30 ++++++++- arpav_ppcv/bootstrapper/climaticindicators.py | 66 +++++++++++++++++++ 2 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 arpav_ppcv/bootstrapper/climaticindicators.py diff --git a/arpav_ppcv/bootstrapper/cliapp.py b/arpav_ppcv/bootstrapper/cliapp.py index fafb0714..13ccf0fe 100644 --- a/arpav_ppcv/bootstrapper/cliapp.py +++ b/arpav_ppcv/bootstrapper/cliapp.py @@ -1,6 +1,6 @@ import json from pathlib import Path -from typing import Annotated +from typing import Annotated, Optional import geojson_pydantic import sqlmodel @@ -47,6 +47,7 @@ ) from .variables import generate_variable_configurations from .configurationparameters import generate_configuration_parameters +from .climaticindicators import generate_climatic_indicators app = typer.Typer() @@ -182,6 +183,33 @@ def bootstrap_observation_variables( print("Done!") +@app.command("climatic-indicators") +def bootstrap_climatic_indicators( + ctx: typer.Context, name_filter: Optional[str] = None +): + """Create initial climatic indicators.""" + climatic_indicators_to_generate = generate_climatic_indicators() + with sqlmodel.Session(ctx.obj["engine"]) as session: + for climatic_indicator_create in climatic_indicators_to_generate: + if name_filter is None or name_filter in climatic_indicator_create.name: + try: + db_climatic_indicator = database.create_climatic_indicator( + session, climatic_indicator_create + ) + print( + f"Created climatic indicator {db_climatic_indicator.identifier!r}" + ) + except IntegrityError as err: + print( + f"Could not create climatic indicator (" + f"{climatic_indicator_create.name!r}, " + f"{climatic_indicator_create.measure_type!r}, " + f"{climatic_indicator_create.aggregation_period!r}" + f"): {err}" + ) + session.rollback() + + @app.command("coverage-configuration-parameters") def bootstrap_coverage_configuration_parameters( ctx: typer.Context, diff --git a/arpav_ppcv/bootstrapper/climaticindicators.py b/arpav_ppcv/bootstrapper/climaticindicators.py new file mode 100644 index 00000000..9ee5fd42 --- /dev/null +++ b/arpav_ppcv/bootstrapper/climaticindicators.py @@ -0,0 +1,66 @@ +from ..schemas.static import ( + AggregationPeriod, + MeasureType, +) +from ..schemas.climaticindicators import ClimaticIndicatorCreate + +_tas_name = "tas" +_tas_display_name_english = "Average temperature (TAS)" +_tas_display_name_italian = "Temperatura media (TAS)" +_tas_description_english = "Daily mean air temperature close to the ground" +_tas_description_italian = "Temperatura media giornaliera dell'aria vicino al suolo" +_tas_unit_english = "ºC" +_tas_unit_italian = "ºC" + + +def generate_climatic_indicators() -> list[ClimaticIndicatorCreate]: + return [ + ClimaticIndicatorCreate( + name=_tas_name, + measure_type=MeasureType.ABSOLUTE, + aggregation_period=AggregationPeriod.ANNUAL, + display_name_english=_tas_display_name_english, + display_name_italian=_tas_display_name_italian, + description_english=_tas_description_english, + description_italian=_tas_description_italian, + unit_english=_tas_unit_english, + unit_italian=_tas_unit_italian, + palette="default/seq-YlOrRd", + color_scale_min=-3, + color_scale_max=32, + data_precision=1, + sort_order=0, + ), + ClimaticIndicatorCreate( + name=_tas_name, + measure_type=MeasureType.ANOMALY, + aggregation_period=AggregationPeriod.ANNUAL, + display_name_english=_tas_display_name_english, + display_name_italian=_tas_display_name_italian, + description_english=_tas_description_english, + description_italian=_tas_description_italian, + unit_english=_tas_unit_english, + unit_italian=_tas_unit_italian, + palette="default/seq-YlOrRd", + color_scale_min=0, + color_scale_max=6, + data_precision=1, + sort_order=0, + ), + ClimaticIndicatorCreate( + name=_tas_name, + measure_type=MeasureType.ANOMALY, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english=_tas_display_name_english, + display_name_italian=_tas_display_name_italian, + description_english=_tas_description_english, + description_italian=_tas_description_italian, + unit_english=_tas_unit_english, + unit_italian=_tas_unit_italian, + palette="default/seq-YlOrRd", + color_scale_min=0, + color_scale_max=6, + data_precision=1, + sort_order=0, + ), + ] From 9970675a46910f85d060e28615cd05d55efa762f Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Silva Date: Tue, 29 Oct 2024 15:42:11 +0000 Subject: [PATCH 04/22] Added new v3 of API with climatic indicator path operations --- arpav_ppcv/config.py | 1 + arpav_ppcv/webapp/admin/app.py | 7 + arpav_ppcv/webapp/admin/schemas.py | 23 + .../webapp/admin/views/climaticindicators.py | 185 +++++++ arpav_ppcv/webapp/api_v3/__init__.py | 0 arpav_ppcv/webapp/api_v3/app.py | 41 ++ arpav_ppcv/webapp/api_v3/routers/__init__.py | 0 arpav_ppcv/webapp/api_v3/routers/base.py | 20 + .../api_v3/routers/climaticindicators.py | 85 +++ arpav_ppcv/webapp/api_v3/schemas/__init__.py | 0 arpav_ppcv/webapp/api_v3/schemas/base.py | 505 ++++++++++++++++++ .../api_v3/schemas/climaticindicators.py | 78 +++ arpav_ppcv/webapp/app.py | 6 + 13 files changed, 951 insertions(+) create mode 100644 arpav_ppcv/webapp/admin/views/climaticindicators.py create mode 100644 arpav_ppcv/webapp/api_v3/__init__.py create mode 100644 arpav_ppcv/webapp/api_v3/app.py create mode 100644 arpav_ppcv/webapp/api_v3/routers/__init__.py create mode 100644 arpav_ppcv/webapp/api_v3/routers/base.py create mode 100644 arpav_ppcv/webapp/api_v3/routers/climaticindicators.py create mode 100644 arpav_ppcv/webapp/api_v3/schemas/__init__.py create mode 100644 arpav_ppcv/webapp/api_v3/schemas/base.py create mode 100644 arpav_ppcv/webapp/api_v3/schemas/climaticindicators.py diff --git a/arpav_ppcv/config.py b/arpav_ppcv/config.py index 5864df82..9c7d147d 100644 --- a/arpav_ppcv/config.py +++ b/arpav_ppcv/config.py @@ -122,6 +122,7 @@ class ArpavPpcvSettings(BaseSettings): # noqa martin_tile_server_base_url: str = "http://localhost:3000" nearest_station_radius_meters: int = 1000 v2_api_mount_prefix: str = "/api/v2" + v3_api_mount_prefix: str = "/api/v3" log_config_file: Path | None = None session_secret_key: str = "changeme" admin_user: AdminUserSettings = AdminUserSettings() diff --git a/arpav_ppcv/webapp/admin/app.py b/arpav_ppcv/webapp/admin/app.py index fa43323d..b8172c00 100644 --- a/arpav_ppcv/webapp/admin/app.py +++ b/arpav_ppcv/webapp/admin/app.py @@ -15,12 +15,14 @@ database, ) from ...schemas import ( + climaticindicators, coverages, observations, ) from . import auth from .middlewares import SqlModelDbSessionMiddleware from .views import ( + climaticindicators as climaticindicators_views, coverages as coverage_views, observations as observations_views, ) @@ -58,6 +60,11 @@ def create_admin(settings: config.ArpavPpcvSettings) -> ArpavPpcvAdmin: Middleware(SqlModelDbSessionMiddleware, engine=engine), ], ) + admin.add_view( + climaticindicators_views.ClimaticIndicatorView( + climaticindicators.ClimaticIndicator + ) + ) admin.add_view( coverage_views.ConfigurationParameterView(coverages.ConfigurationParameter) ) diff --git a/arpav_ppcv/webapp/admin/schemas.py b/arpav_ppcv/webapp/admin/schemas.py index 955a6e7e..49bd83e2 100644 --- a/arpav_ppcv/webapp/admin/schemas.py +++ b/arpav_ppcv/webapp/admin/schemas.py @@ -8,6 +8,29 @@ ObservationAggregationType, Season, ) +from ...schemas.static import ( + AggregationPeriod, + MeasureType, +) + + +class ClimaticIndicatorRead(sqlmodel.SQLModel): + identifier: str + id: int + name: str + measure_type: MeasureType + aggregation_period: AggregationPeriod + display_name_english: str + display_name_italian: str + description_english: str + description_italian: str + unit_english: str + unit_italian: str + palette: str + color_scale_min: float + color_scale_max: float + data_precision: int + sort_order: int class ConfigurationParameterValueRead(sqlmodel.SQLModel): diff --git a/arpav_ppcv/webapp/admin/views/climaticindicators.py b/arpav_ppcv/webapp/admin/views/climaticindicators.py new file mode 100644 index 00000000..73149f5e --- /dev/null +++ b/arpav_ppcv/webapp/admin/views/climaticindicators.py @@ -0,0 +1,185 @@ +import functools +import logging +from typing import ( + Any, + Optional, + Sequence, + Union, +) + +import anyio.to_thread +import starlette_admin +from starlette.requests import Request +from starlette_admin.contrib.sqlmodel import ModelView + +from .... import database +from ....schemas.static import ( + AggregationPeriod, + MeasureType, +) +from ....schemas.climaticindicators import ( + ClimaticIndicatorCreate, + ClimaticIndicatorUpdate, +) +from .. import schemas as read_schemas + +logger = logging.getLogger(__name__) + + +class ClimaticIndicatorView(ModelView): + identity = "climatic_indicators" + name = "Climatic Indicator" + label = "Climatic Indicators" + pk_attr = "id" + + exclude_fields_from_list = ( + "id", + "display_name_english", + "display_name_italian", + "description_english", + "description_italian", + "unit_english", + "unit_italian", + "palette", + "color_scale_min", + "color_scale_max", + "data_precision", + ) + exclude_fields_from_detail = ("id",) + + fields = ( + starlette_admin.IntegerField("id"), + starlette_admin.StringField("identifier", read_only=True), + starlette_admin.StringField("name", required=True), + starlette_admin.EnumField("measure_type", enum=MeasureType, required=True), + starlette_admin.EnumField( + "aggregation_period", enum=AggregationPeriod, required=True + ), + starlette_admin.StringField("display_name_english", required=True), + starlette_admin.StringField("display_name_italian", required=True), + starlette_admin.StringField("description_english", required=True), + starlette_admin.StringField("description_italian", required=True), + starlette_admin.StringField("unit_english", required=True), + starlette_admin.StringField("unit_italian", required=True), + starlette_admin.StringField( + "palette", + required=True, + help_text=( + "Name of the palette that should used by the THREDDS WMS server. " + "Available values can be found at https://reading-escience-centre.gitbooks.io/ncwms-user-guide/content/04-usage.html#getmap" + ), + ), + starlette_admin.FloatField("color_scale_min", required=True), + starlette_admin.FloatField("color_scale_max", required=True), + starlette_admin.IntegerField( + "data_precision", + required=True, + help_text=( + "Number of decimal places to be used when displaying data values" + ), + ), + starlette_admin.StringField("sort_order"), + ) + + def __init__(self, *args, **kwargs) -> None: + super().__init__(*args, **kwargs) + self.icon = "fa-solid fa-quote-left" + + async def create(self, request: Request, data: dict[str, Any]) -> Any: + try: + data = await self._arrange_data(request, data) + await self.validate(request, data) + climatic_indicator_create = ClimaticIndicatorCreate( + name=data["name"], + measure_type=data["measure_type"], + aggregation_period=data["aggregation_period"], + display_name_english=data["display_name_english"], + display_name_italian=data["display_name_italian"], + description_english=data["description_english"], + description_italian=data["description_italian"], + unit_english=data["unit_english"], + unit_italian=data["unit_italian"], + palette=data["palette"], + color_scale_min=data["color_scale_min"], + color_scale_max=data["color_scale_max"], + data_precision=data["data_precision"], + sort_order=data.get("sort_order"), + ) + db_climatic_indicator = await anyio.to_thread.run_sync( + database.create_climatic_indicator, + request.state.session, + climatic_indicator_create, + ) + climatic_indicator = read_schemas.ClimaticIndicatorRead( + **db_climatic_indicator.model_dump(), + ) + return climatic_indicator + except Exception as e: + return self.handle_exception(e) + + async def edit(self, request: Request, pk: Any, data: dict[str, Any]) -> Any: + try: + data = await self._arrange_data(request, data, True) + await self.validate(request, data) + climatic_indicator_update = ClimaticIndicatorUpdate( + name=data["name"], + measure_type=data["measure_type"], + aggregation_period=data["aggregation_period"], + display_name_english=data["display_name_english"], + display_name_italian=data["display_name_italian"], + description_english=data["description_english"], + description_italian=data["description_italian"], + unit_english=data["unit_english"], + unit_italian=data["unit_italian"], + palette=data["palette"], + color_scale_min=data["color_scale_min"], + color_scale_max=data["color_scale_max"], + data_precision=data["data_precision"], + sort_order=data.get("sort_order"), + ) + db_climatic_indicator = await anyio.to_thread.run_sync( + database.get_climatic_indicator, request.state.session, pk + ) + db_climatic_indicator = await anyio.to_thread.run_sync( + database.update_climatic_indicator, + request.state.session, + db_climatic_indicator, + climatic_indicator_update, + ) + climatic_indicator = read_schemas.ClimaticIndicatorRead( + **db_climatic_indicator.model_dump(), + ) + return climatic_indicator + except Exception as e: + self.handle_exception(e) + + async def find_by_pk( + self, request: Request, pk: Any + ) -> read_schemas.ClimaticIndicatorRead: + db_climatic_indicator = await anyio.to_thread.run_sync( + database.get_climatic_indicator, request.state.session, pk + ) + return read_schemas.ClimaticIndicatorRead(**db_climatic_indicator.model_dump()) + + async def find_all( + self, + request: Request, + skip: int = 0, + limit: int = 100, + where: Union[dict[str, Any], str, None] = None, + order_by: Optional[list[str]] = None, + ) -> Sequence[read_schemas.ClimaticIndicatorRead]: + list_params = functools.partial( + database.list_climatic_indicators, + limit=limit, + offset=skip, + name_filter=str(where) if where not in (None, "") else None, + include_total=False, + ) + db_climatic_indicators, _ = await anyio.to_thread.run_sync( + list_params, request.state.session + ) + return [ + read_schemas.ClimaticIndicatorRead(**ind.model_dump()) + for ind in db_climatic_indicators + ] diff --git a/arpav_ppcv/webapp/api_v3/__init__.py b/arpav_ppcv/webapp/api_v3/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/arpav_ppcv/webapp/api_v3/app.py b/arpav_ppcv/webapp/api_v3/app.py new file mode 100644 index 00000000..0445cd3d --- /dev/null +++ b/arpav_ppcv/webapp/api_v3/app.py @@ -0,0 +1,41 @@ +import fastapi +from fastapi.middleware.cors import CORSMiddleware + +from ... import config +from .routers.climaticindicators import router as climaticindicators_router +from .routers.base import router as base_router + + +def create_app(settings: config.ArpavPpcvSettings) -> fastapi.FastAPI: + app = fastapi.FastAPI( + debug=settings.debug, + title="ARPAV PPCV backend v3", + description="Developer API for ARPAV-PPCV backend v3", + contact={ + "name": settings.contact.name, + "url": settings.contact.url, + "email": settings.contact.email, + }, + ) + app.add_middleware( + CORSMiddleware, + allow_origins=settings.cors_origins, + allow_credentials=settings.allow_cors_credentials, + allow_methods=settings.cors_methods, + allow_headers=["*"], + ) + app.include_router( + base_router, + prefix="/base", + tags=[ + "base", + ], + ) + app.include_router( + climaticindicators_router, + prefix="/climatic-indicators", + tags=[ + "climatic-indicators", + ], + ) + return app diff --git a/arpav_ppcv/webapp/api_v3/routers/__init__.py b/arpav_ppcv/webapp/api_v3/routers/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/arpav_ppcv/webapp/api_v3/routers/base.py b/arpav_ppcv/webapp/api_v3/routers/base.py new file mode 100644 index 00000000..b7fc19fe --- /dev/null +++ b/arpav_ppcv/webapp/api_v3/routers/base.py @@ -0,0 +1,20 @@ +import importlib.metadata +import logging +import os + +from fastapi import APIRouter + +from ..schemas.base import AppInformation + + +logger = logging.getLogger(__name__) +router = APIRouter() + + +@router.get("/", response_model=AppInformation) +async def get_app_info(): + """Return information about the ARPAV-PPCV application.""" + return { + "version": importlib.metadata.version("arpav_ppcv_backend"), + "git_commit": os.getenv("GIT_COMMIT", "unknown"), + } diff --git a/arpav_ppcv/webapp/api_v3/routers/climaticindicators.py b/arpav_ppcv/webapp/api_v3/routers/climaticindicators.py new file mode 100644 index 00000000..c6a5ea75 --- /dev/null +++ b/arpav_ppcv/webapp/api_v3/routers/climaticindicators.py @@ -0,0 +1,85 @@ +import logging +from typing import ( + Annotated, +) + +from fastapi import ( + APIRouter, + Depends, + Request, +) +from sqlmodel import Session + +from .... import ( + database, +) +from ....config import ArpavPpcvSettings +from ... import dependencies +from ..schemas import climaticindicators as read_schemas + +logger = logging.getLogger(__name__) +router = APIRouter() + + +@router.get( + "", + response_model=read_schemas.ClimaticIndicatorList, +) +def list_climatic_indicators( + request: Request, + settings: Annotated[ArpavPpcvSettings, Depends(dependencies.get_settings)], + db_session: Annotated[Session, Depends(dependencies.get_db_session)], + list_params: Annotated[dependencies.CommonListFilterParameters, Depends()], + name_contains: str | None = None, + measure_type_contains: str | None = None, + aggregation_period_contains: str | None = None, +): + """List climatic indicators.""" + climatic_indicators, filtered_total = database.list_climatic_indicators( + db_session, + limit=list_params.limit, + offset=list_params.offset, + include_total=True, + name_filter=name_contains, + measure_type_filter=measure_type_contains, + aggregation_period_filter=aggregation_period_contains, + ) + _, unfiltered_total = database.list_climatic_indicators( + db_session, + limit=1, + offset=0, + include_total=True, + ) + items = [] + for climatic_indicator in climatic_indicators: + items.append( + read_schemas.ClimaticIndicatorReadListItem.from_db_instance( + climatic_indicator, settings, request + ) + ) + return read_schemas.ClimaticIndicatorList.from_items( + items, + request, + limit=list_params.limit, + offset=list_params.offset, + filtered_total=filtered_total, + unfiltered_total=unfiltered_total, + ) + + +@router.get( + "/{climatic_indicator_identifier}", + response_model=read_schemas.ClimaticIndicatorReadListItem, +) +def get_climatic_indicator( + request: Request, + settings: Annotated[ArpavPpcvSettings, Depends(dependencies.get_settings)], + db_session: Annotated[Session, Depends(dependencies.get_db_session)], + climatic_indicator_identifier: str, +): + db_climatic_indicator = database.get_climatic_indicator_by_identifier( + db_session, climatic_indicator_identifier + ) + return read_schemas.ClimaticIndicatorReadListItem.from_db_instance( + db_climatic_indicator, settings, request + ) diff --git a/arpav_ppcv/webapp/api_v3/schemas/__init__.py b/arpav_ppcv/webapp/api_v3/schemas/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/arpav_ppcv/webapp/api_v3/schemas/base.py b/arpav_ppcv/webapp/api_v3/schemas/base.py new file mode 100644 index 00000000..da60750b --- /dev/null +++ b/arpav_ppcv/webapp/api_v3/schemas/base.py @@ -0,0 +1,505 @@ +import datetime as dt +import logging +import math +import typing + +import pandas as pd +import pydantic +import sqlmodel +from fastapi import Request + +from ....config import ( + LOCALE_EN, + LOCALE_IT, +) +from ....schemas import ( + base as base_schemas, + observations as observations_schemas, + coverages as coverages_schemas, +) +from ....schemas.base import ( + StaticObservationSeriesParameter, + StaticCoverageSeriesParameter, +) + +logger = logging.getLogger(__name__) +R = typing.TypeVar("R", bound="ApiReadableModel") + + +class AppInformation(pydantic.BaseModel): + version: str + git_commit: str + + +@typing.runtime_checkable +class ApiReadableModel(typing.Protocol): + """Protocol to be used by all schema models that represent API resources. + + It includes the `from_db_instance()` class method, which is to be used for + constructing instances. + """ + + @classmethod + def from_db_instance( # noqa: D102 + cls: typing.Type[R], db_instance: sqlmodel.SQLModel, request: Request + ) -> R: + ... + + +class ImageLegendColor(pydantic.BaseModel): + value: float + color: str + + +class CoverageImageLegend(pydantic.BaseModel): + color_entries: list[ImageLegendColor] + + +class ListMeta(pydantic.BaseModel): + returned_records: int + total_records: int + total_filtered_records: int + + +class ListLinks(pydantic.BaseModel): + self: str + next: str | None = None + previous: str | None = None + first: str | None = None + last: str | None = None + + +class TimeSeriesItem(pydantic.BaseModel): + value: float + datetime: dt.datetime + + +class TimeSeriesTranslations(pydantic.BaseModel): + # series_name: dict[str, str] + # processing_method: dict[str, str] + parameter_names: typing.Optional[dict[str, dict[str, str]]] = None + parameter_values: typing.Optional[dict[str, dict[str, str]]] = None + + +class TimeSeries(pydantic.BaseModel): + name: str + values: list[TimeSeriesItem] + info: typing.Optional[dict[str, str | int | float | bool | dict]] = None + translations: typing.Optional[TimeSeriesTranslations] = None + + @classmethod + def from_observation_series( + cls, + series: pd.Series, + station: observations_schemas.Station, + variable: observations_schemas.Variable, + smoothing_strategy: base_schemas.ObservationDataSmoothingStrategy, + extra_info: typing.Optional[dict[str, str | int | float | dict]] = None, + derived_series: typing.Optional[base_schemas.ObservationDerivedSeries] = None, + ): + if derived_series is not None: + series_elaboration = base_schemas.TimeSeriesElaboration.DERIVED + name = "_".join((variable.name, derived_series.value)) + translated_name = { + LOCALE_EN.language: " - ".join( + ( + variable.display_name_english, + derived_series.get_display_name(LOCALE_EN), + ) + ), + LOCALE_IT.language: " - ".join( + ( + variable.display_name_italian, + derived_series.get_display_name(LOCALE_IT), + ) + ), + } + else: + series_elaboration = base_schemas.TimeSeriesElaboration.ORIGINAL + name = variable.name + translated_name = { + LOCALE_EN.language: variable.display_name_english, + LOCALE_IT.language: variable.display_name_italian, + } + return cls( + name=name, + values=[ + TimeSeriesItem(datetime=timestamp, value=value) + for timestamp, value in series.to_dict().items() + if not math.isnan(value) + ], + info={ + "processing_method": smoothing_strategy.value, + "station": station.name, + "variable": variable.name, + "series_elaboration": series_elaboration.value, + "derived_series": ( + derived_series.value if derived_series is not None else "" + ), + **(extra_info or {}), + }, + translations=TimeSeriesTranslations( + parameter_names={ + "series_name": { + LOCALE_EN.language: ( + StaticObservationSeriesParameter.SERIES_NAME.get_display_name( + LOCALE_EN + ) + ), + LOCALE_IT.language: ( + StaticObservationSeriesParameter.SERIES_NAME.get_display_name( + LOCALE_IT + ) + ), + }, + "processing_method": { + LOCALE_EN.language: ( + StaticObservationSeriesParameter.PROCESSING_METHOD.get_display_name( + LOCALE_EN + ) + ), + LOCALE_IT.language: ( + StaticObservationSeriesParameter.PROCESSING_METHOD.get_display_name( + LOCALE_IT + ) + ), + }, + "station": { + LOCALE_EN.language: ( + StaticObservationSeriesParameter.STATION.get_display_name( + LOCALE_EN + ) + ), + LOCALE_IT.language: ( + StaticObservationSeriesParameter.STATION.get_display_name( + LOCALE_IT + ) + ), + }, + "variable": { + LOCALE_EN.language: ( + StaticObservationSeriesParameter.VARIABLE.get_display_name( + LOCALE_EN + ) + ), + LOCALE_IT.language: ( + StaticObservationSeriesParameter.VARIABLE.get_display_name( + LOCALE_IT + ) + ), + }, + "series_elaboration": { + LOCALE_EN.language: ( + StaticObservationSeriesParameter.SERIES_ELABORATION.get_display_name( + LOCALE_EN + ) + ), + LOCALE_IT.language: ( + StaticObservationSeriesParameter.SERIES_ELABORATION.get_display_name( + LOCALE_IT + ) + ), + }, + "derived_series": { + LOCALE_EN.language: ( + StaticObservationSeriesParameter.DERIVED_SERIES.get_display_name( + LOCALE_EN + ) + ), + LOCALE_IT.language: ( + StaticObservationSeriesParameter.DERIVED_SERIES.get_display_name( + LOCALE_IT + ) + ), + }, + }, + parameter_values={ + "series_name": translated_name, + "processing_method": { + LOCALE_EN.language: smoothing_strategy.get_display_name( + LOCALE_EN + ), + LOCALE_IT.language: smoothing_strategy.get_display_name( + LOCALE_IT + ), + }, + "variable": { + LOCALE_EN.language: variable.display_name_english + or variable.name, + LOCALE_IT.language: variable.display_name_italian + or variable.name, + }, + "station": { + LOCALE_EN.language: station.name, + LOCALE_IT.language: station.name, + }, + "series_elaboration": { + LOCALE_EN.language: series_elaboration.get_display_name( + LOCALE_EN + ), + LOCALE_IT.language: series_elaboration.get_display_name( + LOCALE_IT + ), + }, + "derived_series": { + LOCALE_EN.language: derived_series.get_display_name(LOCALE_EN) + if derived_series + else "", + LOCALE_IT.language: derived_series.get_display_name(LOCALE_IT) + if derived_series + else "", + }, + }, + ), + ) + + @classmethod + def from_coverage_series( + cls, + series: pd.Series, + coverage: coverages_schemas.CoverageInternal, + smoothing_strategy: base_schemas.CoverageDataSmoothingStrategy, + ): + info = {} + param_names_translations = {} + param_values_translations = {} + for pv in coverage.configuration.retrieve_used_values(coverage.identifier): + conf_param = pv.configuration_parameter_value.configuration_parameter + info[conf_param.name] = pv.configuration_parameter_value.name + param_names_translations[conf_param.name] = { + LOCALE_EN.language: ( + conf_param.display_name_english or conf_param.name + ), + LOCALE_IT.language: ( + conf_param.display_name_italian or conf_param.name + ), + } + param_values_translations[conf_param.name] = { + LOCALE_EN.language: ( + pv.configuration_parameter_value.display_name_english + or pv.configuration_parameter_value.name + ), + LOCALE_IT.language: ( + pv.configuration_parameter_value.display_name_italian + or pv.configuration_parameter_value.name + ), + } + logger.info(f"serializing {coverage.identifier=} {smoothing_strategy=}...") + return TimeSeries( + name=str(series.name), + values=[ + TimeSeriesItem(datetime=timestamp, value=value) + for timestamp, value in series.to_dict().items() + if not math.isnan(value) + ], + info={ + "processing_method": smoothing_strategy.value, + "coverage_identifier": coverage.identifier, + "coverage_configuration": coverage.configuration.name, + **info, + }, + translations=TimeSeriesTranslations( + parameter_names={ + "series_name": { + LOCALE_EN.language: ( + StaticCoverageSeriesParameter.SERIES_NAME.get_display_name( + LOCALE_EN + ) + ), + LOCALE_IT.language: ( + StaticCoverageSeriesParameter.SERIES_NAME.get_display_name( + LOCALE_IT + ) + ), + }, + "processing_method": { + LOCALE_EN.language: ( + StaticCoverageSeriesParameter.PROCESSING_METHOD.get_display_name( + LOCALE_EN + ) + ), + LOCALE_IT.language: ( + StaticCoverageSeriesParameter.PROCESSING_METHOD.get_display_name( + LOCALE_IT + ) + ), + }, + "coverage_identifier": { + LOCALE_EN.language: ( + StaticCoverageSeriesParameter.COVERAGE_IDENTIFIER.get_display_name( + LOCALE_EN + ) + ), + LOCALE_IT.language: ( + StaticCoverageSeriesParameter.COVERAGE_IDENTIFIER.get_display_name( + LOCALE_IT + ) + ), + }, + "coverage_configuration": { + LOCALE_EN.language: ( + StaticCoverageSeriesParameter.COVERAGE_CONFIGURATION.get_display_name( + LOCALE_EN + ) + ), + LOCALE_IT.language: ( + StaticCoverageSeriesParameter.COVERAGE_CONFIGURATION.get_display_name( + LOCALE_IT + ) + ), + }, + **param_names_translations, + }, + parameter_values={ + "series_name": { + LOCALE_EN.language: ( + coverage.configuration.display_name_english + or coverage.configuration.name + ), + LOCALE_IT.language: ( + coverage.configuration.display_name_italian + or coverage.configuration.name + ), + }, + "processing_method": { + LOCALE_EN.language: smoothing_strategy.get_display_name( + LOCALE_EN + ), + LOCALE_IT.language: smoothing_strategy.get_display_name( + LOCALE_IT + ), + }, + "coverage_identifier": { + LOCALE_EN.language: coverage.identifier, + LOCALE_IT.language: coverage.identifier, + }, + "coverage_configuration": { + LOCALE_EN.language: ( + coverage.configuration.display_name_english + or coverage.configuration.name + ), + LOCALE_IT.language: ( + coverage.configuration.display_name_italian + or coverage.configuration.name + ), + }, + **param_values_translations, + }, + ), + ) + + +class TimeSeriesList(pydantic.BaseModel): + series: list[TimeSeries] + + +class WebResourceList(base_schemas.ResourceList): + meta: ListMeta + links: ListLinks + list_item_type: typing.ClassVar[typing.Type[ApiReadableModel]] + path_operation_name: typing.ClassVar[str] + + @classmethod + def from_items( + cls, + items: typing.Sequence[pydantic.BaseModel], + request: Request, + *, + limit: int, + offset: int, + filtered_total: int, + unfiltered_total: int, + ): + return cls( + meta=get_meta(len(items), unfiltered_total, filtered_total), + links=get_list_links( + request, + cls.path_operation_name, + limit, + offset, + filtered_total, + len(items), + ), + items=items, + ) + + +def get_pagination_urls( + base_url: str, + returned_records: int, + total_records: int, + limit: int, + offset: int, + **filters, +) -> dict[str, str]: + """Build pagination-related urls.""" + pagination_offsets = _get_pagination_offsets( + returned_records, total_records, limit, offset + ) + pagination_urls = {} + for link_rel, offset in pagination_offsets.items(): + if offset is not None: + pagination_urls[link_rel] = _build_list_url( + base_url, limit, offset, **filters + ) + return pagination_urls + + +def _build_list_url(base_url: str, limit: int, offset: typing.Optional[int], **filters): + """Build a URL suitable for a list page.""" + url = f"{base_url}?limit={limit}" + remaining = {"offset": offset, **filters} + for filter_name, filter_value in remaining.items(): + if filter_value is not None: + url = "&".join((url, f"{filter_name}={filter_value}")) + return url + + +def _get_pagination_offsets( + returned_records: int, total_records: int, limit: int, offset: int +): + """Calculate pagination offsets.""" + shown = offset + returned_records + has_next = total_records > shown + has_previous = shown > returned_records + return { + "self": offset, + "next": offset + limit if has_next else None, + "previous": offset - limit if has_previous else None, + "first": 0, + "last": (total_records // limit) * limit, + } + + +def get_list_links( + request: Request, + path_operation_name: str, + limit: int, + offset: int, + filtered_total: int, + num_returned_records: int, +) -> ListLinks: + filters = dict(request.query_params) + if "limit" in filters.keys(): + del filters["limit"] + if "offset" in filters.keys(): + del filters["offset"] + pagination_urls = get_pagination_urls( + request.url_for(path_operation_name), + num_returned_records, + filtered_total, + limit, + offset, + **filters, + ) + return ListLinks(**pagination_urls) + + +def get_meta( + num_returned_records: int, unfiltered_total: int, filtered_total: int +) -> ListMeta: + return ListMeta( + returned_records=num_returned_records, + total_records=unfiltered_total, + total_filtered_records=filtered_total, + ) diff --git a/arpav_ppcv/webapp/api_v3/schemas/climaticindicators.py b/arpav_ppcv/webapp/api_v3/schemas/climaticindicators.py new file mode 100644 index 00000000..fcc45f00 --- /dev/null +++ b/arpav_ppcv/webapp/api_v3/schemas/climaticindicators.py @@ -0,0 +1,78 @@ +import logging +import pydantic +from fastapi import Request + +from .... import palette +from ....config import ArpavPpcvSettings +from ....schemas import ( + climaticindicators as app_models, + static, +) +from . import base + +logger = logging.getLogger(__name__) + + +class ClimaticIndicatorReadListItem(pydantic.BaseModel): + url: pydantic.AnyHttpUrl + identifier: str + name: str + measure_type: static.MeasureType + aggregation_period: static.AggregationPeriod + display_name_english: str + display_name_italian: str + description_english: str + description_italian: str + unit_english: str + unit_italian: str + data_precision: int + sort_order: int + legend: base.CoverageImageLegend + + @classmethod + def from_db_instance( + cls, + instance: app_models.ClimaticIndicator, + settings: ArpavPpcvSettings, + request: Request, + ): + palette_colors = palette.parse_palette(instance.palette, settings.palettes_dir) + applied_colors = [] + if palette_colors is not None: + minimum = instance.color_scale_min + maximum = instance.color_scale_max + if abs(maximum - minimum) > 0.001: + applied_colors = palette.apply_palette( + palette_colors, + minimum, + maximum, + num_stops=settings.palette_num_stops, + ) + else: + logger.warning( + f"Cannot calculate applied colors for coverage " + f"configuration {instance.name!r} - check the " + f"colorscale min and max values" + ) + else: + logger.warning(f"Unable to parse palette {instance.palette!r}") + return cls( + **instance.model_dump(), + url=str( + request.url_for( + "get_climatic_indicator", + climatic_indicator_identifier=instance.identifier, + ) + ), + legend=base.CoverageImageLegend( + color_entries=[ + base.ImageLegendColor(value=v, color=c) for v, c in applied_colors + ] + ), + ) + + +class ClimaticIndicatorList(base.WebResourceList): + items: list[ClimaticIndicatorReadListItem] + list_item_type = ClimaticIndicatorReadListItem + path_operation_name = "list_climatic_indicators" diff --git a/arpav_ppcv/webapp/app.py b/arpav_ppcv/webapp/app.py index a0c84793..306a0407 100644 --- a/arpav_ppcv/webapp/app.py +++ b/arpav_ppcv/webapp/app.py @@ -9,6 +9,7 @@ database, ) from .api_v2.app import create_app as create_v2_app +from .api_v3.app import create_app as create_v3_app from .admin.app import create_admin from .routes import routes @@ -37,7 +38,12 @@ def create_app_from_settings(settings: config.ArpavPpcvSettings) -> Starlette: app.state.v2_api_docs_url = "".join( (settings.public_url, settings.v2_api_mount_prefix, v2_api.docs_url) ) + v3_api = create_v3_app(settings) + app.state.v3_api_docs_url = "".join( + (settings.public_url, settings.v3_api_mount_prefix, v3_api.docs_url) + ) app.mount(settings.v2_api_mount_prefix, v2_api) + app.mount(settings.v3_api_mount_prefix, v3_api) return app From ca402333c1e62c7419669b24c3d3320dcfd8994f Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Silva Date: Tue, 29 Oct 2024 18:43:10 +0000 Subject: [PATCH 05/22] Added 1:m relationship between climaticindicator and coverageconfiguration --- arpav_ppcv/database.py | 2 +- ...30cc1e4556d_added_relationship_between_.py | 33 ++++++++++++++++ arpav_ppcv/schemas/climaticindicators.py | 8 ++++ arpav_ppcv/schemas/coverages.py | 9 +++++ arpav_ppcv/webapp/admin/fields.py | 38 +++++++++++++++++++ arpav_ppcv/webapp/admin/schemas.py | 2 + arpav_ppcv/webapp/admin/views/coverages.py | 28 +++++++++++++- 7 files changed, 118 insertions(+), 2 deletions(-) create mode 100644 arpav_ppcv/migrations/versions/630cc1e4556d_added_relationship_between_.py diff --git a/arpav_ppcv/database.py b/arpav_ppcv/database.py index 3db35f1d..90aeb0e6 100644 --- a/arpav_ppcv/database.py +++ b/arpav_ppcv/database.py @@ -1082,7 +1082,7 @@ def create_coverage_configuration( palette=coverage_configuration_create.palette, color_scale_min=coverage_configuration_create.color_scale_min, color_scale_max=coverage_configuration_create.color_scale_max, - data_precision=coverage_configuration_create.data_precision, + climatic_indicator_id=coverage_configuration_create.climatic_indicator_id, observation_variable_id=coverage_configuration_create.observation_variable_id, observation_variable_aggregation_type=coverage_configuration_create.observation_variable_aggregation_type, uncertainty_lower_bounds_coverage_configuration_id=( diff --git a/arpav_ppcv/migrations/versions/630cc1e4556d_added_relationship_between_.py b/arpav_ppcv/migrations/versions/630cc1e4556d_added_relationship_between_.py new file mode 100644 index 00000000..deb946b2 --- /dev/null +++ b/arpav_ppcv/migrations/versions/630cc1e4556d_added_relationship_between_.py @@ -0,0 +1,33 @@ +"""added relationship between climaticindicator and coverageconfiguration + +Revision ID: 630cc1e4556d +Revises: ce2f4800cc76 +Create Date: 2024-10-29 16:11:06.851157 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa +import sqlmodel + + +# revision identifiers, used by Alembic. +revision: str = '630cc1e4556d' +down_revision: Union[str, None] = 'ce2f4800cc76' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('coverageconfiguration', sa.Column('climatic_indicator_id', sa.Integer(), nullable=True)) + op.create_foreign_key(None, 'coverageconfiguration', 'climaticindicator', ['climatic_indicator_id'], ['id']) + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.drop_constraint(None, 'coverageconfiguration', type_='foreignkey') + op.drop_column('coverageconfiguration', 'climatic_indicator_id') + # ### end Alembic commands ### diff --git a/arpav_ppcv/schemas/climaticindicators.py b/arpav_ppcv/schemas/climaticindicators.py index 66e10139..e8fa5668 100644 --- a/arpav_ppcv/schemas/climaticindicators.py +++ b/arpav_ppcv/schemas/climaticindicators.py @@ -3,6 +3,7 @@ ClassVar, Final, Optional, + TYPE_CHECKING, ) import pydantic @@ -10,6 +11,9 @@ from . import static +if TYPE_CHECKING: + from . import coverages + _name_description_text: Final[str] = ( "Parameter name. Only alphanumeric characters and the underscore are allowed. " "Example: my_indicator" @@ -35,6 +39,10 @@ class ClimaticIndicator(sqlmodel.SQLModel, table=True): data_precision: int = sqlmodel.Field(default=0) sort_order: int = sqlmodel.Field(default=0) + related_coverage_configurations: list[ + "coverages.CoverageConfiguration" + ] = sqlmodel.Relationship(back_populates="climatic_indicator") + @pydantic.computed_field @property def identifier(self) -> str: diff --git a/arpav_ppcv/schemas/coverages.py b/arpav_ppcv/schemas/coverages.py index fdda1b57..3783b1de 100644 --- a/arpav_ppcv/schemas/coverages.py +++ b/arpav_ppcv/schemas/coverages.py @@ -19,6 +19,7 @@ if TYPE_CHECKING: from . import observations + from . import climaticindicators logger = logging.getLogger(__name__) _NAME_PATTERN: Final[str] = r"^[a-z0-9_]+$" @@ -190,6 +191,9 @@ class CoverageConfiguration(sqlmodel.SQLModel, table=True): color_scale_min: float = 0.0 color_scale_max: float = 1.0 data_precision: int = 3 + climatic_indicator_id: Optional[int] = sqlmodel.Field( + default=None, foreign_key="climaticindicator.id" + ) observation_variable_id: Optional[uuid.UUID] = sqlmodel.Field( default=None, foreign_key="variable.id" ) @@ -234,6 +238,9 @@ class CoverageConfiguration(sqlmodel.SQLModel, table=True): "cascade": "all, delete, delete-orphan", }, ) + climatic_indicator: "climaticindicators.ClimaticIndicator" = sqlmodel.Relationship( + back_populates="related_coverage_configurations" + ) related_observation_variable: "observations.Variable" = sqlmodel.Relationship( back_populates="related_coverage_configurations" @@ -449,6 +456,7 @@ class CoverageConfigurationCreate(sqlmodel.SQLModel): color_scale_max: float data_precision: int = 3 possible_values: list["ConfigurationParameterPossibleValueCreate"] + climatic_indicator_id: int observation_variable_id: Optional[uuid.UUID] = None observation_variable_aggregation_type: Optional[ base.ObservationAggregationType @@ -485,6 +493,7 @@ class CoverageConfigurationUpdate(sqlmodel.SQLModel): color_scale_max: Optional[float] = None data_precision: Optional[int] = None observation_variable_id: Optional[uuid.UUID] = None + climatic_indicator_id: Optional[int] = None observation_variable_aggregation_type: Optional[ base.ObservationAggregationType ] = None diff --git a/arpav_ppcv/webapp/admin/fields.py b/arpav_ppcv/webapp/admin/fields.py index 4ce556be..75f617e3 100644 --- a/arpav_ppcv/webapp/admin/fields.py +++ b/arpav_ppcv/webapp/admin/fields.py @@ -1,3 +1,4 @@ +import logging from typing import Any import starlette_admin @@ -6,6 +7,8 @@ from ... import database from . import schemas as read_schemas +logger = logging.getLogger(__name__) + class UuidField(starlette_admin.StringField): """Custom field for handling item identifiers. @@ -51,6 +54,41 @@ async def serialize_value( return self._get_label(value, request) +class RelatedClimaticIndicatorField(starlette_admin.EnumField): + """Custom field to show a 1:m relationship. + + This somewhat abuses the default way to represent relationships in starlete_admin. + However, it provides more control over presentation of data. + + Things to consider here are: + + - overriding `__post_init__()` as a way to define `choices_loader` together with + the custom field - the alternative would be to write the choices loader as a + standalone function and then use it in the field initializer, which would + put them in different files. + + - overriding `get_label()` as way to use the climatic_identifier.identifier field + as a friendlier way to refer to the instance in forms + + """ + + def __post_init__(self) -> None: + self.choices_loader = RelatedClimaticIndicatorField.choices_loader + super().__post_init__() + + def _get_label(self, value: int, request: Request) -> str: + session = request.state.session + climatic_indicator = database.get_climatic_indicator(session, value) + return climatic_indicator.identifier + + @staticmethod + def choices_loader(request: Request): + all_climatic_indicators = database.collect_all_climatic_indicators( + request.state.session + ) + return [(ci.id, ci.identifier) for ci in all_climatic_indicators] + + class RelatedObservationsVariableField(starlette_admin.EnumField): def _get_label( self, value: read_schemas.ObservationVariableRead, request: Request diff --git a/arpav_ppcv/webapp/admin/schemas.py b/arpav_ppcv/webapp/admin/schemas.py index 49bd83e2..9d5f228d 100644 --- a/arpav_ppcv/webapp/admin/schemas.py +++ b/arpav_ppcv/webapp/admin/schemas.py @@ -82,6 +82,8 @@ class CoverageConfigurationRead(sqlmodel.SQLModel): color_scale_min: float color_scale_max: float data_precision: int + # climatic_indicator: Optional["ClimaticIndicatorRead"] + climatic_indicator: Optional[int] possible_values: list[ConfigurationParameterPossibleValueRead] observation_variable_aggregation_type: ObservationAggregationType observation_variable: Optional["ObservationVariableRead"] diff --git a/arpav_ppcv/webapp/admin/views/coverages.py b/arpav_ppcv/webapp/admin/views/coverages.py index 6bb8f2dc..ace6d4ca 100644 --- a/arpav_ppcv/webapp/admin/views/coverages.py +++ b/arpav_ppcv/webapp/admin/views/coverages.py @@ -375,6 +375,11 @@ class CoverageConfigurationView(ModelView): "Number of decimal places to be used when displaying data values" ), ), + fields.RelatedClimaticIndicatorField( + "climatic_indicator", + help_text="Related climatic indicator", + required=True, + ), fields.RelatedObservationsVariableField( "observation_variable", help_text="Related observation variable", @@ -420,6 +425,7 @@ class CoverageConfigurationView(ModelView): exclude_fields_from_list = ( "id", "display_name_english", + "thredds_url_pattern", "display_name_italian", "description_english", "description_italian", @@ -488,12 +494,18 @@ def _serialize_instance(instance: coverages.CoverageConfiguration): else: uncertainty_upper_bounds_coverage_configuration = None return read_schemas.CoverageConfigurationRead( - **instance.model_dump(exclude={"observation_variable_aggregation_type"}), + **instance.model_dump( + exclude={ + "observation_variable_aggregation_type", + "climatic_indicator_id", + }, + ), observation_variable_aggregation_type=( instance.observation_variable_aggregation_type or base.ObservationAggregationType.SEASONAL ), observation_variable=observation_variable, + climatic_indicator=instance.climatic_indicator_id, possible_values=[ read_schemas.ConfigurationParameterPossibleValueRead( configuration_parameter_value_id=pv.configuration_parameter_value_id, @@ -563,6 +575,10 @@ async def create(self, request: Request, data: Dict[str, Any]) -> Any: configuration_parameter_value_id=conf_param_value.id ) ) + # FIXME: looks like this needs to be called with anyio.to_thread.run_sync + climatic_indicator = database.get_climatic_indicator( + session, data["climatic_indicator"] + ) related_obs_variable = database.get_variable_by_name( session, data["observation_variable"] ) @@ -614,6 +630,9 @@ async def create(self, request: Request, data: Dict[str, Any]) -> Any: observation_variable_id=( related_obs_variable.id if related_obs_variable else None ), + climatic_indicator_id=( + climatic_indicator.id if climatic_indicator else None + ), observation_variable_aggregation_type=data.get( "observation_variable_aggregation_type" ), @@ -648,6 +667,10 @@ async def edit(self, request: Request, pk: Any, data: Dict[str, Any]) -> Any: configuration_parameter_value_id=conf_param_value.id ) ) + # FIXME: call this via anyio.to_thread.run_sync + climatic_indicator = database.get_climatic_indicator( + session, data["climatic_indicator"] + ) related_obs_variable = database.get_variable_by_name( session, data["observation_variable"] ) @@ -696,6 +719,9 @@ async def edit(self, request: Request, pk: Any, data: Dict[str, Any]) -> Any: color_scale_max=data.get("color_scale_max"), data_precision=data.get("data_precision"), possible_values=possible_values, + climatic_indicator_id=( + climatic_indicator.id if climatic_indicator else None + ), observation_variable_id=( related_obs_variable.id if related_obs_variable else None ), From 248d9003c4fc6e42b1d7e1ef08ca94d6744f025d Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Silva Date: Tue, 29 Oct 2024 21:26:07 +0000 Subject: [PATCH 06/22] Added bootstrapping-stuff for all climatic indicators and related all coverage configurations with their respective climatic indicator --- arpav_ppcv/bootstrapper/cliapp.py | 138 +++++++++++++++--- arpav_ppcv/bootstrapper/climaticindicators.py | 66 --------- .../climaticindicators/__init__.py | 0 .../bootstrapper/climaticindicators/cdd.py | 32 ++++ .../bootstrapper/climaticindicators/cdds.py | 76 ++++++++++ .../bootstrapper/climaticindicators/fd.py | 70 +++++++++ .../bootstrapper/climaticindicators/hdds.py | 76 ++++++++++ .../bootstrapper/climaticindicators/hwdi.py | 32 ++++ .../bootstrapper/climaticindicators/pr.py | 74 ++++++++++ .../climaticindicators/r95ptot.py | 32 ++++ .../climaticindicators/snwdays.py | 54 +++++++ .../bootstrapper/climaticindicators/su30.py | 70 +++++++++ .../bootstrapper/climaticindicators/tas.py | 74 ++++++++++ .../bootstrapper/climaticindicators/tasmax.py | 64 ++++++++ .../bootstrapper/climaticindicators/tasmin.py | 64 ++++++++ .../bootstrapper/climaticindicators/tr.py | 70 +++++++++ .../coverage_configurations/forecast/cdd.py | 7 + .../coverage_configurations/forecast/cdds.py | 15 ++ .../coverage_configurations/forecast/fd.py | 18 ++- .../coverage_configurations/forecast/hdds.py | 15 ++ .../coverage_configurations/forecast/hwdi.py | 7 + .../coverage_configurations/forecast/pr.py | 34 ++++- .../forecast/r95ptot.py | 7 + .../forecast/snwdays.py | 15 ++ .../coverage_configurations/forecast/su30.py | 18 ++- .../coverage_configurations/forecast/tas.py | 37 ++++- .../forecast/tasmax.py | 26 +++- .../forecast/tasmin.py | 26 +++- .../coverage_configurations/forecast/tr.py | 18 ++- .../historical/cdds.py | 6 +- .../coverage_configurations/historical/fd.py | 6 +- .../historical/hdds.py | 6 +- .../historical/prcptot.py | 9 +- .../historical/su30.py | 6 +- .../coverage_configurations/historical/tdd.py | 9 +- .../coverage_configurations/historical/tnd.py | 8 +- .../coverage_configurations/historical/tr.py | 6 +- .../coverage_configurations/historical/txd.py | 8 +- .../webapp/admin/views/climaticindicators.py | 2 +- 39 files changed, 1194 insertions(+), 107 deletions(-) delete mode 100644 arpav_ppcv/bootstrapper/climaticindicators.py create mode 100644 arpav_ppcv/bootstrapper/climaticindicators/__init__.py create mode 100644 arpav_ppcv/bootstrapper/climaticindicators/cdd.py create mode 100644 arpav_ppcv/bootstrapper/climaticindicators/cdds.py create mode 100644 arpav_ppcv/bootstrapper/climaticindicators/fd.py create mode 100644 arpav_ppcv/bootstrapper/climaticindicators/hdds.py create mode 100644 arpav_ppcv/bootstrapper/climaticindicators/hwdi.py create mode 100644 arpav_ppcv/bootstrapper/climaticindicators/pr.py create mode 100644 arpav_ppcv/bootstrapper/climaticindicators/r95ptot.py create mode 100644 arpav_ppcv/bootstrapper/climaticindicators/snwdays.py create mode 100644 arpav_ppcv/bootstrapper/climaticindicators/su30.py create mode 100644 arpav_ppcv/bootstrapper/climaticindicators/tas.py create mode 100644 arpav_ppcv/bootstrapper/climaticindicators/tasmax.py create mode 100644 arpav_ppcv/bootstrapper/climaticindicators/tasmin.py create mode 100644 arpav_ppcv/bootstrapper/climaticindicators/tr.py diff --git a/arpav_ppcv/bootstrapper/cliapp.py b/arpav_ppcv/bootstrapper/cliapp.py index 13ccf0fe..29ddc0a9 100644 --- a/arpav_ppcv/bootstrapper/cliapp.py +++ b/arpav_ppcv/bootstrapper/cliapp.py @@ -45,9 +45,23 @@ tr as tr_historical, txd as txd_historical, ) +from .climaticindicators import ( + cdd as cdd_climatic_indicators, + cdds as cdds_climatic_indicators, + fd as fd_climatic_indicators, + hdds as hdds_climatic_indicators, + hwdi as hwdi_climatic_indicators, + pr as pr_climatic_indicators, + r95ptot as r95ptot_climatic_indicators, + snwdays as snwdays_climatic_indicators, + su30 as su30_climatic_indicators, + tas as tas_climatic_indicators, + tasmax as tasmax_climatic_indicators, + tasmin as tasmin_climatic_indicators, + tr as tr_climatic_indicators, +) from .variables import generate_variable_configurations from .configurationparameters import generate_configuration_parameters -from .climaticindicators import generate_climatic_indicators app = typer.Typer() @@ -188,7 +202,45 @@ def bootstrap_climatic_indicators( ctx: typer.Context, name_filter: Optional[str] = None ): """Create initial climatic indicators.""" - climatic_indicators_to_generate = generate_climatic_indicators() + climatic_indicators_to_generate = ( + cdd_climatic_indicators.generate_climatic_indicators() + ) + climatic_indicators_to_generate.extend( + cdds_climatic_indicators.generate_climatic_indicators() + ) + climatic_indicators_to_generate.extend( + fd_climatic_indicators.generate_climatic_indicators() + ) + climatic_indicators_to_generate.extend( + hdds_climatic_indicators.generate_climatic_indicators() + ) + climatic_indicators_to_generate.extend( + hwdi_climatic_indicators.generate_climatic_indicators() + ) + climatic_indicators_to_generate.extend( + pr_climatic_indicators.generate_climatic_indicators() + ) + climatic_indicators_to_generate.extend( + r95ptot_climatic_indicators.generate_climatic_indicators() + ) + climatic_indicators_to_generate.extend( + snwdays_climatic_indicators.generate_climatic_indicators() + ) + climatic_indicators_to_generate.extend( + su30_climatic_indicators.generate_climatic_indicators() + ) + climatic_indicators_to_generate.extend( + tas_climatic_indicators.generate_climatic_indicators() + ) + climatic_indicators_to_generate.extend( + tasmax_climatic_indicators.generate_climatic_indicators() + ) + climatic_indicators_to_generate.extend( + tasmin_climatic_indicators.generate_climatic_indicators() + ) + climatic_indicators_to_generate.extend( + tr_climatic_indicators.generate_climatic_indicators() + ) with sqlmodel.Session(ctx.obj["engine"]) as session: for climatic_indicator_create in climatic_indicators_to_generate: if name_filter is None or name_filter in climatic_indicator_create.name: @@ -247,72 +299,110 @@ def bootstrap_coverage_configurations( (pv.configuration_parameter.name, pv.name): pv for pv in all_conf_param_values } + all_climatic_indicators = database.collect_all_climatic_indicators(session) + clim_indicator_ids = {i.identifier: i.id for i in all_climatic_indicators} coverage_configurations = [] coverage_configurations.extend( - cdd_forecast.generate_configurations(conf_param_values) + cdd_forecast.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( - cdds_forecast.generate_configurations(conf_param_values, variables) + cdds_forecast.generate_configurations( + conf_param_values, variables, clim_indicator_ids + ) ) coverage_configurations.extend( - fd_forecast.generate_configurations(conf_param_values, variables) + fd_forecast.generate_configurations( + conf_param_values, variables, clim_indicator_ids + ) ) coverage_configurations.extend( - hdds_forecast.generate_configurations(conf_param_values, variables) + hdds_forecast.generate_configurations( + conf_param_values, variables, clim_indicator_ids + ) ) coverage_configurations.extend( - hwdi_forecast.generate_configurations(conf_param_values) + hwdi_forecast.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( - pr_forecast.generate_configurations(conf_param_values, variables) + pr_forecast.generate_configurations( + conf_param_values, variables, clim_indicator_ids + ) ) coverage_configurations.extend( - r95ptot_forecast.generate_configurations(conf_param_values) + r95ptot_forecast.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( - snwdays_forecast.generate_configurations(conf_param_values) + snwdays_forecast.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( - su30_forecast.generate_configurations(conf_param_values, variables) + su30_forecast.generate_configurations( + conf_param_values, variables, clim_indicator_ids + ) ) coverage_configurations.extend( - tas_forecast.generate_configurations(conf_param_values, variables) + tas_forecast.generate_configurations( + conf_param_values, variables, clim_indicator_ids + ) ) coverage_configurations.extend( - tasmax_forecast.generate_configurations(conf_param_values, variables) + tasmax_forecast.generate_configurations( + conf_param_values, variables, clim_indicator_ids + ) ) coverage_configurations.extend( - tasmin_forecast.generate_configurations(conf_param_values, variables) + tasmin_forecast.generate_configurations( + conf_param_values, variables, clim_indicator_ids + ) ) coverage_configurations.extend( - tr_forecast.generate_configurations(conf_param_values, variables) + tr_forecast.generate_configurations( + conf_param_values, variables, clim_indicator_ids + ) ) coverage_configurations.extend( - cdds_historical.generate_configurations(conf_param_values, variables) + cdds_historical.generate_configurations( + conf_param_values, variables, clim_indicator_ids + ) ) coverage_configurations.extend( - fd_historical.generate_configurations(conf_param_values, variables) + fd_historical.generate_configurations( + conf_param_values, variables, clim_indicator_ids + ) ) coverage_configurations.extend( - hdds_historical.generate_configurations(conf_param_values, variables) + hdds_historical.generate_configurations( + conf_param_values, variables, clim_indicator_ids + ) ) coverage_configurations.extend( - prcptot_historical.generate_configurations(conf_param_values, variables) + prcptot_historical.generate_configurations( + conf_param_values, variables, clim_indicator_ids + ) ) coverage_configurations.extend( - su30_historical.generate_configurations(conf_param_values, variables) + su30_historical.generate_configurations( + conf_param_values, variables, clim_indicator_ids + ) ) coverage_configurations.extend( - tdd_historical.generate_configurations(conf_param_values, variables) + tdd_historical.generate_configurations( + conf_param_values, variables, clim_indicator_ids + ) ) coverage_configurations.extend( - tnd_historical.generate_configurations(conf_param_values, variables) + tnd_historical.generate_configurations( + conf_param_values, variables, clim_indicator_ids + ) ) coverage_configurations.extend( - tr_historical.generate_configurations(conf_param_values, variables) + tr_historical.generate_configurations( + conf_param_values, variables, clim_indicator_ids + ) ) coverage_configurations.extend( - txd_historical.generate_configurations(conf_param_values, variables) + txd_historical.generate_configurations( + conf_param_values, variables, clim_indicator_ids + ) ) for cov_conf_create in coverage_configurations: diff --git a/arpav_ppcv/bootstrapper/climaticindicators.py b/arpav_ppcv/bootstrapper/climaticindicators.py deleted file mode 100644 index 9ee5fd42..00000000 --- a/arpav_ppcv/bootstrapper/climaticindicators.py +++ /dev/null @@ -1,66 +0,0 @@ -from ..schemas.static import ( - AggregationPeriod, - MeasureType, -) -from ..schemas.climaticindicators import ClimaticIndicatorCreate - -_tas_name = "tas" -_tas_display_name_english = "Average temperature (TAS)" -_tas_display_name_italian = "Temperatura media (TAS)" -_tas_description_english = "Daily mean air temperature close to the ground" -_tas_description_italian = "Temperatura media giornaliera dell'aria vicino al suolo" -_tas_unit_english = "ºC" -_tas_unit_italian = "ºC" - - -def generate_climatic_indicators() -> list[ClimaticIndicatorCreate]: - return [ - ClimaticIndicatorCreate( - name=_tas_name, - measure_type=MeasureType.ABSOLUTE, - aggregation_period=AggregationPeriod.ANNUAL, - display_name_english=_tas_display_name_english, - display_name_italian=_tas_display_name_italian, - description_english=_tas_description_english, - description_italian=_tas_description_italian, - unit_english=_tas_unit_english, - unit_italian=_tas_unit_italian, - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=1, - sort_order=0, - ), - ClimaticIndicatorCreate( - name=_tas_name, - measure_type=MeasureType.ANOMALY, - aggregation_period=AggregationPeriod.ANNUAL, - display_name_english=_tas_display_name_english, - display_name_italian=_tas_display_name_italian, - description_english=_tas_description_english, - description_italian=_tas_description_italian, - unit_english=_tas_unit_english, - unit_italian=_tas_unit_italian, - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=1, - sort_order=0, - ), - ClimaticIndicatorCreate( - name=_tas_name, - measure_type=MeasureType.ANOMALY, - aggregation_period=AggregationPeriod.THIRTY_YEAR, - display_name_english=_tas_display_name_english, - display_name_italian=_tas_display_name_italian, - description_english=_tas_description_english, - description_italian=_tas_description_italian, - unit_english=_tas_unit_english, - unit_italian=_tas_unit_italian, - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=1, - sort_order=0, - ), - ] diff --git a/arpav_ppcv/bootstrapper/climaticindicators/__init__.py b/arpav_ppcv/bootstrapper/climaticindicators/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/arpav_ppcv/bootstrapper/climaticindicators/cdd.py b/arpav_ppcv/bootstrapper/climaticindicators/cdd.py new file mode 100644 index 00000000..64e26a42 --- /dev/null +++ b/arpav_ppcv/bootstrapper/climaticindicators/cdd.py @@ -0,0 +1,32 @@ +from ...schemas.static import ( + AggregationPeriod, + MeasureType, +) +from ...schemas.climaticindicators import ClimaticIndicatorCreate + + +def generate_climatic_indicators() -> list[ClimaticIndicatorCreate]: + return [ + ClimaticIndicatorCreate( + name="cdd", + measure_type=MeasureType.ANOMALY, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english="Consecutive dry days (CDD)", + display_name_italian="Giorni secchi (CDD)", + description_english=( + "Maximum number of consecutive dry days (daily precipitation " + "less than 1 mm)" + ), + description_italian=( + "Numero massimo di giorni consecutivi asciutti " + "(precipitazione giornaliera inferiore a 1 mm)" + ), + unit_english="days", + unit_italian="gg", + palette="uncert-stippled/div-BrBG-inv", + color_scale_min=-40, + color_scale_max=40, + data_precision=0, + sort_order=11, + ), + ] diff --git a/arpav_ppcv/bootstrapper/climaticindicators/cdds.py b/arpav_ppcv/bootstrapper/climaticindicators/cdds.py new file mode 100644 index 00000000..dd1ca386 --- /dev/null +++ b/arpav_ppcv/bootstrapper/climaticindicators/cdds.py @@ -0,0 +1,76 @@ +from ...schemas.static import ( + AggregationPeriod, + MeasureType, +) +from ...schemas.climaticindicators import ClimaticIndicatorCreate + + +def generate_climatic_indicators() -> list[ClimaticIndicatorCreate]: + return [ + ClimaticIndicatorCreate( + name="cdds", + measure_type=MeasureType.ABSOLUTE, + aggregation_period=AggregationPeriod.ANNUAL, + display_name_english="Cooling degree days (CDDs)", + display_name_italian="Gradi giorno di raffrescamento (CDDs)", + description_english=( + "Sum of the average daily temperature minus 21°C if the " + "average daily temperature is larger than 24°C" + ), + description_italian=( + "Somma della temperatura media giornaliera meno 21°C se la " + "temperatura media giornaliera è maggiore di 24°C" + ), + unit_english="ºC", + unit_italian="ºC", + palette="default/seq-YlOrRd", + color_scale_min=0, + color_scale_max=1000, + data_precision=0, + sort_order=8, + ), + ClimaticIndicatorCreate( + name="cdds", + measure_type=MeasureType.ABSOLUTE, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english="Cooling degree days (CDDs)", + display_name_italian="Gradi giorno di raffrescamento (CDDs)", + description_english=( + "Sum of the average daily temperature minus 21°C if the " + "average daily temperature is larger than 24°C" + ), + description_italian=( + "Somma della temperatura media giornaliera meno 21°C se la " + "temperatura media giornaliera è maggiore di 24°C" + ), + unit_english="ºC", + unit_italian="ºC", + palette="default/seq-YlOrRd", + color_scale_min=0, + color_scale_max=320, + data_precision=0, + sort_order=8, + ), + ClimaticIndicatorCreate( + name="cdds", + measure_type=MeasureType.ANOMALY, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english="Cooling degree days (CDDs)", + display_name_italian="Gradi giorno di raffrescamento (CDDs)", + description_english=( + "Sum of the average daily temperature minus 21°C if the " + "average daily temperature is larger than 24°C" + ), + description_italian=( + "Somma della temperatura media giornaliera meno 21°C se la " + "temperatura media giornaliera è maggiore di 24°C" + ), + unit_english="ºC", + unit_italian="ºC", + palette="uncert-stippled/seq-YlOrRd", + color_scale_min=0, + color_scale_max=1000, + data_precision=0, + sort_order=8, + ), + ] diff --git a/arpav_ppcv/bootstrapper/climaticindicators/fd.py b/arpav_ppcv/bootstrapper/climaticindicators/fd.py new file mode 100644 index 00000000..4e673b0b --- /dev/null +++ b/arpav_ppcv/bootstrapper/climaticindicators/fd.py @@ -0,0 +1,70 @@ +from ...schemas.static import ( + AggregationPeriod, + MeasureType, +) +from ...schemas.climaticindicators import ClimaticIndicatorCreate + + +def generate_climatic_indicators() -> list[ClimaticIndicatorCreate]: + return [ + ClimaticIndicatorCreate( + name="fd", + measure_type=MeasureType.ABSOLUTE, + aggregation_period=AggregationPeriod.ANNUAL, + display_name_english="Frost days (FD)", + display_name_italian="Giorni di gelo (FD)", + description_english=( + "Number of days with minimum temperature less than 0ºC" + ), + description_italian=( + "Numero di giorni con temperatura minima minore di 0°C" + ), + unit_english="days", + unit_italian="gg", + palette="default/seq-Blues-inv", + color_scale_min=0, + color_scale_max=200, + data_precision=0, + sort_order=5, + ), + ClimaticIndicatorCreate( + name="fd", + measure_type=MeasureType.ANOMALY, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english="Frost days (FD)", + display_name_italian="Giorni di gelo (FD)", + description_english=( + "Number of days with minimum temperature less than 0ºC" + ), + description_italian=( + "Numero di giorni con temperatura minima minore di 0°C" + ), + unit_english="days", + unit_italian="gg", + palette="uncert-stippled/seq-YlOrRd-inv", + color_scale_min=-85, + color_scale_max=5, + data_precision=0, + sort_order=5, + ), + ClimaticIndicatorCreate( + name="fd", + measure_type=MeasureType.ABSOLUTE, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english="Frost days (FD)", + display_name_italian="Giorni di gelo (FD)", + description_english=( + "Number of days with minimum temperature less than 0ºC" + ), + description_italian=( + "Numero di giorni con temperatura minima minore di 0°C" + ), + unit_english="days", + unit_italian="gg", + palette="default/seq-YlOrRd", + color_scale_min=0, + color_scale_max=260, + data_precision=0, + sort_order=5, + ), + ] diff --git a/arpav_ppcv/bootstrapper/climaticindicators/hdds.py b/arpav_ppcv/bootstrapper/climaticindicators/hdds.py new file mode 100644 index 00000000..d404787d --- /dev/null +++ b/arpav_ppcv/bootstrapper/climaticindicators/hdds.py @@ -0,0 +1,76 @@ +from ...schemas.static import ( + AggregationPeriod, + MeasureType, +) +from ...schemas.climaticindicators import ClimaticIndicatorCreate + + +def generate_climatic_indicators() -> list[ClimaticIndicatorCreate]: + return [ + ClimaticIndicatorCreate( + name="hdds", + measure_type=MeasureType.ABSOLUTE, + aggregation_period=AggregationPeriod.ANNUAL, + display_name_english="Heating degree days (HDDs)", + display_name_italian="Gradi giorno di riscaldamento (HDDs)", + description_english=( + "Sum of 20°C minus the average daily temperature if the " + "average daily temperature is less than 20°C" + ), + description_italian=( + "Somma di 20°C meno la temperatura media giornaliera se la " + "temperatura media giornaliera è minore di 20°C" + ), + unit_english="ºC", + unit_italian="ºC", + palette="default/seq-Blues-inv", + color_scale_min=0, + color_scale_max=7000, + data_precision=0, + sort_order=7, + ), + ClimaticIndicatorCreate( + name="hdds", + measure_type=MeasureType.ANOMALY, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english="Heating degree days (HDDs)", + display_name_italian="Gradi giorno di riscaldamento (HDDs)", + description_english=( + "Sum of 20°C minus the average daily temperature if the " + "average daily temperature is less than 20°C" + ), + description_italian=( + "Somma di 20°C meno la temperatura media giornaliera se la " + "temperatura media giornaliera è minore di 20°C" + ), + unit_english="ºC", + unit_italian="ºC", + palette="default/seq-Blues-inv", + color_scale_min=-2000, + color_scale_max=0, + data_precision=0, + sort_order=7, + ), + ClimaticIndicatorCreate( + name="hdds", + measure_type=MeasureType.ABSOLUTE, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english="Heating degree days (HDDs)", + display_name_italian="Gradi giorno di riscaldamento (HDDs)", + description_english=( + "Sum of 20°C minus the average daily temperature if the " + "average daily temperature is less than 20°C" + ), + description_italian=( + "Somma di 20°C meno la temperatura media giornaliera se la " + "temperatura media giornaliera è minore di 20°C" + ), + unit_english="ºC", + unit_italian="ºC", + palette="default/seq-YlOrRd", + color_scale_min=2130, + color_scale_max=7800, + data_precision=0, + sort_order=7, + ), + ] diff --git a/arpav_ppcv/bootstrapper/climaticindicators/hwdi.py b/arpav_ppcv/bootstrapper/climaticindicators/hwdi.py new file mode 100644 index 00000000..63176bcd --- /dev/null +++ b/arpav_ppcv/bootstrapper/climaticindicators/hwdi.py @@ -0,0 +1,32 @@ +from ...schemas.static import ( + AggregationPeriod, + MeasureType, +) +from ...schemas.climaticindicators import ClimaticIndicatorCreate + + +def generate_climatic_indicators() -> list[ClimaticIndicatorCreate]: + return [ + ClimaticIndicatorCreate( + name="hwdi", + measure_type=MeasureType.ANOMALY, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english="Heat waves duration index (HWDI)", + display_name_italian="Durata delle ondate di calore (HWDI)", + description_english=( + "Number of days in which the maximum temperature is 5°C " + "higher than the average for at least 5 consecutive days" + ), + description_italian=( + "Numero di giorni in cui la temperatura massima è maggiore " + "di 5°C rispetto alla media per almeno 5 giorni consecutivi" + ), + unit_english="days", + unit_italian="gg", + palette="uncert-stippled/seq-YlOrRd", + color_scale_min=0, + color_scale_max=50, + data_precision=0, + sort_order=6, + ), + ] diff --git a/arpav_ppcv/bootstrapper/climaticindicators/pr.py b/arpav_ppcv/bootstrapper/climaticindicators/pr.py new file mode 100644 index 00000000..6399607f --- /dev/null +++ b/arpav_ppcv/bootstrapper/climaticindicators/pr.py @@ -0,0 +1,74 @@ +from ...schemas.static import ( + AggregationPeriod, + MeasureType, +) +from ...schemas.climaticindicators import ClimaticIndicatorCreate + + +def generate_climatic_indicators() -> list[ClimaticIndicatorCreate]: + return [ + ClimaticIndicatorCreate( + name="pr", + measure_type=MeasureType.ANOMALY, + aggregation_period=AggregationPeriod.ANNUAL, + display_name_english="Precipitation (PR)", + display_name_italian="Precipitazione (PR)", + description_english=("Daily precipitation near the ground"), + description_italian=("Precipitazione giornaliera vicino al suolo"), + unit_english="%", + unit_italian="%", + palette="default/div-BrBG", + color_scale_min=-40, + color_scale_max=40, + data_precision=0, + sort_order=9, + ), + ClimaticIndicatorCreate( + name="pr", + measure_type=MeasureType.ANOMALY, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english="Precipitation (PR)", + display_name_italian="Precipitazione (PR)", + description_english=("Daily precipitation near the ground"), + description_italian=("Precipitazione giornaliera vicino al suolo"), + unit_english="%", + unit_italian="%", + palette="uncert-stippled/div-BrBG", + color_scale_min=-40, + color_scale_max=40, + data_precision=0, + sort_order=9, + ), + ClimaticIndicatorCreate( + name="pr", + measure_type=MeasureType.ABSOLUTE, + aggregation_period=AggregationPeriod.ANNUAL, + display_name_english="Precipitation (PR)", + display_name_italian="Precipitazione (PR)", + description_english=("Daily precipitation near the ground"), + description_italian=("Precipitazione giornaliera vicino al suolo"), + unit_english="mm", + unit_italian="mm", + palette="default/seq-BuYl-inv", + color_scale_min=0, + color_scale_max=800, + data_precision=0, + sort_order=9, + ), + ClimaticIndicatorCreate( + name="pr", + measure_type=MeasureType.ABSOLUTE, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english="Precipitation (PR)", + display_name_italian="Precipitazione (PR)", + description_english=("Daily precipitation near the ground"), + description_italian=("Precipitazione giornaliera vicino al suolo"), + unit_english="mm", + unit_italian="mm", + palette="default/seq-YlOrRd", + color_scale_min=300, + color_scale_max=1300, + data_precision=0, + sort_order=9, + ), + ] diff --git a/arpav_ppcv/bootstrapper/climaticindicators/r95ptot.py b/arpav_ppcv/bootstrapper/climaticindicators/r95ptot.py new file mode 100644 index 00000000..2d503905 --- /dev/null +++ b/arpav_ppcv/bootstrapper/climaticindicators/r95ptot.py @@ -0,0 +1,32 @@ +from ...schemas.static import ( + AggregationPeriod, + MeasureType, +) +from ...schemas.climaticindicators import ClimaticIndicatorCreate + + +def generate_climatic_indicators() -> list[ClimaticIndicatorCreate]: + return [ + ClimaticIndicatorCreate( + name="r95ptot", + measure_type=MeasureType.ANOMALY, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english="Extreme precipitation (R95pTOT)", + display_name_italian="Precipitazione estrema (R95pTOT)", + description_english=( + "Total cumulative precipitation above the 95th percentile " + "with respect to the reference period" + ), + description_italian=( + "Precipitazione totale cumulata al di sopra del 95o " + "percentile del periodo di riferimento" + ), + unit_english="%", + unit_italian="%", + palette="uncert-stippled/div-BrBG", + color_scale_min=-160, + color_scale_max=160, + data_precision=0, + sort_order=10, + ), + ] diff --git a/arpav_ppcv/bootstrapper/climaticindicators/snwdays.py b/arpav_ppcv/bootstrapper/climaticindicators/snwdays.py new file mode 100644 index 00000000..ee8afe99 --- /dev/null +++ b/arpav_ppcv/bootstrapper/climaticindicators/snwdays.py @@ -0,0 +1,54 @@ +from ...schemas.static import ( + AggregationPeriod, + MeasureType, +) +from ...schemas.climaticindicators import ClimaticIndicatorCreate + + +def generate_climatic_indicators() -> list[ClimaticIndicatorCreate]: + return [ + ClimaticIndicatorCreate( + name="snwdays", + measure_type=MeasureType.ABSOLUTE, + aggregation_period=AggregationPeriod.ANNUAL, + display_name_english="Snow days (SNWDAYS)", + display_name_italian="Giorni con neve nuova (SNWDAYS)", + description_english=( + "Number of days with average temperature less than 2°C and " + "daily precipitation larger than 1 mm" + ), + description_italian=( + "Numero di giorni con temperatura media minore di 2°C e " + "precipitazione giornaliera maggiore di 1 mm" + ), + unit_english="days", + unit_italian="gg", + palette="default/seq-BuYl-inv", + color_scale_min=0, + color_scale_max=100, + data_precision=0, + sort_order=12, + ), + ClimaticIndicatorCreate( + name="snwdays", + measure_type=MeasureType.ANOMALY, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english="Snow days (SNWDAYS)", + display_name_italian="Giorni con neve nuova (SNWDAYS)", + description_english=( + "Number of days with average temperature less than 2°C and " + "daily precipitation larger than 1 mm" + ), + description_italian=( + "Numero di giorni con temperatura media minore di 2°C e " + "precipitazione giornaliera maggiore di 1 mm" + ), + unit_english="days", + unit_italian="gg", + palette="uncert-stippled/seq-YlOrBr-inv", + color_scale_min=-50, + color_scale_max=50, + data_precision=0, + sort_order=12, + ), + ] diff --git a/arpav_ppcv/bootstrapper/climaticindicators/su30.py b/arpav_ppcv/bootstrapper/climaticindicators/su30.py new file mode 100644 index 00000000..d3cf0393 --- /dev/null +++ b/arpav_ppcv/bootstrapper/climaticindicators/su30.py @@ -0,0 +1,70 @@ +from ...schemas.static import ( + AggregationPeriod, + MeasureType, +) +from ...schemas.climaticindicators import ClimaticIndicatorCreate + + +def generate_climatic_indicators() -> list[ClimaticIndicatorCreate]: + return [ + ClimaticIndicatorCreate( + name="su30", + measure_type=MeasureType.ABSOLUTE, + aggregation_period=AggregationPeriod.ANNUAL, + display_name_english="Summer days (SU30)", + display_name_italian="Giorni caldi (SU30)", + description_english=( + "Number of days with maximum temperature larger than 30°C" + ), + description_italian=( + "Numero di giorni con temperatura massima maggiore di 30°C" + ), + unit_english="days", + unit_italian="gg", + palette="default/seq-YlOrRd", + color_scale_min=0, + color_scale_max=100, + data_precision=0, + sort_order=4, + ), + ClimaticIndicatorCreate( + name="su30", + measure_type=MeasureType.ABSOLUTE, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english="Summer days (SU30)", + display_name_italian="Giorni caldi (SU30)", + description_english=( + "Number of days with maximum temperature larger than 30°C" + ), + description_italian=( + "Numero di giorni con temperatura massima maggiore di 30°C" + ), + unit_english="days", + unit_italian="gg", + palette="default/seq-YlOrRd", + color_scale_min=0, + color_scale_max=80, + data_precision=0, + sort_order=4, + ), + ClimaticIndicatorCreate( + name="su30", + measure_type=MeasureType.ANOMALY, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english="Summer days (SU30)", + display_name_italian="Giorni caldi (SU30)", + description_english=( + "Number of days with maximum temperature larger than 30°C" + ), + description_italian=( + "Numero di giorni con temperatura massima maggiore di 30°C" + ), + unit_english="days", + unit_italian="gg", + palette="uncert-stippled/seq-YlOrRd", + color_scale_min=-5, + color_scale_max=75, + data_precision=0, + sort_order=4, + ), + ] diff --git a/arpav_ppcv/bootstrapper/climaticindicators/tas.py b/arpav_ppcv/bootstrapper/climaticindicators/tas.py new file mode 100644 index 00000000..e0c7a2db --- /dev/null +++ b/arpav_ppcv/bootstrapper/climaticindicators/tas.py @@ -0,0 +1,74 @@ +from ...schemas.static import ( + AggregationPeriod, + MeasureType, +) +from ...schemas.climaticindicators import ClimaticIndicatorCreate + + +def generate_climatic_indicators() -> list[ClimaticIndicatorCreate]: + return [ + ClimaticIndicatorCreate( + name="tas", + measure_type=MeasureType.ABSOLUTE, + aggregation_period=AggregationPeriod.ANNUAL, + display_name_english="Average temperature (TAS)", + display_name_italian="Temperatura media (TAS)", + description_english="Daily mean air temperature close to the ground", + description_italian="Temperatura media giornaliera dell'aria vicino al suolo", + unit_english="ºC", + unit_italian="ºC", + palette="default/seq-YlOrRd", + color_scale_min=-3, + color_scale_max=32, + data_precision=1, + sort_order=0, + ), + ClimaticIndicatorCreate( + name="tas", + measure_type=MeasureType.ABSOLUTE, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english="Average temperature (TAS)", + display_name_italian="Temperatura media (TAS)", + description_english="Daily mean air temperature close to the ground", + description_italian="Temperatura media giornaliera dell'aria vicino al suolo", + unit_english="ºC", + unit_italian="ºC", + palette="default/seq-YlOrRd", + color_scale_min=-5, + color_scale_max=20, + data_precision=1, + sort_order=0, + ), + ClimaticIndicatorCreate( + name="tas", + measure_type=MeasureType.ANOMALY, + aggregation_period=AggregationPeriod.ANNUAL, + display_name_english="Average temperature (TAS)", + display_name_italian="Temperatura media (TAS)", + description_english="Daily mean air temperature close to the ground", + description_italian="Temperatura media giornaliera dell'aria vicino al suolo", + unit_english="ºC", + unit_italian="ºC", + palette="default/seq-YlOrRd", + color_scale_min=0, + color_scale_max=6, + data_precision=1, + sort_order=0, + ), + ClimaticIndicatorCreate( + name="tas", + measure_type=MeasureType.ANOMALY, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english="Average temperature (TAS)", + display_name_italian="Temperatura media (TAS)", + description_english="Daily mean air temperature close to the ground", + description_italian="Temperatura media giornaliera dell'aria vicino al suolo", + unit_english="ºC", + unit_italian="ºC", + palette="default/seq-YlOrRd", + color_scale_min=0, + color_scale_max=6, + data_precision=1, + sort_order=0, + ), + ] diff --git a/arpav_ppcv/bootstrapper/climaticindicators/tasmax.py b/arpav_ppcv/bootstrapper/climaticindicators/tasmax.py new file mode 100644 index 00000000..68745d59 --- /dev/null +++ b/arpav_ppcv/bootstrapper/climaticindicators/tasmax.py @@ -0,0 +1,64 @@ +from ...schemas.static import ( + AggregationPeriod, + MeasureType, +) +from ...schemas.climaticindicators import ClimaticIndicatorCreate + + +def generate_climatic_indicators() -> list[ClimaticIndicatorCreate]: + return [ + ClimaticIndicatorCreate( + name="tasmax", + measure_type=MeasureType.ABSOLUTE, + aggregation_period=AggregationPeriod.ANNUAL, + display_name_english="Maximum temperature (TASMAX)", + display_name_italian="Temperatura massima (TASMAX)", + description_english=("Daily maximum air temperature close to the ground"), + description_italian=( + "Temperatura massima giornaliera dell'aria vicino al suolo" + ), + unit_english="ºC", + unit_italian="ºC", + palette="default/seq-YlOrRd", + color_scale_min=-3, + color_scale_max=32, + data_precision=1, + sort_order=2, + ), + ClimaticIndicatorCreate( + name="tasmax", + measure_type=MeasureType.ABSOLUTE, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english="Maximum temperature (TASMAX)", + display_name_italian="Temperatura massima (TASMAX)", + description_english=("Daily maximum air temperature close to the ground"), + description_italian=( + "Temperatura massima giornaliera dell'aria vicino al suolo" + ), + unit_english="ºC", + unit_italian="ºC", + palette="default/seq-YlOrRd", + color_scale_min=-5, + color_scale_max=20, + data_precision=1, + sort_order=2, + ), + ClimaticIndicatorCreate( + name="tasmax", + measure_type=MeasureType.ANOMALY, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english="Maximum temperature (TASMAX)", + display_name_italian="Temperatura massima (TASMAX)", + description_english=("Daily maximum air temperature close to the ground"), + description_italian=( + "Temperatura massima giornaliera dell'aria vicino al suolo" + ), + unit_english="ºC", + unit_italian="ºC", + palette="uncert-stippled/seq-YlOrRd", + color_scale_min=0, + color_scale_max=6, + data_precision=1, + sort_order=2, + ), + ] diff --git a/arpav_ppcv/bootstrapper/climaticindicators/tasmin.py b/arpav_ppcv/bootstrapper/climaticindicators/tasmin.py new file mode 100644 index 00000000..eccadfcf --- /dev/null +++ b/arpav_ppcv/bootstrapper/climaticindicators/tasmin.py @@ -0,0 +1,64 @@ +from ...schemas.static import ( + AggregationPeriod, + MeasureType, +) +from ...schemas.climaticindicators import ClimaticIndicatorCreate + + +def generate_climatic_indicators() -> list[ClimaticIndicatorCreate]: + return [ + ClimaticIndicatorCreate( + name="tasmin", + measure_type=MeasureType.ABSOLUTE, + aggregation_period=AggregationPeriod.ANNUAL, + display_name_english="Minimum temperature (TASMIN)", + display_name_italian="Temperatura minima (TASMIN)", + description_english=("Daily minimum air temperature close to the ground"), + description_italian=( + "Temperatura minima giornaliera dell'aria vicino al suolo" + ), + unit_english="ºC", + unit_italian="ºC", + palette="default/seq-YlOrRd", + color_scale_min=-3, + color_scale_max=32, + data_precision=1, + sort_order=1, + ), + ClimaticIndicatorCreate( + name="tasmin", + measure_type=MeasureType.ABSOLUTE, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english="Minimum temperature (TASMIN)", + display_name_italian="Temperatura minima (TASMIN)", + description_english=("Daily minimum air temperature close to the ground"), + description_italian=( + "Temperatura minima giornaliera dell'aria vicino al suolo" + ), + unit_english="ºC", + unit_italian="ºC", + palette="default/seq-YlOrRd", + color_scale_min=-5, + color_scale_max=32, + data_precision=1, + sort_order=1, + ), + ClimaticIndicatorCreate( + name="tasmin", + measure_type=MeasureType.ANOMALY, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english="Minimum temperature (TASMIN)", + display_name_italian="Temperatura minima (TASMIN)", + description_english=("Daily minimum air temperature close to the ground"), + description_italian=( + "Temperatura minima giornaliera dell'aria vicino al suolo" + ), + unit_english="ºC", + unit_italian="ºC", + palette="uncert-stippled/seq-YlOrRd", + color_scale_min=0, + color_scale_max=6, + data_precision=1, + sort_order=1, + ), + ] diff --git a/arpav_ppcv/bootstrapper/climaticindicators/tr.py b/arpav_ppcv/bootstrapper/climaticindicators/tr.py new file mode 100644 index 00000000..c49ab4a3 --- /dev/null +++ b/arpav_ppcv/bootstrapper/climaticindicators/tr.py @@ -0,0 +1,70 @@ +from ...schemas.static import ( + AggregationPeriod, + MeasureType, +) +from ...schemas.climaticindicators import ClimaticIndicatorCreate + + +def generate_climatic_indicators() -> list[ClimaticIndicatorCreate]: + return [ + ClimaticIndicatorCreate( + name="tr", + measure_type=MeasureType.ABSOLUTE, + aggregation_period=AggregationPeriod.ANNUAL, + display_name_english="Tropical nights (TR)", + display_name_italian="Notti tropicali (TR)", + description_english=( + "Number of days with minimum temperature larger than 20°C" + ), + description_italian=( + "Numero di giorni con temperatura minima maggiore di 20°C" + ), + unit_english="days", + unit_italian="gg", + palette="default/seq-YlOrRd", + color_scale_min=0, + color_scale_max=120, + data_precision=1, + sort_order=3, + ), + ClimaticIndicatorCreate( + name="tr", + measure_type=MeasureType.ABSOLUTE, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english="Tropical nights (TR)", + display_name_italian="Notti tropicali (TR)", + description_english=( + "Number of days with minimum temperature larger than 20°C" + ), + description_italian=( + "Numero di giorni con temperatura minima maggiore di 20°C" + ), + unit_english="days", + unit_italian="gg", + palette="default/seq-YlOrRd", + color_scale_min=0, + color_scale_max=50, + data_precision=1, + sort_order=3, + ), + ClimaticIndicatorCreate( + name="tr", + measure_type=MeasureType.ANOMALY, + aggregation_period=AggregationPeriod.THIRTY_YEAR, + display_name_english="Tropical nights (TR)", + display_name_italian="Notti tropicali (TR)", + description_english=( + "Number of days with minimum temperature larger than 20°C" + ), + description_italian=( + "Numero di giorni con temperatura minima maggiore di 20°C" + ), + unit_english="days", + unit_italian="gg", + palette="uncert-stippled/seq-YlOrRd", + color_scale_min=-5, + color_scale_max=75, + data_precision=1, + sort_order=3, + ), + ] diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdd.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdd.py index 4a5e7b9b..ad44679e 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdd.py @@ -18,6 +18,7 @@ def generate_configurations( conf_param_values, + climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( @@ -36,6 +37,7 @@ def generate_configurations( color_scale_min=-40, color_scale_max=40, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["cdd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -124,6 +126,7 @@ def generate_configurations( color_scale_min=-40, color_scale_max=40, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["cdd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -215,6 +218,7 @@ def generate_configurations( color_scale_min=-40, color_scale_max=40, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["cdd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -306,6 +310,7 @@ def generate_configurations( color_scale_min=-40, color_scale_max=40, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["cdd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -394,6 +399,7 @@ def generate_configurations( color_scale_min=-40, color_scale_max=40, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["cdd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -485,6 +491,7 @@ def generate_configurations( color_scale_min=-40, color_scale_max=40, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["cdd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdds.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdds.py index c741ab0a..67fcdaf6 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdds.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdds.py @@ -23,6 +23,7 @@ def generate_configurations( conf_param_values, variables, + climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( @@ -39,6 +40,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=1000, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -105,6 +107,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=1000, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -170,6 +173,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=1000, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -235,6 +239,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=1000, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -297,6 +302,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=1000, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -362,6 +368,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=1000, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -427,6 +434,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=1000, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -494,6 +502,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=1000, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -562,6 +571,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=1000, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["cdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -634,6 +644,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=1000, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["cdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -709,6 +720,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=1000, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["cdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -784,6 +796,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=1000, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["cdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -856,6 +869,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=1000, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["cdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -931,6 +945,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=1000, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["cdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/fd.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/fd.py index eaf26db2..11662e4f 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/fd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/fd.py @@ -15,7 +15,9 @@ def generate_configurations( - conf_param_values, variables + conf_param_values, + variables, + climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( @@ -33,6 +35,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=200, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -100,6 +103,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=200, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -170,6 +174,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=200, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -240,6 +245,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=200, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -307,6 +313,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=200, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -377,6 +384,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=200, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -447,6 +455,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=200, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -515,6 +524,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=200, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -584,6 +594,7 @@ def generate_configurations( color_scale_min=-85, color_scale_max=5, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["fd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -657,6 +668,7 @@ def generate_configurations( color_scale_min=-85, color_scale_max=5, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["fd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -733,6 +745,7 @@ def generate_configurations( color_scale_min=-85, color_scale_max=5, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["fd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -809,6 +822,7 @@ def generate_configurations( color_scale_min=-85, color_scale_max=5, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["fd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -882,6 +896,7 @@ def generate_configurations( color_scale_min=-85, color_scale_max=5, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["fd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -958,6 +973,7 @@ def generate_configurations( color_scale_min=-85, color_scale_max=5, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["fd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hdds.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hdds.py index f07f3b4c..fd7a7a98 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hdds.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hdds.py @@ -23,6 +23,7 @@ def generate_configurations( conf_param_values, variables, + climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( @@ -39,6 +40,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=7000, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -105,6 +107,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=7000, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -170,6 +173,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=7000, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -235,6 +239,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=7000, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -297,6 +302,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=7000, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -362,6 +368,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=7000, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -427,6 +434,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=7000, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -494,6 +502,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=7000, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -563,6 +572,7 @@ def generate_configurations( color_scale_min=-2000, color_scale_max=0, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["hdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -635,6 +645,7 @@ def generate_configurations( color_scale_min=-2000, color_scale_max=0, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["hdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -710,6 +721,7 @@ def generate_configurations( color_scale_min=-2000, color_scale_max=0, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["hdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -785,6 +797,7 @@ def generate_configurations( color_scale_min=-2000, color_scale_max=0, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["hdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -857,6 +870,7 @@ def generate_configurations( color_scale_min=-2000, color_scale_max=0, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["hdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -932,6 +946,7 @@ def generate_configurations( color_scale_min=-2000, color_scale_max=0, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["hdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hwdi.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hwdi.py index 10131de8..0cb3d2f0 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hwdi.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hwdi.py @@ -19,6 +19,7 @@ def generate_configurations( conf_param_values, + climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( @@ -37,6 +38,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=50, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["hwdi-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -110,6 +112,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=50, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["hwdi-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -186,6 +189,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=50, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["hwdi-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -262,6 +266,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=50, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["hwdi-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -335,6 +340,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=50, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["hwdi-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -411,6 +417,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=50, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["hwdi-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/pr.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/pr.py index d5079a0d..53ef05e5 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/pr.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/pr.py @@ -15,7 +15,9 @@ def generate_configurations( - conf_param_values, variables + conf_param_values, + variables, + climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( @@ -32,6 +34,7 @@ def generate_configurations( color_scale_min=-40, color_scale_max=40, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -109,6 +112,7 @@ def generate_configurations( color_scale_min=-40, color_scale_max=40, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -189,6 +193,7 @@ def generate_configurations( color_scale_min=-40, color_scale_max=40, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -269,6 +274,7 @@ def generate_configurations( color_scale_min=-40, color_scale_max=40, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -346,6 +352,7 @@ def generate_configurations( color_scale_min=-40, color_scale_max=40, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -426,6 +433,7 @@ def generate_configurations( color_scale_min=-40, color_scale_max=40, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -506,6 +514,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=0, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -588,6 +597,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=0, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -670,6 +680,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=800, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -751,6 +762,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=3200, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -817,6 +829,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=800, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -901,6 +914,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=3200, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -970,6 +984,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=800, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1054,6 +1069,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=3200, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1123,6 +1139,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=800, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1204,6 +1221,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=3200, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1270,6 +1288,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=800, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1354,6 +1373,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=3200, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1423,6 +1443,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=800, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1507,6 +1528,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=3200, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1576,6 +1598,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=800, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1658,6 +1681,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=800, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1740,6 +1764,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=3200, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1807,6 +1832,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=3200, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1875,6 +1901,7 @@ def generate_configurations( color_scale_min=-40, color_scale_max=40, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1962,6 +1989,7 @@ def generate_configurations( color_scale_min=-40, color_scale_max=40, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -2052,6 +2080,7 @@ def generate_configurations( color_scale_min=-40, color_scale_max=40, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -2142,6 +2171,7 @@ def generate_configurations( color_scale_min=-40, color_scale_max=40, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -2229,6 +2259,7 @@ def generate_configurations( color_scale_min=-40, color_scale_max=40, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -2319,6 +2350,7 @@ def generate_configurations( color_scale_min=-40, color_scale_max=40, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/r95ptot.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/r95ptot.py index 4a0a43ef..0d62189f 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/r95ptot.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/r95ptot.py @@ -18,6 +18,7 @@ def generate_configurations( conf_param_values, + climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( @@ -35,6 +36,7 @@ def generate_configurations( color_scale_min=-160, color_scale_max=160, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["r95ptot-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -122,6 +124,7 @@ def generate_configurations( color_scale_min=-160, color_scale_max=160, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["r95ptot-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -212,6 +215,7 @@ def generate_configurations( color_scale_min=-160, color_scale_max=160, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["r95ptot-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -302,6 +306,7 @@ def generate_configurations( color_scale_min=-160, color_scale_max=160, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["r95ptot-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -389,6 +394,7 @@ def generate_configurations( color_scale_min=-160, color_scale_max=160, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["r95ptot-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -479,6 +485,7 @@ def generate_configurations( color_scale_min=-160, color_scale_max=160, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["r95ptot-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/snwdays.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/snwdays.py index 1ee4aeb3..154d77e6 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/snwdays.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/snwdays.py @@ -18,6 +18,7 @@ def generate_configurations( conf_param_values, + climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( @@ -35,6 +36,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=100, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -98,6 +100,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=100, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -164,6 +167,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=100, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -230,6 +234,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=100, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -293,6 +298,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=100, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -359,6 +365,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=100, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -425,6 +432,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=100, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -493,6 +501,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=100, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -563,6 +572,7 @@ def generate_configurations( color_scale_min=-50, color_scale_max=0, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["snwdays-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -636,6 +646,7 @@ def generate_configurations( color_scale_min=-50, color_scale_max=0, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["snwdays-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -712,6 +723,7 @@ def generate_configurations( color_scale_min=-50, color_scale_max=0, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["snwdays-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -788,6 +800,7 @@ def generate_configurations( color_scale_min=-50, color_scale_max=0, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["snwdays-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -861,6 +874,7 @@ def generate_configurations( color_scale_min=-50, color_scale_max=0, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["snwdays-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -937,6 +951,7 @@ def generate_configurations( color_scale_min=-50, color_scale_max=0, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["snwdays-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/su30.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/su30.py index dfba91a6..91ee644f 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/su30.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/su30.py @@ -15,7 +15,9 @@ def generate_configurations( - conf_param_values, variables + conf_param_values, + variables, + climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( @@ -33,6 +35,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=100, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -100,6 +103,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=100, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -170,6 +174,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=100, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -240,6 +245,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=100, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -307,6 +313,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=100, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -377,6 +384,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=100, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -447,6 +455,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=100, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -515,6 +524,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=100, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -584,6 +594,7 @@ def generate_configurations( color_scale_min=-5, color_scale_max=75, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["su30-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -657,6 +668,7 @@ def generate_configurations( color_scale_min=-5, color_scale_max=75, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["su30-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -733,6 +745,7 @@ def generate_configurations( color_scale_min=-5, color_scale_max=75, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["su30-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -809,6 +822,7 @@ def generate_configurations( color_scale_min=-5, color_scale_max=75, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["su30-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -882,6 +896,7 @@ def generate_configurations( color_scale_min=-5, color_scale_max=75, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["su30-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -958,6 +973,7 @@ def generate_configurations( color_scale_min=-5, color_scale_max=75, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["su30-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tas.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tas.py index d3f4ae61..e4fd26f0 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tas.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tas.py @@ -15,7 +15,9 @@ def generate_configurations( - conf_param_values, variables + conf_param_values, + variables, + climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( @@ -32,6 +34,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -109,6 +112,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -189,6 +193,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -269,6 +274,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -346,6 +352,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -426,6 +433,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -506,6 +514,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=0, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -588,6 +597,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=0, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -670,6 +680,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -751,6 +762,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -817,6 +829,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -901,6 +914,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -970,6 +984,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1054,6 +1069,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1123,6 +1139,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1204,6 +1221,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1270,6 +1288,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1354,6 +1373,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1423,6 +1443,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1507,6 +1528,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1576,6 +1598,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1658,6 +1681,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1740,6 +1764,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1807,6 +1832,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1875,6 +1901,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1962,6 +1989,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -2052,6 +2080,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -2142,6 +2171,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -2229,6 +2259,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -2319,6 +2350,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -2409,6 +2441,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -2451,6 +2484,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -2498,6 +2532,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmax.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmax.py index 4de34013..a0c3f41d 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmax.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmax.py @@ -15,7 +15,9 @@ def generate_configurations( - conf_param_values, variables + conf_param_values, + variables, + climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( @@ -32,6 +34,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -113,6 +116,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -179,6 +183,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -263,6 +268,7 @@ def generate_configurations( color_scale_min=7, color_scale_max=37, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -332,6 +338,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -416,6 +423,7 @@ def generate_configurations( color_scale_min=7, color_scale_max=37, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -485,6 +493,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -566,6 +575,7 @@ def generate_configurations( color_scale_min=7, color_scale_max=37, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -632,6 +642,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -716,6 +727,7 @@ def generate_configurations( color_scale_min=7, color_scale_max=37, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -785,6 +797,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -869,6 +882,7 @@ def generate_configurations( color_scale_min=7, color_scale_max=37, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -938,6 +952,7 @@ def generate_configurations( color_scale_min=7, color_scale_max=37, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1020,6 +1035,7 @@ def generate_configurations( color_scale_min=7, color_scale_max=37, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1102,6 +1118,7 @@ def generate_configurations( color_scale_min=7, color_scale_max=37, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1169,6 +1186,7 @@ def generate_configurations( color_scale_min=7, color_scale_max=37, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1237,6 +1255,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1324,6 +1343,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1414,6 +1434,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1504,6 +1525,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1591,6 +1613,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1681,6 +1704,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmin.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmin.py index 780813e8..596d8047 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmin.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmin.py @@ -15,7 +15,9 @@ def generate_configurations( - conf_param_values, variables + conf_param_values, + variables, + climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( @@ -32,6 +34,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -113,6 +116,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -179,6 +183,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -263,6 +268,7 @@ def generate_configurations( color_scale_min=-13, color_scale_max=27, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -332,6 +338,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -416,6 +423,7 @@ def generate_configurations( color_scale_min=-13, color_scale_max=27, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -485,6 +493,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -566,6 +575,7 @@ def generate_configurations( color_scale_min=-13, color_scale_max=27, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -632,6 +642,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -716,6 +727,7 @@ def generate_configurations( color_scale_min=-13, color_scale_max=27, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -785,6 +797,7 @@ def generate_configurations( color_scale_min=-3, color_scale_max=32, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -869,6 +882,7 @@ def generate_configurations( color_scale_min=-13, color_scale_max=27, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -938,6 +952,7 @@ def generate_configurations( color_scale_min=-13, color_scale_max=27, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1020,6 +1035,7 @@ def generate_configurations( color_scale_min=-13, color_scale_max=27, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1102,6 +1118,7 @@ def generate_configurations( color_scale_min=-13, color_scale_max=27, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1169,6 +1186,7 @@ def generate_configurations( color_scale_min=-13, color_scale_max=27, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1237,6 +1255,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1324,6 +1343,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1414,6 +1434,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1504,6 +1525,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1591,6 +1613,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -1681,6 +1704,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=6, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tr.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tr.py index e1229c54..8be27cbb 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tr.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tr.py @@ -15,7 +15,9 @@ def generate_configurations( - conf_param_values, variables + conf_param_values, + variables, + climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( @@ -33,6 +35,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=120, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -100,6 +103,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=120, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -170,6 +174,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=120, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -240,6 +245,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=120, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -307,6 +313,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=120, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -377,6 +384,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=120, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -447,6 +455,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=100, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -515,6 +524,7 @@ def generate_configurations( color_scale_min=0, color_scale_max=100, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -584,6 +594,7 @@ def generate_configurations( color_scale_min=-5, color_scale_max=75, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -657,6 +668,7 @@ def generate_configurations( color_scale_min=-5, color_scale_max=75, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -733,6 +745,7 @@ def generate_configurations( color_scale_min=-5, color_scale_max=75, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -809,6 +822,7 @@ def generate_configurations( color_scale_min=-5, color_scale_max=75, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -882,6 +896,7 @@ def generate_configurations( color_scale_min=-5, color_scale_max=75, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -958,6 +973,7 @@ def generate_configurations( color_scale_min=-5, color_scale_max=75, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/cdds.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/cdds.py index 05eafba5..5d37eed6 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/cdds.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/cdds.py @@ -23,7 +23,9 @@ def generate_configurations( - conf_param_values, variables + conf_param_values, + variables, + climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: cov_confs = [ CoverageConfigurationCreate( @@ -40,6 +42,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["cdds-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -87,6 +90,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/fd.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/fd.py index 72b36661..3dd2a60a 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/fd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/fd.py @@ -22,7 +22,9 @@ def generate_configurations( - conf_param_values, variables + conf_param_values, + variables, + climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( @@ -40,6 +42,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["fd-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -88,6 +91,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/hdds.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/hdds.py index 9b855590..d2b72bdd 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/hdds.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/hdds.py @@ -23,7 +23,9 @@ def generate_configurations( - conf_param_values, variables + conf_param_values, + variables, + climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: cov_confs = [ CoverageConfigurationCreate( @@ -40,6 +42,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["hdds-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -87,6 +90,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/prcptot.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/prcptot.py index a5fcde79..c3609945 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/prcptot.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/prcptot.py @@ -21,7 +21,9 @@ def generate_configurations( - conf_param_values, variables + conf_param_values, + variables, + climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( @@ -37,6 +39,8 @@ def generate_configurations( palette="default/seq-YlOrRd", color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, + data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -164,6 +168,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -212,6 +217,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -275,6 +281,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/su30.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/su30.py index d7ea1a43..48447051 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/su30.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/su30.py @@ -22,7 +22,9 @@ def generate_configurations( - conf_param_values, variables + conf_param_values, + variables, + climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( @@ -40,6 +42,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["su30-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -88,6 +91,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tdd.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tdd.py index ecbc6693..10290374 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tdd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tdd.py @@ -21,7 +21,9 @@ def generate_configurations( - conf_param_values, variables + conf_param_values, + variables, + climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( @@ -38,6 +40,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -165,6 +168,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -213,6 +217,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -276,6 +281,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -379,6 +385,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tnd.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tnd.py index 733d93d2..3674daa6 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tnd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tnd.py @@ -21,7 +21,9 @@ def generate_configurations( - conf_param_values, variables + conf_param_values, + variables, + climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( @@ -38,6 +40,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -165,6 +168,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -213,6 +217,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -276,6 +281,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tr.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tr.py index e0744fc0..3d062095 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tr.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tr.py @@ -21,7 +21,9 @@ def generate_configurations( - conf_param_values, variables + conf_param_values, + variables, + climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( @@ -38,6 +40,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tr-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -85,6 +88,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/txd.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/txd.py index dddc3fff..326cb6b5 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/txd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/txd.py @@ -21,7 +21,9 @@ def generate_configurations( - conf_param_values, variables + conf_param_values, + variables, + climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( @@ -38,6 +40,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -165,6 +168,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -213,6 +217,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ @@ -276,6 +281,7 @@ def generate_configurations( color_scale_min=_COLOR_SCALE_MIN, color_scale_max=_COLOR_SCALE_MAX, data_precision=_DATA_PRECISION, + climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ diff --git a/arpav_ppcv/webapp/admin/views/climaticindicators.py b/arpav_ppcv/webapp/admin/views/climaticindicators.py index 73149f5e..4fd7d116 100644 --- a/arpav_ppcv/webapp/admin/views/climaticindicators.py +++ b/arpav_ppcv/webapp/admin/views/climaticindicators.py @@ -83,7 +83,7 @@ class ClimaticIndicatorView(ModelView): def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) - self.icon = "fa-solid fa-quote-left" + self.icon = "fa-solid fa-cloud-sun-rain" async def create(self, request: Request, data: dict[str, Any]) -> Any: try: From f3c5a892fbaa815366f9c6b2adfc546696967c89 Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Silva Date: Thu, 31 Oct 2024 16:55:51 +0000 Subject: [PATCH 07/22] Added climatic indicator as the source of a coverage configuration's `measure` and `aggregation_period` This is the first step in order to make it possible to remove a cov conf's: - name - conf_param `measure` - conf_param `aggregation_type` - display name - description - palette --- README.md | 18 ++++ arpav_ppcv/database.py | 89 ++++++++++++++++--- arpav_ppcv/schemas/base.py | 7 ++ arpav_ppcv/schemas/climaticindicators.py | 8 ++ arpav_ppcv/schemas/coverages.py | 51 +++++------ arpav_ppcv/schemas/static.py | 8 +- .../translations/en/LC_MESSAGES/messages.po | 80 ++++++++++++----- .../translations/it/LC_MESSAGES/messages.po | 80 ++++++++++++----- 8 files changed, 248 insertions(+), 93 deletions(-) diff --git a/README.md b/README.md index eee7863a..946a1b93 100644 --- a/README.md +++ b/README.md @@ -133,6 +133,24 @@ this can also be modified if needed. The system recognizes the following environ ### Operations +##### Translations + +```shell +# look for new translatable strings in the codebase +docker exec -ti arpav-ppcv-webapp-1 poetry run arpav-ppcv translations extract + +# update existing catalogs with the new strings found in the previous step +docker exec -ti arpav-ppcv-webapp-1 poetry run arpav-ppcv translations update +``` + +Now use your favorite editor to translate the strings. + +Finally, compile the translations files: + +```shell +docker exec -ti arpav-ppcv-webapp-1 poetry run arpav-ppcv translations compile +``` + ##### Accessing the CLI The CLI is named `arpav-ppcv`. When running under docker compose, it can be used with the following incantation: diff --git a/arpav_ppcv/database.py b/arpav_ppcv/database.py index 90aeb0e6..c363c7c3 100644 --- a/arpav_ppcv/database.py +++ b/arpav_ppcv/database.py @@ -2,7 +2,6 @@ import itertools import logging -import re import uuid from typing import ( Optional, @@ -953,11 +952,29 @@ def list_coverage_configurations( configuration_parameter_values_filter: Optional[ list[coverages.ConfigurationParameterValue] ] = None, + climatic_indicator_filter: Optional[climaticindicators.ClimaticIndicator] = None, ) -> tuple[Sequence[coverages.CoverageConfiguration], Optional[int]]: """List existing coverage configurations.""" statement = sqlmodel.select(coverages.CoverageConfiguration).order_by( coverages.CoverageConfiguration.name ) + if climatic_indicator_filter is None: + ( + configuration_parameter_values_filter, + climatic_indicator_filter, + ) = _replace_conf_param_filters_with_climatic_indicator( + session, configuration_parameter_values_filter or [] + ) + if climatic_indicator_filter is not None: + statement = statement.where( + coverages.CoverageConfiguration.climatic_indicator_id + == climatic_indicator_filter.id + ) + else: + statement = statement.where( + coverages.CoverageConfiguration.climatic_indicator_id + == climatic_indicator_filter.id + ) if name_filter is not None: statement = _add_substring_filter( statement, name_filter, coverages.CoverageConfiguration.name @@ -1037,6 +1054,7 @@ def collect_all_coverage_configurations( configuration_parameter_values_filter: Optional[ list[coverages.ConfigurationParameterValue] ] = None, + climatic_indicator_filter: Optional[climaticindicators.ClimaticIndicator] = None, ) -> Sequence[coverages.CoverageConfiguration]: _, num_total = list_coverage_configurations( session, @@ -1046,6 +1064,7 @@ def collect_all_coverage_configurations( english_display_name_filter=english_display_name_filter, italian_display_name_filter=italian_display_name_filter, configuration_parameter_values_filter=configuration_parameter_values_filter, + climatic_indicator_filter=climatic_indicator_filter, ) result, _ = list_coverage_configurations( session, @@ -1055,6 +1074,7 @@ def collect_all_coverage_configurations( english_display_name_filter=english_display_name_filter, italian_display_name_filter=italian_display_name_filter, configuration_parameter_values_filter=configuration_parameter_values_filter, + climatic_indicator_filter=climatic_indicator_filter, ) return result @@ -1231,20 +1251,18 @@ def generate_coverage_identifiers( ] = None, ) -> list[str]: """Build list of legal coverage identifiers for a coverage configuration.""" - params_to_filter = {} for cpv in configuration_parameter_values_filter or []: values = params_to_filter.setdefault(cpv.configuration_parameter.name, []) values.append(cpv.name) - pattern_parts = re.findall( - r"\{(\w+)\}", coverage_configuration.coverage_id_pattern.partition("-")[-1] - ) + conf_param_id_parts = coverage_configuration.coverage_id_pattern.split("-")[1:] values_to_combine = [] - for part in pattern_parts: + for part in conf_param_id_parts: + param_name = part.translate(str.maketrans("", "", "{}")) part_values = [] for possible_value in coverage_configuration.possible_values: this_param_name = possible_value.configuration_parameter_value.configuration_parameter.name - if this_param_name == part: + if this_param_name == param_name: # check if this param's value is to be filtered out or not this_value = possible_value.configuration_parameter_value.name if this_param_name in params_to_filter: @@ -1253,14 +1271,12 @@ def generate_coverage_identifiers( else: part_values.append(this_value) values_to_combine.append(part_values) - # account for the possibility that there is an error in the - # coverage_id_pattern, where some of the parts are not actually configured + allowed_identifiers = [] - for index, container in enumerate(values_to_combine): - if len(container) == 0: - values_to_combine[index] = [pattern_parts[index]] for combination in itertools.product(*values_to_combine): - dataset_id = "-".join((coverage_configuration.name, *combination)) + dataset_id = "-".join( + (coverage_configuration.climatic_indicator.identifier, *combination) + ) allowed_identifiers.append(dataset_id) return allowed_identifiers @@ -1425,8 +1441,11 @@ def list_coverage_identifiers( configuration_parameter_values_filter: Optional[ list[coverages.ConfigurationParameterValue] ] = None, + climatic_indicator_filter: Optional[climaticindicators.ClimaticIndicator] = None, ) -> tuple[list[coverages.CoverageInternal], Optional[int]]: - all_covs = collect_all_coverages(session, configuration_parameter_values_filter) + all_covs = collect_all_coverages( + session, configuration_parameter_values_filter, climatic_indicator_filter + ) if name_filter is not None: for fragment in name_filter: all_covs = [c for c in all_covs if fragment.lower() in c.identifier.lower()] @@ -1441,10 +1460,12 @@ def collect_all_coverages( configuration_parameter_values_filter: Optional[ list[coverages.ConfigurationParameterValue] ] = None, + climatic_indicator_filter: Optional[climaticindicators.ClimaticIndicator] = None, ) -> list[coverages.CoverageInternal]: cov_confs = collect_all_coverage_configurations( session, configuration_parameter_values_filter=configuration_parameter_values_filter, + climatic_indicator_filter=climatic_indicator_filter, ) cov_ids = [] for cov_conf in cov_confs: @@ -1675,3 +1696,43 @@ def _slugify_internal_value(value: str) -> str: """Replace characters in input string in to make it usable as a name.""" to_translate = "-\, '" return value.translate(value.maketrans(to_translate, "_" * len(to_translate))) + + +def _replace_conf_param_filters_with_climatic_indicator( + session: sqlmodel.Session, + possible_values: list[coverages.ConfigurationParameterValue], +) -> tuple[ + list[coverages.ConfigurationParameterValue], + Optional[climaticindicators.ClimaticIndicator], +]: + """Tries to extract a `ClimaticIndicator` instance from the input list. + + This function is intended only for compatibility purposes. + """ + raw_name = None + raw_measure_type = None + raw_aggregation_period = None + new_possible_values = [] + for possible in possible_values: + param_name = possible.configuration_parameter.name + logger.debug(f"{param_name=}") + if param_name == base.CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value: + raw_name = possible.name + elif param_name == base.CoreConfParamName.MEASURE.value: + raw_measure_type = possible.name + elif param_name == base.CoreConfParamName.AGGREGATION_PERIOD.value: + raw_aggregation_period = {"30yr": "thirty_year"}.get( + possible.name, possible.name + ) + else: + new_possible_values.append(possible) + logger.debug(f"{raw_name=} - {raw_measure_type=} - {raw_aggregation_period=}") + result = (possible_values, None) + if all((raw_name, raw_measure_type, raw_aggregation_period)): + climatic_indicator = get_climatic_indicator_by_identifier( + session, f"{raw_name}-{raw_measure_type}-{raw_aggregation_period}" + ) + if climatic_indicator is not None: + result = (new_possible_values, climatic_indicator) + logger.debug(f"{result=}") + return result diff --git a/arpav_ppcv/schemas/base.py b/arpav_ppcv/schemas/base.py index 5c186e15..512fc000 100644 --- a/arpav_ppcv/schemas/base.py +++ b/arpav_ppcv/schemas/base.py @@ -27,6 +27,13 @@ class CoreConfParamName(enum.Enum): YEAR_PERIOD = "year_period" +LEGACY_PARAM_NAMES = ( + CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, + CoreConfParamName.AGGREGATION_PERIOD.value, + CoreConfParamName.MEASURE.value, +) + + class Season(enum.Enum): WINTER = "WINTER" SPRING = "SPRING" diff --git a/arpav_ppcv/schemas/climaticindicators.py b/arpav_ppcv/schemas/climaticindicators.py index e8fa5668..b041703e 100644 --- a/arpav_ppcv/schemas/climaticindicators.py +++ b/arpav_ppcv/schemas/climaticindicators.py @@ -52,6 +52,14 @@ def identifier(self) -> str: aggregation_period=self.aggregation_period.value.lower(), ) + def render_templated_value(self, template: str) -> str: + rendered = template + rendered = rendered.replace("{measure_type}", self.measure_type.value) + rendered = rendered.replace( + "{aggregation_period}", self.aggregation_period.value + ) + return rendered + class ClimaticIndicatorCreate(sqlmodel.SQLModel): name: Annotated[ diff --git a/arpav_ppcv/schemas/coverages.py b/arpav_ppcv/schemas/coverages.py index 3783b1de..cadab34e 100644 --- a/arpav_ppcv/schemas/coverages.py +++ b/arpav_ppcv/schemas/coverages.py @@ -13,6 +13,7 @@ import pydantic import sqlalchemy import sqlmodel +from arpav_ppcv.schemas.base import LEGACY_PARAM_NAMES from .. import exceptions from . import base @@ -287,10 +288,10 @@ class CoverageConfiguration(sqlmodel.SQLModel, table=True): def coverage_id_pattern(self) -> str: other_parts = set() for pv in self.possible_values: - other_parts.add( - pv.configuration_parameter_value.configuration_parameter.name - ) - all_parts = ["name"] + sorted(list(other_parts)) + param_name = pv.configuration_parameter_value.configuration_parameter.name + if param_name not in LEGACY_PARAM_NAMES: + other_parts.add(param_name) + all_parts = ["climatic_indicator"] + sorted(list(other_parts)) return "-".join(f"{{{part}}}" for part in all_parts) @pydantic.computed_field() @@ -332,7 +333,7 @@ def _render_templated_value(self, coverage_identifier: str, template: str) -> st except IndexError as err: logger.exception("Could not retrieve used values") raise exceptions.InvalidCoverageIdentifierException() from err - rendered = template + rendered = self.climatic_indicator.render_templated_value(template) for used_value in used_values: param_name = ( used_value.configuration_parameter_value.configuration_parameter.name @@ -346,21 +347,16 @@ def _render_templated_value(self, coverage_identifier: str, template: str) -> st def build_coverage_identifier( self, parameters: list[ConfigurationParameterValue] ) -> str: - id_parts = [self.name] - for match_obj in re.finditer(r"(\{\w+\})", self.coverage_id_pattern): - param_name = match_obj.group(1)[1:-1] - if param_name != "name": - for conf_param_value in parameters: - conf_param = conf_param_value.configuration_parameter - if conf_param.name == param_name: - id_parts.append(conf_param_value.name) - break - else: - raise ValueError( - f"Could not find suitable value for {param_name!r}" - ) + id_parts = [self.climatic_indicator.identifier] + for part in self.coverage_id_pattern.split("-")[1:]: + param_name = part.translate(str.maketrans("", "", "{}")) + for conf_param_value in parameters: + conf_param = conf_param_value.configuration_parameter + if conf_param.name == param_name: + id_parts.append(conf_param_value.name) + break else: - continue + raise ValueError(f"Could not find suitable value for {param_name!r}") return "-".join(id_parts) def retrieve_used_values( @@ -385,15 +381,16 @@ def retrieve_used_values( def retrieve_configuration_parameters( self, coverage_identifier: str ) -> dict[str, str]: - pattern_parts = re.finditer( - r"\{(\w+)\}", self.coverage_id_pattern.partition("-")[-1] - ) - id_parts = coverage_identifier.split("-")[1:] + conf_param_name_parts = self.coverage_id_pattern.split("-")[1:] + + # first three are the climatic_indicator name parts + conf_param_values = coverage_identifier.split("-")[3:] + result = {} - for index, pattern_match_obj in enumerate(pattern_parts): - configuration_parameter_name = pattern_match_obj.group(1) - id_part = id_parts[index] - result[configuration_parameter_name] = id_part + for index, param_part in enumerate(conf_param_name_parts): + param_name = param_part.translate(str.maketrans("", "", "{}")) + result[param_name] = conf_param_values[index] + return result def get_seasonal_aggregation_query_filter( diff --git a/arpav_ppcv/schemas/static.py b/arpav_ppcv/schemas/static.py index 8c118142..92035c83 100644 --- a/arpav_ppcv/schemas/static.py +++ b/arpav_ppcv/schemas/static.py @@ -24,8 +24,8 @@ def get_description(self, locale: babel.Locale) -> str: translations = get_translations(locale) _ = translations.gettext return { - self.ABSOLUTE.name: _("absolute"), - self.ANOMALY.name: _("anomaly"), + self.ABSOLUTE.name: _("absolute description"), + self.ANOMALY.name: _("anomaly description"), }[self.name] or self.name def get_sort_order(self) -> int: @@ -51,8 +51,8 @@ def get_description(self, locale: babel.Locale) -> str: translations = get_translations(locale) _ = translations.gettext return { - self.ANNUAL.name: _("annual"), - self.THIRTY_YEAR.name: _("30yr"), + self.ANNUAL.name: _("annual description"), + self.THIRTY_YEAR.name: _("30yr description"), }[self.name] or self.name def get_sort_order(self) -> int: diff --git a/arpav_ppcv/translations/en/LC_MESSAGES/messages.po b/arpav_ppcv/translations/en/LC_MESSAGES/messages.po index 0746c6ad..ec72a8a2 100644 --- a/arpav_ppcv/translations/en/LC_MESSAGES/messages.po +++ b/arpav_ppcv/translations/en/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-10-04 16:08+0000\n" +"POT-Creation-Date: 2024-10-31 16:36+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -19,94 +19,126 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.15.0\n" -#: schemas/base.py:27 +#: schemas/base.py:47 msgid "winter" msgstr "Winter" -#: schemas/base.py:28 +#: schemas/base.py:48 msgid "spring" msgstr "Spring" -#: schemas/base.py:29 +#: schemas/base.py:49 msgid "summer" msgstr "Summer" -#: schemas/base.py:30 +#: schemas/base.py:50 msgid "autumn" msgstr "Autumn" -#: schemas/base.py:42 schemas/base.py:75 +#: schemas/base.py:62 schemas/base.py:95 msgid "no processing" msgstr "no processing" -#: schemas/base.py:43 +#: schemas/base.py:63 msgid "centered 5-year moving average" msgstr "Centered 5-year moving average" -#: schemas/base.py:60 +#: schemas/base.py:80 msgid "monthly" msgstr "monthly" -#: schemas/base.py:61 +#: schemas/base.py:81 msgid "seasonal" msgstr "seasonal" -#: schemas/base.py:62 +#: schemas/base.py:82 msgid "yearly" msgstr "yearly" -#: schemas/base.py:76 +#: schemas/base.py:96 msgid "LOESS" msgstr "LOESS" -#: schemas/base.py:77 +#: schemas/base.py:97 msgid "centered 11-year moving average" msgstr "Centered 11-year moving average" -#: schemas/base.py:91 schemas/base.py:110 +#: schemas/base.py:111 schemas/base.py:130 msgid "series name" msgstr "Series name" -#: schemas/base.py:92 schemas/base.py:111 +#: schemas/base.py:112 schemas/base.py:131 msgid "processing method" msgstr "Processing method" -#: schemas/base.py:93 +#: schemas/base.py:113 msgid "coverage identifier" msgstr "Coverage identifier" -#: schemas/base.py:94 +#: schemas/base.py:114 msgid "coverage configuration" msgstr "Coverage configuration" -#: schemas/base.py:112 +#: schemas/base.py:132 msgid "variable" msgstr "Variable" -#: schemas/base.py:113 +#: schemas/base.py:133 msgid "station" msgstr "Station" -#: schemas/base.py:114 +#: schemas/base.py:134 msgid "series elaboration" msgstr "Series elaboration" -#: schemas/base.py:115 +#: schemas/base.py:135 msgid "derived series" msgstr "Derived series" -#: schemas/base.py:127 +#: schemas/base.py:147 msgid "original" msgstr "Original" -#: schemas/base.py:128 +#: schemas/base.py:148 msgid "derived" msgstr "Derived" -#: schemas/base.py:140 +#: schemas/base.py:160 msgid "decade series" msgstr "Decade series" -#: schemas/base.py:141 +#: schemas/base.py:161 msgid "Mann-Kendall series" msgstr "Mann-Kendall series" + +#: schemas/static.py:19 +msgid "absolute" +msgstr "Absolute value" + +#: schemas/static.py:20 +msgid "anomaly" +msgstr "Anomaly" + +#: schemas/static.py:27 +msgid "absolute description" +msgstr "Actual value in the selected period" + +#: schemas/static.py:28 +msgid "anomaly description" +msgstr "Change in the future with respect to the reference period" + +#: schemas/static.py:46 +msgid "annual" +msgstr "Annual" + +#: schemas/static.py:47 +msgid "30yr" +msgstr "30-year" + +#: schemas/static.py:54 +msgid "annual description" +msgstr "Average over the selected year" + +#: schemas/static.py:55 +msgid "30yr description" +msgstr "Average over the selected 30-year period" diff --git a/arpav_ppcv/translations/it/LC_MESSAGES/messages.po b/arpav_ppcv/translations/it/LC_MESSAGES/messages.po index b3996134..95036535 100644 --- a/arpav_ppcv/translations/it/LC_MESSAGES/messages.po +++ b/arpav_ppcv/translations/it/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-10-04 16:08+0000\n" +"POT-Creation-Date: 2024-10-31 16:36+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: it\n" @@ -19,94 +19,126 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.15.0\n" -#: schemas/base.py:27 +#: schemas/base.py:47 msgid "winter" msgstr "Inverno" -#: schemas/base.py:28 +#: schemas/base.py:48 msgid "spring" msgstr "Primavera" -#: schemas/base.py:29 +#: schemas/base.py:49 msgid "summer" msgstr "Estate" -#: schemas/base.py:30 +#: schemas/base.py:50 msgid "autumn" msgstr "Autunno" -#: schemas/base.py:42 schemas/base.py:75 +#: schemas/base.py:62 schemas/base.py:95 msgid "no processing" msgstr "nessuna elaborazione" -#: schemas/base.py:43 +#: schemas/base.py:63 msgid "centered 5-year moving average" msgstr "media mobile centrata a 5 anni" -#: schemas/base.py:60 +#: schemas/base.py:80 msgid "monthly" msgstr "Mensile" -#: schemas/base.py:61 +#: schemas/base.py:81 msgid "seasonal" msgstr "Di stagione" -#: schemas/base.py:62 +#: schemas/base.py:82 msgid "yearly" msgstr "Annuale" -#: schemas/base.py:76 +#: schemas/base.py:96 msgid "LOESS" msgstr "LOESS" -#: schemas/base.py:77 +#: schemas/base.py:97 msgid "centered 11-year moving average" msgstr "media mobile centrata a 11 anni" -#: schemas/base.py:91 schemas/base.py:110 +#: schemas/base.py:111 schemas/base.py:130 msgid "series name" msgstr "Nome della serie" -#: schemas/base.py:92 schemas/base.py:111 +#: schemas/base.py:112 schemas/base.py:131 msgid "processing method" msgstr "Metodo di elaborazione" -#: schemas/base.py:93 +#: schemas/base.py:113 msgid "coverage identifier" msgstr "Identificatore di copertura" -#: schemas/base.py:94 +#: schemas/base.py:114 msgid "coverage configuration" msgstr "Configurazione della copertura" -#: schemas/base.py:112 +#: schemas/base.py:132 msgid "variable" msgstr "Variabile" -#: schemas/base.py:113 +#: schemas/base.py:133 msgid "station" msgstr "Stazione" -#: schemas/base.py:114 +#: schemas/base.py:134 msgid "series elaboration" msgstr "elaborazione in serie" -#: schemas/base.py:115 +#: schemas/base.py:135 msgid "derived series" msgstr "Serie derivate" -#: schemas/base.py:127 +#: schemas/base.py:147 msgid "original" msgstr "Originale" -#: schemas/base.py:128 +#: schemas/base.py:148 msgid "derived" msgstr "Derivata" -#: schemas/base.py:140 +#: schemas/base.py:160 msgid "decade series" msgstr "serie decennale" -#: schemas/base.py:141 +#: schemas/base.py:161 msgid "Mann-Kendall series" msgstr "serie Mann-Kendall" + +#: schemas/static.py:19 +msgid "absolute" +msgstr "Valore assoluto" + +#: schemas/static.py:20 +msgid "anomaly" +msgstr "Anomalia" + +#: schemas/static.py:27 +msgid "absolute description" +msgstr "Valore effettivo nel periodo selezionato" + +#: schemas/static.py:28 +msgid "anomaly description" +msgstr "Variazione nel futuro rispetto al periodo di riferimento" + +#: schemas/static.py:46 +msgid "annual" +msgstr "Annuale" + +#: schemas/static.py:47 +msgid "30yr" +msgstr "Trentennale" + +#: schemas/static.py:54 +msgid "annual description" +msgstr "Media sull'anno selezionato" + +#: schemas/static.py:55 +msgid "30yr description" +msgstr "Media sul trentennio selezionato" From 90f44c78cb43c958101342e77f8004dd30efe34f Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Silva Date: Thu, 31 Oct 2024 16:56:20 +0000 Subject: [PATCH 08/22] Refactoring forecast coverage menu generation (wip) --- arpav_ppcv/operations.py | 43 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/arpav_ppcv/operations.py b/arpav_ppcv/operations.py index c7dfd360..ae4c85bb 100644 --- a/arpav_ppcv/operations.py +++ b/arpav_ppcv/operations.py @@ -23,7 +23,7 @@ import shapely.io import sqlmodel from anyio.from_thread import start_blocking_portal -from arpav_ppcv.schemas.base import CoreConfParamName +from arpav_ppcv.schemas.base import CoreConfParamName, LEGACY_PARAM_NAMES from dateutil.parser import isoparse from geoalchemy2.shape import to_shape from pandas.core.indexes.datetimes import DatetimeIndex @@ -1022,6 +1022,47 @@ def get_historical_variable_parameters( return result +def new_get_forecast_variable_parameters( + session: sqlmodel.Session, +) -> dict[ + str, + dict[ + str, + dict[ + str, + coverages.ConfigurationParameter + | list[coverages.ConfigurationParameterValue], + ], + ], +]: + result = {} + params_to_ignore = [ + base.CoreConfParamName.UNCERTAINTY_TYPE.value, + base.CoreConfParamName.ARCHIVE.value, + ] + list(LEGACY_PARAM_NAMES) + for climatic_indicator in database.collect_all_climatic_indicators(session): + clim_ind_entry = result.setdefault(climatic_indicator.identifier, {}) + for cov_conf in climatic_indicator.related_coverage_configurations: + if cov_conf.archive == "forecast": + for pv in cov_conf.possible_values: + param_name = ( + pv.configuration_parameter_value.configuration_parameter.name + ) + if param_name not in params_to_ignore: + param_entry = clim_ind_entry.setdefault(param_name, {}) + param_entry[ + "configuration_parameter" + ] = pv.configuration_parameter_value.configuration_parameter + values = param_entry.setdefault("values", []) + existing_value_names = [cpv.name for cpv in values] + if ( + pv.configuration_parameter_value.name + not in existing_value_names + ): + values.append(pv.configuration_parameter_value) + return result + + def get_forecast_variable_parameters( session: sqlmodel.Session, ) -> dict[str, coverages.ForecastVariableMenuTree]: From d2ea35cf638906da50f6139fbbe66beb32ea24b4 Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Silva Date: Mon, 4 Nov 2024 19:45:13 +0000 Subject: [PATCH 09/22] Refactored forecast coverage menu generation --- arpav_ppcv/database.py | 2 + arpav_ppcv/operations.py | 122 +--------------- arpav_ppcv/schemas/climaticindicators.py | 3 + arpav_ppcv/schemas/coverages.py | 7 - arpav_ppcv/webapp/api_v2/routers/coverages.py | 23 ++- arpav_ppcv/webapp/api_v2/schemas/coverages.py | 133 +++++++++++------- 6 files changed, 99 insertions(+), 191 deletions(-) diff --git a/arpav_ppcv/database.py b/arpav_ppcv/database.py index c363c7c3..3d72b129 100644 --- a/arpav_ppcv/database.py +++ b/arpav_ppcv/database.py @@ -1582,6 +1582,8 @@ def list_climatic_indicators( statement = sqlmodel.select(climaticindicators.ClimaticIndicator).order_by( climaticindicators.ClimaticIndicator.sort_order, climaticindicators.ClimaticIndicator.name, + climaticindicators.ClimaticIndicator.aggregation_period, + climaticindicators.ClimaticIndicator.measure_type, ) if name_filter is not None: statement = _add_substring_filter( diff --git a/arpav_ppcv/operations.py b/arpav_ppcv/operations.py index ae4c85bb..dd3c3e4c 100644 --- a/arpav_ppcv/operations.py +++ b/arpav_ppcv/operations.py @@ -36,6 +36,7 @@ ) from .schemas import ( base, + climaticindicators, coverages, observations, ) @@ -1022,10 +1023,10 @@ def get_historical_variable_parameters( return result -def new_get_forecast_variable_parameters( +def get_forecast_variable_parameters( session: sqlmodel.Session, ) -> dict[ - str, + climaticindicators.ClimaticIndicator, dict[ str, dict[ @@ -1041,7 +1042,8 @@ def new_get_forecast_variable_parameters( base.CoreConfParamName.ARCHIVE.value, ] + list(LEGACY_PARAM_NAMES) for climatic_indicator in database.collect_all_climatic_indicators(session): - clim_ind_entry = result.setdefault(climatic_indicator.identifier, {}) + # clim_ind_entry = result.setdefault(climatic_indicator, {}) + clim_ind_entry = {} for cov_conf in climatic_indicator.related_coverage_configurations: if cov_conf.archive == "forecast": for pv in cov_conf.possible_values: @@ -1060,118 +1062,8 @@ def new_get_forecast_variable_parameters( not in existing_value_names ): values.append(pv.configuration_parameter_value) - return result - - -def get_forecast_variable_parameters( - session: sqlmodel.Session, -) -> dict[str, coverages.ForecastVariableMenuTree]: - result = {} - forecast_filter = database.get_configuration_parameter_value_by_names( - session, base.CoreConfParamName.ARCHIVE.value, "forecast" - ) - relevant_cov_confs = database.collect_all_coverage_configurations( - session, configuration_parameter_values_filter=[forecast_filter] - ) - for cov_conf in relevant_cov_confs: - variable_pvs = [ - pv - for pv in cov_conf.possible_values - if pv.configuration_parameter_value.configuration_parameter.name - == base.CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value - ] - if (num_pvs := len(variable_pvs)) >= 1: - variable_pv = variable_pvs[0] - if num_pvs > 1: - logger.info( - f"coverage configuration {cov_conf.name!r} defines " - f"{len(variable_pvs)} `climatological_variable`s, keeping only the " - f"first one..." - ) - else: - logger.info( - f"coverage configuration {cov_conf.name!r} does not have a " - f"`climatological_variable`, skipping..." - ) - continue - - aggreg_period_pvs = [ - pv - for pv in cov_conf.possible_values - if pv.configuration_parameter_value.configuration_parameter.name - == base.CoreConfParamName.AGGREGATION_PERIOD.value - ] - if (num_aggreg_periods := len(aggreg_period_pvs)) >= 1: - aggreg_period_pv = aggreg_period_pvs[0] - if num_aggreg_periods > 1: - logger.info( - f"coverage configuration {cov_conf.name!r} defines " - f"{len(variable_pvs)} `aggregation_period`s, keeping only the " - f"first one..." - ) - else: - logger.info( - f"coverage configuration {cov_conf.name!r} does not have a " - f"`aggregation_period`, skipping..." - ) - continue - - measure_pvs = [ - pv - for pv in cov_conf.possible_values - if pv.configuration_parameter_value.configuration_parameter.name - == base.CoreConfParamName.MEASURE.value - ] - if (num_measures := len(measure_pvs)) >= 1: - measure_pv = measure_pvs[0] - if num_measures > 1: - logger.info( - f"coverage configuration {cov_conf.name!r} defines " - f"{len(variable_pvs)} `measures`s, keeping only the " - f"first one..." - ) - else: - logger.info( - f"coverage configuration {cov_conf.name!r} does not have a " - f"`measure`, skipping..." - ) - continue - - result_key = "-".join( - ( - variable_pv.configuration_parameter_value.name, - aggreg_period_pv.configuration_parameter_value.name, - measure_pv.configuration_parameter_value.name, - ) - ) - aggregated_variable = result.setdefault(result_key, {}) - aggregated_variable[ - base.CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value - ] = variable_pv.configuration_parameter_value - aggregated_variable[ - base.CoreConfParamName.AGGREGATION_PERIOD.value - ] = aggreg_period_pv.configuration_parameter_value - aggregated_variable[ - base.CoreConfParamName.MEASURE.value - ] = measure_pv.configuration_parameter_value - combinations = aggregated_variable.setdefault("combinations", {}) - params_to_ignore = ( - base.CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, - base.CoreConfParamName.AGGREGATION_PERIOD.value, - base.CoreConfParamName.MEASURE.value, - base.CoreConfParamName.UNCERTAINTY_TYPE.value, - ) - for pv in cov_conf.possible_values: - param_name = pv.configuration_parameter_value.configuration_parameter.name - if param_name not in params_to_ignore: - param_entry = combinations.setdefault(param_name, {}) - param_entry[ - "configuration_parameter" - ] = pv.configuration_parameter_value.configuration_parameter - values = param_entry.setdefault("values", []) - existing_value_names = [cpv.name for cpv in values] - if pv.configuration_parameter_value.name not in existing_value_names: - values.append(pv.configuration_parameter_value) + if len(clim_ind_entry) > 0: + result[climatic_indicator] = clim_ind_entry return result diff --git a/arpav_ppcv/schemas/climaticindicators.py b/arpav_ppcv/schemas/climaticindicators.py index b041703e..4a521163 100644 --- a/arpav_ppcv/schemas/climaticindicators.py +++ b/arpav_ppcv/schemas/climaticindicators.py @@ -60,6 +60,9 @@ def render_templated_value(self, template: str) -> str: ) return rendered + def __hash__(self): + return hash(self.identifier) + class ClimaticIndicatorCreate(sqlmodel.SQLModel): name: Annotated[ diff --git a/arpav_ppcv/schemas/coverages.py b/arpav_ppcv/schemas/coverages.py index cadab34e..e487e1b9 100644 --- a/arpav_ppcv/schemas/coverages.py +++ b/arpav_ppcv/schemas/coverages.py @@ -610,13 +610,6 @@ class VariableMenuTreeCombination(TypedDict): values: list[ConfigurationParameterValue] -class ForecastVariableMenuTree(TypedDict): - climatological_variable: ConfigurationParameterValue - aggregation_period: ConfigurationParameterValue - measure: ConfigurationParameterValue - combinations: dict[str, VariableMenuTreeCombination] - - class HistoricalVariableMenuTree(TypedDict): historical_variable: ConfigurationParameterValue aggregation_period: ConfigurationParameterValue diff --git a/arpav_ppcv/webapp/api_v2/routers/coverages.py b/arpav_ppcv/webapp/api_v2/routers/coverages.py index 673e71b2..8dafc409 100644 --- a/arpav_ppcv/webapp/api_v2/routers/coverages.py +++ b/arpav_ppcv/webapp/api_v2/routers/coverages.py @@ -671,22 +671,15 @@ def get_forecast_variable_combinations( ): variable_combinations = operations.get_forecast_variable_parameters(db_session) var_combinations = [] - for var_menu in variable_combinations.values(): - variable_sort_order = ( - var_menu[CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value].sort_order or 0 - ) - aggregation_period_sort_order = ( - var_menu[CoreConfParamName.AGGREGATION_PERIOD.value].sort_order or 0 - ) - measure_sort_order = ( - var_menu[CoreConfParamName.MEASURE.value].sort_order or 0, - ) + for climatic_indicator, param_combinations in variable_combinations.items(): var_combinations.append( ( - variable_sort_order, - aggregation_period_sort_order, - measure_sort_order, - coverage_schemas.ForecastVariableCombinations.from_items(var_menu), + climatic_indicator.sort_order, + climatic_indicator.aggregation_period.get_sort_order(), + climatic_indicator.measure_type.get_sort_order(), + coverage_schemas.ForecastVariableCombinations.from_items( + climatic_indicator, param_combinations + ), ) ) var_combinations.sort(key=itemgetter(0, 1, 2)) @@ -694,7 +687,7 @@ def get_forecast_variable_combinations( return coverage_schemas.ForecastVariableCombinationsList( combinations=var_combinations, translations=coverage_schemas.ForecastMenuTranslations.from_items( - list(variable_combinations.values()) + variable_combinations ), ) diff --git a/arpav_ppcv/webapp/api_v2/schemas/coverages.py b/arpav_ppcv/webapp/api_v2/schemas/coverages.py index c6784d0d..c3892e7e 100644 --- a/arpav_ppcv/webapp/api_v2/schemas/coverages.py +++ b/arpav_ppcv/webapp/api_v2/schemas/coverages.py @@ -11,6 +11,7 @@ ) from ....schemas import coverages as app_models from ....schemas.base import CoreConfParamName +from ....schemas.climaticindicators import ClimaticIndicator from . import base @@ -328,57 +329,73 @@ class ForecastMenuTranslations(pydantic.BaseModel): @classmethod def from_items( - cls, variable_menu_trees: typing.Sequence[app_models.ForecastVariableMenuTree] + cls, + var_combinations: dict[ + ClimaticIndicator, + dict[ + str, + dict[ + str, + app_models.ConfigurationParameter + | app_models.ConfigurationParameterValue, + ], + ], + ], ): result = {} - for variable_menu_tree in variable_menu_trees: - variable_cp = variable_menu_tree[ - CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value - ] - aggregation_period_cp = variable_menu_tree[ - CoreConfParamName.AGGREGATION_PERIOD.value - ] - measure_cp = variable_menu_tree[CoreConfParamName.MEASURE.value] + for climatic_indicator, indicator_combinations in var_combinations.items(): vars = result.setdefault("variable", {}) - vars[variable_cp.name] = ConfigurationParameterMenuTranslation( - name={ - LOCALE_EN.language: variable_cp.display_name_english, - LOCALE_IT.language: variable_cp.display_name_english, + vars[climatic_indicator.name] = { + "name": { + LOCALE_EN.language: climatic_indicator.display_name_english, + LOCALE_IT.language: climatic_indicator.display_name_italian, }, - description={ - LOCALE_EN.language: variable_cp.description_english, - LOCALE_IT.language: variable_cp.description_italian, + "description": { + LOCALE_EN.language: climatic_indicator.description_english, + LOCALE_IT.language: climatic_indicator.description_italian, }, - ) - aggreg_periods = result.setdefault( - CoreConfParamName.AGGREGATION_PERIOD.value, {} - ) - aggreg_periods[ - aggregation_period_cp.name - ] = ConfigurationParameterMenuTranslation( - name={ - LOCALE_EN.language: aggregation_period_cp.display_name_english, - LOCALE_IT.language: aggregation_period_cp.display_name_english, + } + aggreg_periods = result.setdefault("aggregation_period", {}) + aggreg_periods[climatic_indicator.aggregation_period.value.lower()] = { + "name": { + LOCALE_EN.language: climatic_indicator.aggregation_period.get_display_name( + LOCALE_EN + ), + LOCALE_IT.language: climatic_indicator.aggregation_period.get_display_name( + LOCALE_IT + ), }, - description={ - LOCALE_EN.language: aggregation_period_cp.description_english, - LOCALE_IT.language: aggregation_period_cp.description_italian, + "description": { + LOCALE_EN.language: climatic_indicator.aggregation_period.get_description( + LOCALE_EN + ), + LOCALE_IT.language: climatic_indicator.aggregation_period.get_description( + LOCALE_IT + ), }, - ) - measures = result.setdefault(CoreConfParamName.MEASURE.value, {}) - measures[measure_cp.name] = ConfigurationParameterMenuTranslation( - name={ - LOCALE_EN.language: measure_cp.display_name_english, - LOCALE_IT.language: measure_cp.display_name_english, + } + measures = result.setdefault("measure", {}) + measures[climatic_indicator.measure_type.value.lower()] = { + "name": { + LOCALE_EN.language: climatic_indicator.measure_type.get_display_name( + LOCALE_EN + ), + LOCALE_IT.language: climatic_indicator.measure_type.get_display_name( + LOCALE_IT + ), }, - description={ - LOCALE_EN.language: measure_cp.description_english, - LOCALE_IT.language: measure_cp.description_italian, + "description": { + LOCALE_EN.language: climatic_indicator.measure_type.get_description( + LOCALE_EN + ), + LOCALE_IT.language: climatic_indicator.measure_type.get_description( + LOCALE_IT + ), }, - ) + } others = result.setdefault("other_parameters", {}) - for combination_info in variable_menu_tree["combinations"].values(): - cp = combination_info["configuration_parameter"] + for param_info in indicator_combinations.values(): + cp = param_info["configuration_parameter"] param_ = others.setdefault(cp.name, {}) for cpv in cp.allowed_values: param_[cpv.name] = ConfigurationParameterMenuTranslation( @@ -471,29 +488,37 @@ class ForecastVariableCombinations(pydantic.BaseModel): other_parameters: dict[str, list[str]] @classmethod - def from_items(cls, menu_tree: app_models.ForecastVariableMenuTree): + def from_items( + cls, + climatic_indicator: ClimaticIndicator, + parameter_combinations: dict[ + str, + dict[ + str, + app_models.ConfigurationParameter + | app_models.ConfigurationParameterValue, + ], + ], + ): combinations = {} - for param_name, param_combinations in menu_tree["combinations"].items(): - combinations[param_name] = [] - for valid_value in param_combinations["values"]: - combinations[param_name].append( - (valid_value.name, valid_value.sort_order or 0) - ) + for param_name, param_info in parameter_combinations.items(): + sortable_param_values = [] + for cpv in param_info["values"]: + sortable_param_values.append((cpv.name, cpv.sort_order or 0)) + combinations[param_name] = sortable_param_values for param_name, param_combinations in combinations.items(): param_combinations.sort(key=itemgetter(1)) combinations[param_name] = [name for name, sort_order in param_combinations] - return cls( - variable=menu_tree[CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value].name, - aggregation_period=menu_tree[ - CoreConfParamName.AGGREGATION_PERIOD.value - ].name, - measure=menu_tree[CoreConfParamName.MEASURE.value].name, + variable=climatic_indicator.name, + aggregation_period=climatic_indicator.aggregation_period.value.lower(), + measure=climatic_indicator.measure_type.value.lower(), other_parameters=combinations, ) +# FIXME - this needs to be refactored class HistoricalVariableCombinations(pydantic.BaseModel): variable: str aggregation_period: str From a80609c637e9f7b083121b171f1a7462b3b2486a Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Silva Date: Tue, 5 Nov 2024 12:42:17 +0000 Subject: [PATCH 10/22] Refactored data download link generation and time series translations to not use conf params for climatological_variable, measure and aggregation_period --- arpav_ppcv/database.py | 6 +- arpav_ppcv/operations.py | 125 +++++++----------- arpav_ppcv/schemas/base.py | 7 - arpav_ppcv/schemas/climaticindicators.py | 14 ++ arpav_ppcv/schemas/coverages.py | 8 +- arpav_ppcv/schemas/static.py | 32 ++++- .../translations/en/LC_MESSAGES/messages.po | 40 ++++-- .../translations/it/LC_MESSAGES/messages.po | 40 ++++-- arpav_ppcv/webapp/api_v2/routers/coverages.py | 33 ----- arpav_ppcv/webapp/api_v2/schemas/base.py | 48 +++++++ arpav_ppcv/webapp/api_v2/schemas/coverages.py | 114 ++-------------- 11 files changed, 218 insertions(+), 249 deletions(-) diff --git a/arpav_ppcv/database.py b/arpav_ppcv/database.py index 3d72b129..af5f57ea 100644 --- a/arpav_ppcv/database.py +++ b/arpav_ppcv/database.py @@ -1718,11 +1718,11 @@ def _replace_conf_param_filters_with_climatic_indicator( for possible in possible_values: param_name = possible.configuration_parameter.name logger.debug(f"{param_name=}") - if param_name == base.CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value: + if param_name == "climatological_variable": raw_name = possible.name - elif param_name == base.CoreConfParamName.MEASURE.value: + elif param_name == "measure": raw_measure_type = possible.name - elif param_name == base.CoreConfParamName.AGGREGATION_PERIOD.value: + elif param_name == "aggregation_period": raw_aggregation_period = {"30yr": "thirty_year"}.get( possible.name, possible.name ) diff --git a/arpav_ppcv/operations.py b/arpav_ppcv/operations.py index dd3c3e4c..01225077 100644 --- a/arpav_ppcv/operations.py +++ b/arpav_ppcv/operations.py @@ -23,7 +23,7 @@ import shapely.io import sqlmodel from anyio.from_thread import start_blocking_portal -from arpav_ppcv.schemas.base import CoreConfParamName, LEGACY_PARAM_NAMES +from arpav_ppcv.schemas.base import CoreConfParamName from dateutil.parser import isoparse from geoalchemy2.shape import to_shape from pandas.core.indexes.datetimes import DatetimeIndex @@ -941,85 +941,47 @@ def _get_spatial_buffer( def get_historical_variable_parameters( session: sqlmodel.Session, -) -> dict[str, coverages.HistoricalVariableMenuTree]: +) -> dict[ + climaticindicators.ClimaticIndicator, + dict[ + str, + dict[ + str, + coverages.ConfigurationParameter + | list[coverages.ConfigurationParameterValue], + ], + ], +]: result = {} - historical_filter = database.get_configuration_parameter_value_by_names( - session, base.CoreConfParamName.ARCHIVE.value, "historical" - ) - relevant_cov_confs = database.collect_all_coverage_configurations( - session, configuration_parameter_values_filter=[historical_filter] - ) - for cov_conf in relevant_cov_confs: - variable_pvs = [ - pv - for pv in cov_conf.possible_values - if pv.configuration_parameter_value.configuration_parameter.name - == base.CoreConfParamName.HISTORICAL_VARIABLE.value - ] - if (num_pvs := len(variable_pvs)) >= 1: - variable_pv = variable_pvs[0] - if num_pvs > 1: - logger.info( - f"coverage configuration {cov_conf.name!r} defines " - f"{len(variable_pvs)} `historical_variable`s, keeping only the " - f"first one..." - ) - else: - logger.info( - f"coverage configuration {cov_conf.name!r} does not have a " - f"`historical_variable`, skipping..." - ) - continue - aggreg_period_pvs = [ - pv - for pv in cov_conf.possible_values - if pv.configuration_parameter_value.configuration_parameter.name - == base.CoreConfParamName.AGGREGATION_PERIOD.value - ] - if (num_aggreg_periods := len(aggreg_period_pvs)) >= 1: - aggreg_period_pv = aggreg_period_pvs[0] - if num_aggreg_periods > 1: - logger.info( - f"coverage configuration {cov_conf.name!r} defines " - f"{len(variable_pvs)} `aggregation_period`s, keeping only the " - f"first one..." - ) - else: - logger.info( - f"coverage configuration {cov_conf.name!r} does not have a " - f"`aggregation_period`, skipping..." - ) - continue - result_key = "-".join( - ( - variable_pv.configuration_parameter_value.name, - aggreg_period_pv.configuration_parameter_value.name, - ) - ) - aggregated_variable = result.setdefault(result_key, {}) - aggregated_variable[ - base.CoreConfParamName.HISTORICAL_VARIABLE.value - ] = variable_pv.configuration_parameter_value - aggregated_variable[ - base.CoreConfParamName.AGGREGATION_PERIOD.value - ] = aggreg_period_pv.configuration_parameter_value - combinations = aggregated_variable.setdefault("combinations", {}) - params_to_ignore = ( - base.CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, - base.CoreConfParamName.AGGREGATION_PERIOD.value, - base.CoreConfParamName.UNCERTAINTY_TYPE.value, - ) - for pv in cov_conf.possible_values: - param_name = pv.configuration_parameter_value.configuration_parameter.name - if param_name not in params_to_ignore: - param_entry = combinations.setdefault(param_name, {}) - param_entry[ - "configuration_parameter" - ] = pv.configuration_parameter_value.configuration_parameter - values = param_entry.setdefault("values", []) - existing_value_names = [cpv.name for cpv in values] - if pv.configuration_parameter_value.name not in existing_value_names: - values.append(pv.configuration_parameter_value) + params_to_ignore = [ + "climatological_variable", + "measure", + "aggregation_period", + base.CoreConfParamName.UNCERTAINTY_TYPE.value, + base.CoreConfParamName.ARCHIVE.value, + ] + for climatic_indicator in database.collect_all_climatic_indicators(session): + clim_ind_entry = {} + for cov_conf in climatic_indicator.related_coverage_configurations: + if cov_conf.archive == "historical": + for pv in cov_conf.possible_values: + param_name = ( + pv.configuration_parameter_value.configuration_parameter.name + ) + if param_name not in params_to_ignore: + param_entry = clim_ind_entry.setdefault(param_name, {}) + param_entry[ + "configuration_parameter" + ] = pv.configuration_parameter_value.configuration_parameter + values = param_entry.setdefault("values", []) + existing_value_names = [cpv.name for cpv in values] + if ( + pv.configuration_parameter_value.name + not in existing_value_names + ): + values.append(pv.configuration_parameter_value) + if len(clim_ind_entry) > 0: + result[climatic_indicator] = clim_ind_entry return result @@ -1038,9 +1000,12 @@ def get_forecast_variable_parameters( ]: result = {} params_to_ignore = [ + "climatological_variable", + "measure", + "aggregation_period", base.CoreConfParamName.UNCERTAINTY_TYPE.value, base.CoreConfParamName.ARCHIVE.value, - ] + list(LEGACY_PARAM_NAMES) + ] for climatic_indicator in database.collect_all_climatic_indicators(session): # clim_ind_entry = result.setdefault(climatic_indicator, {}) clim_ind_entry = {} diff --git a/arpav_ppcv/schemas/base.py b/arpav_ppcv/schemas/base.py index 512fc000..5c186e15 100644 --- a/arpav_ppcv/schemas/base.py +++ b/arpav_ppcv/schemas/base.py @@ -27,13 +27,6 @@ class CoreConfParamName(enum.Enum): YEAR_PERIOD = "year_period" -LEGACY_PARAM_NAMES = ( - CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, - CoreConfParamName.AGGREGATION_PERIOD.value, - CoreConfParamName.MEASURE.value, -) - - class Season(enum.Enum): WINTER = "WINTER" SPRING = "SPRING" diff --git a/arpav_ppcv/schemas/climaticindicators.py b/arpav_ppcv/schemas/climaticindicators.py index 4a521163..5f801493 100644 --- a/arpav_ppcv/schemas/climaticindicators.py +++ b/arpav_ppcv/schemas/climaticindicators.py @@ -6,10 +6,12 @@ TYPE_CHECKING, ) +import babel import pydantic import sqlmodel from . import static +from ..config import get_translations if TYPE_CHECKING: from . import coverages @@ -63,6 +65,18 @@ def render_templated_value(self, template: str) -> str: def __hash__(self): return hash(self.identifier) + @staticmethod + def get_display_name(locale: babel.Locale) -> str: + translations = get_translations(locale) + _ = translations.gettext + return _("climatic indicator") + + @staticmethod + def get_description(locale: babel.Locale) -> str: + translations = get_translations(locale) + _ = translations.gettext + return _("climatic indicator description") + class ClimaticIndicatorCreate(sqlmodel.SQLModel): name: Annotated[ diff --git a/arpav_ppcv/schemas/coverages.py b/arpav_ppcv/schemas/coverages.py index e487e1b9..5f36af9d 100644 --- a/arpav_ppcv/schemas/coverages.py +++ b/arpav_ppcv/schemas/coverages.py @@ -13,7 +13,6 @@ import pydantic import sqlalchemy import sqlmodel -from arpav_ppcv.schemas.base import LEGACY_PARAM_NAMES from .. import exceptions from . import base @@ -287,9 +286,14 @@ class CoverageConfiguration(sqlmodel.SQLModel, table=True): @property def coverage_id_pattern(self) -> str: other_parts = set() + legacy_param_names = ( + "climatological_variable", + "measure", + "aggregation_period", + ) for pv in self.possible_values: param_name = pv.configuration_parameter_value.configuration_parameter.name - if param_name not in LEGACY_PARAM_NAMES: + if param_name not in legacy_param_names: other_parts.add(param_name) all_parts = ["climatic_indicator"] + sorted(list(other_parts)) return "-".join(f"{{{part}}}" for part in all_parts) diff --git a/arpav_ppcv/schemas/static.py b/arpav_ppcv/schemas/static.py index 92035c83..9c3002fc 100644 --- a/arpav_ppcv/schemas/static.py +++ b/arpav_ppcv/schemas/static.py @@ -12,7 +12,19 @@ class MeasureType(str, enum.Enum): ABSOLUTE = "ABSOLUTE" ANOMALY = "ANOMALY" - def get_display_name(self, locale: babel.Locale) -> str: + @staticmethod + def get_param_display_name(locale: babel.Locale) -> str: + translations = get_translations(locale) + _ = translations.gettext + return _("measure type") + + @staticmethod + def get_param_description(locale: babel.Locale) -> str: + translations = get_translations(locale) + _ = translations.gettext + return _("measure type description") + + def get_value_display_name(self, locale: babel.Locale) -> str: translations = get_translations(locale) _ = translations.gettext return { @@ -20,7 +32,7 @@ def get_display_name(self, locale: babel.Locale) -> str: self.ANOMALY.name: _("anomaly"), }[self.name] or self.name - def get_description(self, locale: babel.Locale) -> str: + def get_value_description(self, locale: babel.Locale) -> str: translations = get_translations(locale) _ = translations.gettext return { @@ -39,7 +51,19 @@ class AggregationPeriod(str, enum.Enum): ANNUAL = "ANNUAL" THIRTY_YEAR = "THIRTY_YEAR" - def get_display_name(self, locale: babel.Locale) -> str: + @staticmethod + def get_param_display_name(locale: babel.Locale) -> str: + translations = get_translations(locale) + _ = translations.gettext + return _("aggregation period") + + @staticmethod + def get_param_description(locale: babel.Locale) -> str: + translations = get_translations(locale) + _ = translations.gettext + return _("aggregation period description") + + def get_value_display_name(self, locale: babel.Locale) -> str: translations = get_translations(locale) _ = translations.gettext return { @@ -47,7 +71,7 @@ def get_display_name(self, locale: babel.Locale) -> str: self.THIRTY_YEAR.name: _("30yr"), }[self.name] or self.name - def get_description(self, locale: babel.Locale) -> str: + def get_value_description(self, locale: babel.Locale) -> str: translations = get_translations(locale) _ = translations.gettext return { diff --git a/arpav_ppcv/translations/en/LC_MESSAGES/messages.po b/arpav_ppcv/translations/en/LC_MESSAGES/messages.po index ec72a8a2..4772d967 100644 --- a/arpav_ppcv/translations/en/LC_MESSAGES/messages.po +++ b/arpav_ppcv/translations/en/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-10-31 16:36+0000\n" +"POT-Creation-Date: 2024-11-05 11:51+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -111,34 +111,58 @@ msgstr "Decade series" msgid "Mann-Kendall series" msgstr "Mann-Kendall series" +#: schemas/climaticindicators.py:72 +msgid "climatic indicator" +msgstr "indicator" + +#: schemas/climaticindicators.py:78 +msgid "climatic indicator description" +msgstr "climatic indicator" + #: schemas/static.py:19 +msgid "measure type" +msgstr "Measurement type" + +#: schemas/static.py:25 +msgid "measure type description" +msgstr "Type of climatological measurement" + +#: schemas/static.py:31 msgid "absolute" msgstr "Absolute value" -#: schemas/static.py:20 +#: schemas/static.py:32 msgid "anomaly" msgstr "Anomaly" -#: schemas/static.py:27 +#: schemas/static.py:39 msgid "absolute description" msgstr "Actual value in the selected period" -#: schemas/static.py:28 +#: schemas/static.py:40 msgid "anomaly description" msgstr "Change in the future with respect to the reference period" -#: schemas/static.py:46 +#: schemas/static.py:58 +msgid "aggregation period" +msgstr "Temporal aggregation period" + +#: schemas/static.py:64 +msgid "aggregation period description" +msgstr "Aggregation period for climatological datasets" + +#: schemas/static.py:70 msgid "annual" msgstr "Annual" -#: schemas/static.py:47 +#: schemas/static.py:71 msgid "30yr" msgstr "30-year" -#: schemas/static.py:54 +#: schemas/static.py:78 msgid "annual description" msgstr "Average over the selected year" -#: schemas/static.py:55 +#: schemas/static.py:79 msgid "30yr description" msgstr "Average over the selected 30-year period" diff --git a/arpav_ppcv/translations/it/LC_MESSAGES/messages.po b/arpav_ppcv/translations/it/LC_MESSAGES/messages.po index 95036535..deb2bede 100644 --- a/arpav_ppcv/translations/it/LC_MESSAGES/messages.po +++ b/arpav_ppcv/translations/it/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-10-31 16:36+0000\n" +"POT-Creation-Date: 2024-11-05 11:51+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: it\n" @@ -111,34 +111,58 @@ msgstr "serie decennale" msgid "Mann-Kendall series" msgstr "serie Mann-Kendall" +#: schemas/climaticindicators.py:72 +msgid "climatic indicator" +msgstr "indicatore" + +#: schemas/climaticindicators.py:78 +msgid "climatic indicator description" +msgstr "indicatore climatico" + #: schemas/static.py:19 +msgid "measure type" +msgstr "Tipo di misurazione" + +#: schemas/static.py:25 +msgid "measure type description" +msgstr "Tipo di misurazione climatologica" + +#: schemas/static.py:31 msgid "absolute" msgstr "Valore assoluto" -#: schemas/static.py:20 +#: schemas/static.py:32 msgid "anomaly" msgstr "Anomalia" -#: schemas/static.py:27 +#: schemas/static.py:39 msgid "absolute description" msgstr "Valore effettivo nel periodo selezionato" -#: schemas/static.py:28 +#: schemas/static.py:40 msgid "anomaly description" msgstr "Variazione nel futuro rispetto al periodo di riferimento" -#: schemas/static.py:46 +#: schemas/static.py:58 +msgid "aggregation period" +msgstr "Periodo di aggregazione temporale" + +#: schemas/static.py:64 +msgid "aggregation period description" +msgstr "Periodo di aggregazione per i set di dati climatologici" + +#: schemas/static.py:70 msgid "annual" msgstr "Annuale" -#: schemas/static.py:47 +#: schemas/static.py:71 msgid "30yr" msgstr "Trentennale" -#: schemas/static.py:54 +#: schemas/static.py:78 msgid "annual description" msgstr "Media sull'anno selezionato" -#: schemas/static.py:55 +#: schemas/static.py:79 msgid "30yr description" msgstr "Media sul trentennio selezionato" diff --git a/arpav_ppcv/webapp/api_v2/routers/coverages.py b/arpav_ppcv/webapp/api_v2/routers/coverages.py index 8dafc409..058c551e 100644 --- a/arpav_ppcv/webapp/api_v2/routers/coverages.py +++ b/arpav_ppcv/webapp/api_v2/routers/coverages.py @@ -690,36 +690,3 @@ def get_forecast_variable_combinations( variable_combinations ), ) - - -@router.get( - "/historical-variable-combinations", - response_model=coverage_schemas.HistoricalVariableCombinationsList, -) -def get_historical_variable_combinations( - db_session: Annotated[Session, Depends(dependencies.get_db_session)], -): - variable_combinations = operations.get_historical_variable_parameters(db_session) - var_combinations = [] - for var_menu in variable_combinations.values(): - variable_sort_order = ( - var_menu[CoreConfParamName.HISTORICAL_VARIABLE.value].sort_order or 0 - ) - aggregation_period_sort_order = ( - var_menu[CoreConfParamName.AGGREGATION_PERIOD.value].sort_order or 0 - ) - var_combinations.append( - ( - variable_sort_order, - aggregation_period_sort_order, - coverage_schemas.HistoricalVariableCombinations.from_items(var_menu), - ) - ) - var_combinations.sort(key=itemgetter(0, 1)) - var_combinations = [vc[2] for vc in var_combinations] - return coverage_schemas.HistoricalVariableCombinationsList( - combinations=var_combinations, - translations=coverage_schemas.HistoricalMenuTranslations.from_items( - list(variable_combinations.values()) - ), - ) diff --git a/arpav_ppcv/webapp/api_v2/schemas/base.py b/arpav_ppcv/webapp/api_v2/schemas/base.py index 2f911e88..fd6b39ea 100644 --- a/arpav_ppcv/webapp/api_v2/schemas/base.py +++ b/arpav_ppcv/webapp/api_v2/schemas/base.py @@ -275,6 +275,52 @@ def from_coverage_series( or pv.configuration_parameter_value.name ), } + + clim_indicator = coverage.configuration.climatic_indicator + climatic_indicator_names_translations = { + "climatological_variable": { + LOCALE_EN.language: (clim_indicator.get_display_name(LOCALE_EN)), + LOCALE_IT.language: (clim_indicator.get_display_name(LOCALE_IT)), + }, + "measure": { + LOCALE_EN.language: ( + clim_indicator.measure_type.get_param_display_name(LOCALE_EN) + ), + LOCALE_IT.language: ( + clim_indicator.measure_type.get_param_display_name(LOCALE_IT) + ), + }, + "aggregation_period": { + LOCALE_EN.language: ( + clim_indicator.aggregation_period.get_param_display_name(LOCALE_EN) + ), + LOCALE_IT.language: ( + clim_indicator.aggregation_period.get_param_display_name(LOCALE_IT) + ), + }, + } + climatic_indicator_values_translations = { + "climatological_variable": { + LOCALE_EN.language: clim_indicator.display_name_english, + LOCALE_IT.language: clim_indicator.display_name_italian, + }, + "measure": { + LOCALE_EN.language: clim_indicator.measure_type.get_value_display_name( + LOCALE_EN + ), + LOCALE_IT.language: clim_indicator.measure_type.get_value_display_name( + LOCALE_IT + ), + }, + "aggregation_period": { + LOCALE_EN.language: clim_indicator.aggregation_period.get_value_display_name( + LOCALE_EN + ), + LOCALE_IT.language: clim_indicator.aggregation_period.get_value_display_name( + LOCALE_IT + ), + }, + } logger.info(f"serializing {coverage.identifier=} {smoothing_strategy=}...") return TimeSeries( name=str(series.name), @@ -340,6 +386,7 @@ def from_coverage_series( ), }, **param_names_translations, + **climatic_indicator_names_translations, }, parameter_values={ "series_name": { @@ -375,6 +422,7 @@ def from_coverage_series( ), }, **param_values_translations, + **climatic_indicator_values_translations, }, ), ) diff --git a/arpav_ppcv/webapp/api_v2/schemas/coverages.py b/arpav_ppcv/webapp/api_v2/schemas/coverages.py index c3892e7e..d03600fa 100644 --- a/arpav_ppcv/webapp/api_v2/schemas/coverages.py +++ b/arpav_ppcv/webapp/api_v2/schemas/coverages.py @@ -10,7 +10,6 @@ LOCALE_IT, ) from ....schemas import coverages as app_models -from ....schemas.base import CoreConfParamName from ....schemas.climaticindicators import ClimaticIndicator from . import base @@ -358,18 +357,18 @@ def from_items( aggreg_periods = result.setdefault("aggregation_period", {}) aggreg_periods[climatic_indicator.aggregation_period.value.lower()] = { "name": { - LOCALE_EN.language: climatic_indicator.aggregation_period.get_display_name( + LOCALE_EN.language: climatic_indicator.aggregation_period.get_value_display_name( LOCALE_EN ), - LOCALE_IT.language: climatic_indicator.aggregation_period.get_display_name( + LOCALE_IT.language: climatic_indicator.aggregation_period.get_value_display_name( LOCALE_IT ), }, "description": { - LOCALE_EN.language: climatic_indicator.aggregation_period.get_description( + LOCALE_EN.language: climatic_indicator.aggregation_period.get_value_description( LOCALE_EN ), - LOCALE_IT.language: climatic_indicator.aggregation_period.get_description( + LOCALE_IT.language: climatic_indicator.aggregation_period.get_value_description( LOCALE_IT ), }, @@ -377,18 +376,18 @@ def from_items( measures = result.setdefault("measure", {}) measures[climatic_indicator.measure_type.value.lower()] = { "name": { - LOCALE_EN.language: climatic_indicator.measure_type.get_display_name( + LOCALE_EN.language: climatic_indicator.measure_type.get_value_display_name( LOCALE_EN ), - LOCALE_IT.language: climatic_indicator.measure_type.get_display_name( + LOCALE_IT.language: climatic_indicator.measure_type.get_value_display_name( LOCALE_IT ), }, "description": { - LOCALE_EN.language: climatic_indicator.measure_type.get_description( + LOCALE_EN.language: climatic_indicator.measure_type.get_value_description( LOCALE_EN ), - LOCALE_IT.language: climatic_indicator.measure_type.get_description( + LOCALE_IT.language: climatic_indicator.measure_type.get_value_description( LOCALE_IT ), }, @@ -410,73 +409,8 @@ def from_items( ) return cls( variable=result["variable"], - aggregation_period=result[CoreConfParamName.AGGREGATION_PERIOD.value], - measure=result[CoreConfParamName.MEASURE.value], - other_parameters=result["other_parameters"], - ) - - -class HistoricalMenuTranslations(pydantic.BaseModel): - variable: dict[str, ConfigurationParameterMenuTranslation] - aggregation_period: dict[str, ConfigurationParameterMenuTranslation] - other_parameters: dict[str, dict[str, ConfigurationParameterMenuTranslation]] - - @classmethod - def from_items( - cls, variable_menu_trees: typing.Sequence[app_models.HistoricalVariableMenuTree] - ): - result = {} - for variable_menu_tree in variable_menu_trees: - variable_cp = variable_menu_tree[ - CoreConfParamName.HISTORICAL_VARIABLE.value - ] - aggregation_period_cp = variable_menu_tree[ - CoreConfParamName.AGGREGATION_PERIOD.value - ] - vars = result.setdefault("variable", {}) - vars[variable_cp.name] = ConfigurationParameterMenuTranslation( - name={ - LOCALE_EN.language: variable_cp.display_name_english, - LOCALE_IT.language: variable_cp.display_name_english, - }, - description={ - LOCALE_EN.language: variable_cp.description_english, - LOCALE_IT.language: variable_cp.description_italian, - }, - ) - aggreg_periods = result.setdefault( - CoreConfParamName.AGGREGATION_PERIOD.value, {} - ) - aggreg_periods[ - aggregation_period_cp.name - ] = ConfigurationParameterMenuTranslation( - name={ - LOCALE_EN.language: aggregation_period_cp.display_name_english, - LOCALE_IT.language: aggregation_period_cp.display_name_english, - }, - description={ - LOCALE_EN.language: aggregation_period_cp.description_english, - LOCALE_IT.language: aggregation_period_cp.description_italian, - }, - ) - others = result.setdefault("other_parameters", {}) - for combination_info in variable_menu_tree["combinations"].values(): - cp = combination_info["configuration_parameter"] - param_ = others.setdefault(cp.name, {}) - for cpv in cp.allowed_values: - param_[cpv.name] = ConfigurationParameterMenuTranslation( - name={ - LOCALE_EN.language: cpv.display_name_english, - LOCALE_IT.language: cpv.display_name_english, - }, - description={ - LOCALE_EN.language: cpv.description_english, - LOCALE_IT.language: cpv.description_italian, - }, - ) - return cls( - variable=result["variable"], - aggregation_period=result[CoreConfParamName.AGGREGATION_PERIOD.value], + aggregation_period=result["aggregation_period"], + measure=result["measure"], other_parameters=result["other_parameters"], ) @@ -518,34 +452,6 @@ def from_items( ) -# FIXME - this needs to be refactored -class HistoricalVariableCombinations(pydantic.BaseModel): - variable: str - aggregation_period: str - other_parameters: dict[str, list[str]] - - @classmethod - def from_items(cls, menu_tree: app_models.HistoricalVariableMenuTree): - combinations = {} - for param_name, param_combinations in menu_tree["combinations"].items(): - combinations[param_name] = [] - for valid_value in param_combinations["values"]: - combinations[param_name].append(valid_value.name) - - return cls( - variable=menu_tree[CoreConfParamName.HISTORICAL_VARIABLE.value].name, - aggregation_period=menu_tree[ - CoreConfParamName.AGGREGATION_PERIOD.value - ].name, - other_parameters=combinations, - ) - - class ForecastVariableCombinationsList(pydantic.BaseModel): combinations: list[ForecastVariableCombinations] translations: ForecastMenuTranslations - - -class HistoricalVariableCombinationsList(pydantic.BaseModel): - combinations: list[HistoricalVariableCombinations] - translations: HistoricalMenuTranslations From 94f35b50acff68e15b00605a6900e85406a15d23 Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Silva Date: Tue, 5 Nov 2024 17:34:34 +0000 Subject: [PATCH 11/22] Refactoring in order to integrate climatic indicator (wip) - changed coverage configuration identifier generation in order to include the `name` property again - removed columns from cov conf for those properties which are now in the climatic indicator - adapting bootstrap values --- .../bootstrapper/configurationparameters.py | 664 ++++++------- .../coverage_configurations/forecast/cdd.py | 332 +++---- .../coverage_configurations/forecast/cdds.py | 672 ++++++------- .../coverage_configurations/forecast/fd.py | 420 ++++---- .../coverage_configurations/forecast/hdds.py | 420 ++++---- .../coverage_configurations/forecast/hwdi.py | 180 ++-- .../coverage_configurations/forecast/pr.py | 900 ++++++++--------- .../forecast/r95ptot.py | 180 ++-- .../forecast/snwdays.py | 420 ++++---- .../coverage_configurations/forecast/su30.py | 420 ++++---- .../coverage_configurations/forecast/tas.py | 930 +++++++++--------- .../forecast/tasmax.py | 660 ++++++------- .../forecast/tasmin.py | 660 ++++++------- .../coverage_configurations/forecast/tr.py | 420 ++++---- .../historical/cdds.py | 62 +- .../coverage_configurations/historical/fd.py | 62 +- .../historical/hdds.py | 62 +- .../historical/prcptot.py | 122 +-- .../historical/su30.py | 62 +- .../coverage_configurations/historical/tdd.py | 132 +-- .../coverage_configurations/historical/tnd.py | 122 +-- .../coverage_configurations/historical/tr.py | 62 +- .../coverage_configurations/historical/txd.py | 122 +-- arpav_ppcv/database.py | 46 +- ..._removed_cov_conf_properties_which_are_.py | 49 + arpav_ppcv/schemas/climaticindicators.py | 4 +- arpav_ppcv/schemas/coverages.py | 77 +- arpav_ppcv/webapp/admin/schemas.py | 21 +- arpav_ppcv/webapp/admin/views/coverages.py | 106 +- arpav_ppcv/webapp/api_v2/routers/coverages.py | 17 +- arpav_ppcv/webapp/api_v2/schemas/base.py | 12 +- arpav_ppcv/webapp/api_v2/schemas/coverages.py | 9 +- arpav_ppcv/webapp/api_v3/schemas/base.py | 16 +- 33 files changed, 4241 insertions(+), 4202 deletions(-) create mode 100644 arpav_ppcv/migrations/versions/ca42ab8be733_removed_cov_conf_properties_which_are_.py diff --git a/arpav_ppcv/bootstrapper/configurationparameters.py b/arpav_ppcv/bootstrapper/configurationparameters.py index b641fe35..544689e6 100644 --- a/arpav_ppcv/bootstrapper/configurationparameters.py +++ b/arpav_ppcv/bootstrapper/configurationparameters.py @@ -7,284 +7,284 @@ def generate_configuration_parameters() -> list[ConfigurationParameterCreate]: return [ - ConfigurationParameterCreate( - name=CoreConfParamName.HISTORICAL_VARIABLE.value, - display_name_english="Variable", - display_name_italian="Variabile", - description_english="Historical variable", - description_italian="Variabile storica", - allowed_values=[ - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="tdd", - display_name_english="Average temperature", - display_name_italian="Temperatura media", - description_english="Average of average temperatures", - description_italian="Media delle temperature medie", - sort_order=0, - ), - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="tnd", - display_name_english="Minimum temperature", - display_name_italian="Temperatura minima", - description_english="Average of minimum temperatures", - description_italian="Media delle temperature minime", - sort_order=0, - ), - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="txd", - display_name_english="Maximum temperature", - display_name_italian="Temperatura massima", - description_english="Average of maximum temperatures", - description_italian="Media delle temperature massime", - sort_order=0, - ), - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="tr", - display_name_english="Tropical nights (TR)", - display_name_italian="Notti tropicali (TR)", - description_english=( - "Number of days with minimum temperature larger than 20°C" - ), - description_italian=( - "Numero di giorni con temperatura minima maggiore di 20°C" - ), - sort_order=3, - ), - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="su30", - display_name_english="Summer days (SU30)", - display_name_italian="Giorni caldi (SU30)", - description_english=( - "Number of days with maximum temperature larger than 30°C" - ), - description_italian=( - "Numero di giorni con temperatura massima maggiore di 30°C" - ), - sort_order=4, - ), - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="fd", - display_name_english="Frost days (FD)", - display_name_italian="Giorni di gelo (FD)", - description_english=( - "Number of days with minimum temperature less than 0°C" - ), - description_italian=( - "Numero di giorni con temperatura minima minore di 0°C" - ), - sort_order=5, - ), - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="hdds", - display_name_english="Heating degree days (HDDs)", - display_name_italian="Gradi giorno di riscaldamento (HDDs)", - description_english=( - "Sum of 20°C minus the average daily temperature if the " - "average daily temperature is less than 20°C" - ), - description_italian=( - "Somma di 20°C meno la temperatura media giornaliera se la " - "temperatura media giornaliera è minore di 20°C" - ), - sort_order=7, - ), - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="cdds", - display_name_english="Cooling degree days (CDDs)", - display_name_italian="Gradi giorno di raffrescamento (CDDs)", - description_english=( - "Sum of the average daily temperature minus 21°C if the " - "average daily temperature is larger than 24°C" - ), - description_italian=( - "Somma della temperatura media giornaliera meno 21°C se la " - "temperatura media giornaliera è maggiore di 24°C" - ), - sort_order=8, - ), - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="prcptot", - display_name_english="Precipitation", - display_name_italian="Precipitazione", - description_english="Daily precipitation near the ground", - description_italian="Precipitazione giornaliera vicino al suolo", - sort_order=0, - ), - ], - ), - ConfigurationParameterCreate( - name=CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, - display_name_english="Variable", - display_name_italian="Variabile", - description_english="Climatological variable", - description_italian="Variabile climatologica", - allowed_values=[ - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="cdd", - display_name_english="Consecutive dry days (CDD)", - display_name_italian="Giorni secchi (CDD)", - description_english=( - "Maximum number of consecutive dry days (daily precipitation " - "less than 1 mm)" - ), - description_italian=( - "Numero massimo di giorni consecutivi asciutti " - "(precipitazione giornaliera inferiore a 1 mm)" - ), - sort_order=11, - ), - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="cdds", - display_name_english="Cooling degree days (CDDs)", - display_name_italian="Gradi giorno di raffrescamento (CDDs)", - description_english=( - "Sum of the average daily temperature minus 21°C if the " - "average daily temperature is larger than 24°C" - ), - description_italian=( - "Somma della temperatura media giornaliera meno 21°C se la " - "temperatura media giornaliera è maggiore di 24°C" - ), - sort_order=8, - ), - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="fd", - display_name_english="Frost days (FD)", - display_name_italian="Giorni di gelo (FD)", - description_english=( - "Number of days with minimum temperature less than 0ºC" - ), - description_italian=( - "Numero di giorni con temperatura minima minore di 0°C" - ), - sort_order=5, - ), - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="hdds", - display_name_english="Heating degree days (HDDs)", - display_name_italian="Gradi giorno di riscaldamento (HDDs)", - description_english=( - "Sum of 20°C minus the average daily temperature if the " - "average daily temperature is less than 20°C" - ), - description_italian=( - "Somma di 20°C meno la temperatura media giornaliera se la " - "temperatura media giornaliera è minore di 20°C" - ), - sort_order=7, - ), - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="hwdi", - display_name_english="Heat waves duration index (HWDI)", - display_name_italian="Durata delle ondate di calore (HWDI)", - description_english=( - "Number of days in which the maximum temperature is 5°C " - "higher than the average for at least 5 consecutive days" - ), - description_italian=( - "Numero di giorni in cui la temperatura massima è maggiore " - "di 5°C rispetto alla media per almeno 5 giorni consecutivi" - ), - sort_order=6, - ), - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="pr", - display_name_english="Precipitation (PR)", - display_name_italian="Precipitazione (PR)", - description_english="Daily precipitation near the ground", - description_italian="Precipitazione giornaliera vicino al suolo", - sort_order=9, - ), - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="r95ptot", - display_name_english="Extreme precipitation (R95pTOT)", - display_name_italian="Precipitazione estrema (R95pTOT)", - description_english=( - "Total cumulative precipitation above the 95th percentile " - "with respect to the reference period" - ), - description_italian=( - "Precipitazione totale cumulata al di sopra del 95o " - "percentile del periodo di riferimento" - ), - sort_order=10, - ), - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="snwdays", - display_name_english="Snow days (SNWDAYS)", - display_name_italian="Giorni con neve nuova (SNWDAYS)", - description_english=( - "Number of days with average temperature less than 2°C and " - "daily precipitation larger than 1 mm" - ), - description_italian=( - "Numero di giorni con temperatura media minore di 2°C e " - "precipitazione giornaliera maggiore di 1 mm" - ), - sort_order=12, - ), - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="su30", - display_name_english="Summer days (SU30)", - display_name_italian="Giorni caldi (SU30)", - description_english=( - "Number of days with maximum temperature larger than 30°C" - ), - description_italian=( - "Numero di giorni con temperatura massima maggiore di 30°C" - ), - sort_order=4, - ), - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="tas", - display_name_english="Mean temperature (TAS)", - display_name_italian="Temperatura media (TAS)", - description_english=( - "Daily mean air temperature close to the ground" - ), - description_italian=( - "Temperatura media giornaliera dell'aria vicino al suolo" - ), - sort_order=0, - ), - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="tasmax", - display_name_english="Maximum temperature (TASMAX)", - display_name_italian="Temperatura massima (TASMAX)", - description_english=( - "Daily maximum air temperature close to the ground" - ), - description_italian=( - "Temperatura massima giornaliera dell'aria vicino al suolo" - ), - sort_order=2, - ), - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="tasmin", - display_name_english="Minimum temperature (TASMIN)", - display_name_italian="Temperatura minima (TASMIN)", - description_english=( - "Daily minimum air temperature close to the ground" - ), - description_italian=( - "Temperatura minima giornaliera dell'aria vicino al suolo" - ), - sort_order=1, - ), - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="tr", - display_name_english="Tropical nights (TR)", - display_name_italian="Notti tropicali (TR)", - description_english=( - "Number of days with minimum temperature larger than 20°C" - ), - description_italian=( - "Numero di giorni con temperatura minima maggiore di 20°C" - ), - sort_order=3, - ), - ], - ), + # ConfigurationParameterCreate( + # name=CoreConfParamName.HISTORICAL_VARIABLE.value, + # display_name_english="Variable", + # display_name_italian="Variabile", + # description_english="Historical variable", + # description_italian="Variabile storica", + # allowed_values=[ + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="tdd", + # display_name_english="Average temperature", + # display_name_italian="Temperatura media", + # description_english="Average of average temperatures", + # description_italian="Media delle temperature medie", + # sort_order=0, + # ), + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="tnd", + # display_name_english="Minimum temperature", + # display_name_italian="Temperatura minima", + # description_english="Average of minimum temperatures", + # description_italian="Media delle temperature minime", + # sort_order=0, + # ), + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="txd", + # display_name_english="Maximum temperature", + # display_name_italian="Temperatura massima", + # description_english="Average of maximum temperatures", + # description_italian="Media delle temperature massime", + # sort_order=0, + # ), + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="tr", + # display_name_english="Tropical nights (TR)", + # display_name_italian="Notti tropicali (TR)", + # description_english=( + # "Number of days with minimum temperature larger than 20°C" + # ), + # description_italian=( + # "Numero di giorni con temperatura minima maggiore di 20°C" + # ), + # sort_order=3, + # ), + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="su30", + # display_name_english="Summer days (SU30)", + # display_name_italian="Giorni caldi (SU30)", + # description_english=( + # "Number of days with maximum temperature larger than 30°C" + # ), + # description_italian=( + # "Numero di giorni con temperatura massima maggiore di 30°C" + # ), + # sort_order=4, + # ), + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="fd", + # display_name_english="Frost days (FD)", + # display_name_italian="Giorni di gelo (FD)", + # description_english=( + # "Number of days with minimum temperature less than 0°C" + # ), + # description_italian=( + # "Numero di giorni con temperatura minima minore di 0°C" + # ), + # sort_order=5, + # ), + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="hdds", + # display_name_english="Heating degree days (HDDs)", + # display_name_italian="Gradi giorno di riscaldamento (HDDs)", + # description_english=( + # "Sum of 20°C minus the average daily temperature if the " + # "average daily temperature is less than 20°C" + # ), + # description_italian=( + # "Somma di 20°C meno la temperatura media giornaliera se la " + # "temperatura media giornaliera è minore di 20°C" + # ), + # sort_order=7, + # ), + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="cdds", + # display_name_english="Cooling degree days (CDDs)", + # display_name_italian="Gradi giorno di raffrescamento (CDDs)", + # description_english=( + # "Sum of the average daily temperature minus 21°C if the " + # "average daily temperature is larger than 24°C" + # ), + # description_italian=( + # "Somma della temperatura media giornaliera meno 21°C se la " + # "temperatura media giornaliera è maggiore di 24°C" + # ), + # sort_order=8, + # ), + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="prcptot", + # display_name_english="Precipitation", + # display_name_italian="Precipitazione", + # description_english="Daily precipitation near the ground", + # description_italian="Precipitazione giornaliera vicino al suolo", + # sort_order=0, + # ), + # ], + # ), + # ConfigurationParameterCreate( + # name=CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, + # display_name_english="Variable", + # display_name_italian="Variabile", + # description_english="Climatological variable", + # description_italian="Variabile climatologica", + # allowed_values=[ + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="cdd", + # display_name_english="Consecutive dry days (CDD)", + # display_name_italian="Giorni secchi (CDD)", + # description_english=( + # "Maximum number of consecutive dry days (daily precipitation " + # "less than 1 mm)" + # ), + # description_italian=( + # "Numero massimo di giorni consecutivi asciutti " + # "(precipitazione giornaliera inferiore a 1 mm)" + # ), + # sort_order=11, + # ), + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="cdds", + # display_name_english="Cooling degree days (CDDs)", + # display_name_italian="Gradi giorno di raffrescamento (CDDs)", + # description_english=( + # "Sum of the average daily temperature minus 21°C if the " + # "average daily temperature is larger than 24°C" + # ), + # description_italian=( + # "Somma della temperatura media giornaliera meno 21°C se la " + # "temperatura media giornaliera è maggiore di 24°C" + # ), + # sort_order=8, + # ), + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="fd", + # display_name_english="Frost days (FD)", + # display_name_italian="Giorni di gelo (FD)", + # description_english=( + # "Number of days with minimum temperature less than 0ºC" + # ), + # description_italian=( + # "Numero di giorni con temperatura minima minore di 0°C" + # ), + # sort_order=5, + # ), + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="hdds", + # display_name_english="Heating degree days (HDDs)", + # display_name_italian="Gradi giorno di riscaldamento (HDDs)", + # description_english=( + # "Sum of 20°C minus the average daily temperature if the " + # "average daily temperature is less than 20°C" + # ), + # description_italian=( + # "Somma di 20°C meno la temperatura media giornaliera se la " + # "temperatura media giornaliera è minore di 20°C" + # ), + # sort_order=7, + # ), + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="hwdi", + # display_name_english="Heat waves duration index (HWDI)", + # display_name_italian="Durata delle ondate di calore (HWDI)", + # description_english=( + # "Number of days in which the maximum temperature is 5°C " + # "higher than the average for at least 5 consecutive days" + # ), + # description_italian=( + # "Numero di giorni in cui la temperatura massima è maggiore " + # "di 5°C rispetto alla media per almeno 5 giorni consecutivi" + # ), + # sort_order=6, + # ), + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="pr", + # display_name_english="Precipitation (PR)", + # display_name_italian="Precipitazione (PR)", + # description_english="Daily precipitation near the ground", + # description_italian="Precipitazione giornaliera vicino al suolo", + # sort_order=9, + # ), + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="r95ptot", + # display_name_english="Extreme precipitation (R95pTOT)", + # display_name_italian="Precipitazione estrema (R95pTOT)", + # description_english=( + # "Total cumulative precipitation above the 95th percentile " + # "with respect to the reference period" + # ), + # description_italian=( + # "Precipitazione totale cumulata al di sopra del 95o " + # "percentile del periodo di riferimento" + # ), + # sort_order=10, + # ), + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="snwdays", + # display_name_english="Snow days (SNWDAYS)", + # display_name_italian="Giorni con neve nuova (SNWDAYS)", + # description_english=( + # "Number of days with average temperature less than 2°C and " + # "daily precipitation larger than 1 mm" + # ), + # description_italian=( + # "Numero di giorni con temperatura media minore di 2°C e " + # "precipitazione giornaliera maggiore di 1 mm" + # ), + # sort_order=12, + # ), + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="su30", + # display_name_english="Summer days (SU30)", + # display_name_italian="Giorni caldi (SU30)", + # description_english=( + # "Number of days with maximum temperature larger than 30°C" + # ), + # description_italian=( + # "Numero di giorni con temperatura massima maggiore di 30°C" + # ), + # sort_order=4, + # ), + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="tas", + # display_name_english="Mean temperature (TAS)", + # display_name_italian="Temperatura media (TAS)", + # description_english=( + # "Daily mean air temperature close to the ground" + # ), + # description_italian=( + # "Temperatura media giornaliera dell'aria vicino al suolo" + # ), + # sort_order=0, + # ), + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="tasmax", + # display_name_english="Maximum temperature (TASMAX)", + # display_name_italian="Temperatura massima (TASMAX)", + # description_english=( + # "Daily maximum air temperature close to the ground" + # ), + # description_italian=( + # "Temperatura massima giornaliera dell'aria vicino al suolo" + # ), + # sort_order=2, + # ), + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="tasmin", + # display_name_english="Minimum temperature (TASMIN)", + # display_name_italian="Temperatura minima (TASMIN)", + # description_english=( + # "Daily minimum air temperature close to the ground" + # ), + # description_italian=( + # "Temperatura minima giornaliera dell'aria vicino al suolo" + # ), + # sort_order=1, + # ), + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="tr", + # display_name_english="Tropical nights (TR)", + # display_name_italian="Notti tropicali (TR)", + # description_english=( + # "Number of days with minimum temperature larger than 20°C" + # ), + # description_italian=( + # "Numero di giorni con temperatura minima maggiore di 20°C" + # ), + # sort_order=3, + # ), + # ], + # ), ConfigurationParameterCreate( name=CoreConfParamName.SCENARIO.value, display_name_english="Scenario", @@ -565,35 +565,35 @@ def generate_configuration_parameters() -> list[ConfigurationParameterCreate]: ), ], ), - ConfigurationParameterCreate( - name=CoreConfParamName.MEASURE.value, - display_name_english="Measurement type", - display_name_italian="Tipo di misurazione", - description_english="Type of climatological measurement", - description_italian="Tipo di misurazione climatologica", - allowed_values=[ - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="absolute", - display_name_english="Absolute value", - display_name_italian="Valore assoluto", - description_english="Actual value in the selected period", - description_italian="Valore effettivo nel periodo selezionato", - sort_order=0, - ), - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="anomaly", - display_name_english="Anomaly", - display_name_italian="Anomalia", - description_english=( - "Change in the future with respect to the reference period" - ), - description_italian=( - "Variazione nel futuro rispetto al periodo di riferimento" - ), - sort_order=1, - ), - ], - ), + # ConfigurationParameterCreate( + # name=CoreConfParamName.MEASURE.value, + # display_name_english="Measurement type", + # display_name_italian="Tipo di misurazione", + # description_english="Type of climatological measurement", + # description_italian="Tipo di misurazione climatologica", + # allowed_values=[ + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="absolute", + # display_name_english="Absolute value", + # display_name_italian="Valore assoluto", + # description_english="Actual value in the selected period", + # description_italian="Valore effettivo nel periodo selezionato", + # sort_order=0, + # ), + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="anomaly", + # display_name_english="Anomaly", + # display_name_italian="Anomalia", + # description_english=( + # "Change in the future with respect to the reference period" + # ), + # description_italian=( + # "Variazione nel futuro rispetto al periodo di riferimento" + # ), + # sort_order=1, + # ), + # ], + # ), ConfigurationParameterCreate( name=CoreConfParamName.CLIMATOLOGICAL_MODEL.value, display_name_english="Forecast model", @@ -656,31 +656,31 @@ def generate_configuration_parameters() -> list[ConfigurationParameterCreate]: ), ], ), - ConfigurationParameterCreate( - name=CoreConfParamName.AGGREGATION_PERIOD.value, - display_name_english="Temporal aggregation period", - display_name_italian="Periodo di aggregazione temporale", - description_english="Aggregation period for climatological datasets", - description_italian="Periodo di aggregazione per i set di dati climatologici", - allowed_values=[ - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="30yr", - display_name_english="30-year", - display_name_italian="Trentennale", - description_english="Average over the selected 30-year period", - description_italian="Media sul trentennio selezionato", - sort_order=1, - ), - ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( - internal_value="annual", - display_name_english="Annual", - display_name_italian="Annuale", - description_english="Average over the selected year", - description_italian="Media sull'anno selezionato", - sort_order=0, - ), - ], - ), + # ConfigurationParameterCreate( + # name=CoreConfParamName.AGGREGATION_PERIOD.value, + # display_name_english="Temporal aggregation period", + # display_name_italian="Periodo di aggregazione temporale", + # description_english="Aggregation period for climatological datasets", + # description_italian="Periodo di aggregazione per i set di dati climatologici", + # allowed_values=[ + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="30yr", + # display_name_english="30-year", + # display_name_italian="Trentennale", + # description_english="Average over the selected 30-year period", + # description_italian="Media sul trentennio selezionato", + # sort_order=1, + # ), + # ConfigurationParameterValueCreateEmbeddedInConfigurationParameter( + # internal_value="annual", + # display_name_english="Annual", + # display_name_italian="Annuale", + # description_english="Average over the selected year", + # description_italian="Media sull'anno selezionato", + # sort_order=0, + # ), + # ], + # ), ConfigurationParameterCreate( name=CoreConfParamName.UNCERTAINTY_TYPE.value, display_name_english="Uncertainty type", diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdd.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdd.py index ad44679e..3e839d53 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdd.py @@ -4,16 +4,16 @@ ) from ....schemas.base import CoreConfParamName -_DISPLAY_NAME_ENGLISH = "Consecutive dry days" -_DISPLAY_NAME_ITALIAN = "Giorni secchi" -_DESCRIPTION_ENGLISH = ( - "Maximum number of consecutive dry days (daily precipitation less than 1 mm)" -) -_DESCRIPTION_ITALIAN = ( - "Numero massimo di giorni consecutivi asciutti (precipitazione giornaliera " - "inferiore a 1 mm)" -) -_DATA_PRECISION = 0 +# _DISPLAY_NAME_ENGLISH = "Consecutive dry days" +# _DISPLAY_NAME_ITALIAN = "Giorni secchi" +# _DESCRIPTION_ENGLISH = ( +# "Maximum number of consecutive dry days (daily precipitation less than 1 mm)" +# ) +# _DESCRIPTION_ITALIAN = ( +# "Numero massimo di giorni consecutivi asciutti (precipitazione giornaliera " +# "inferiore a 1 mm)" +# ) +# _DATA_PRECISION = 0 def generate_configurations( @@ -23,20 +23,20 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="cdd_30yr_anomaly_seasonal_agree_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, - netcdf_main_dataset_name="consecutive_dry_days_index_per_time_period", + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, + netcdf_main_dataset_name="cdd", wms_main_layer_name="consecutive_dry_days_index_per_time_period-uncertainty_group", wms_secondary_layer_name="consecutive_dry_days_index_per_time_period", thredds_url_pattern="ensembletwbc/std/clipped/eca_cdd_an_avgagree_{time_window}_{scenario}_{year_period}_ls_VFVGTAA.nc", - unit_english="days", - unit_italian="gg", - palette="uncert-stippled/div-BrBG-inv", - color_scale_min=-40, - color_scale_max=40, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="uncert-stippled/div-BrBG-inv", + # color_scale_min=-40, + # color_scale_max=40, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -44,21 +44,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdd") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdd") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -113,19 +113,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdd_30yr_anomaly_seasonal_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, - netcdf_main_dataset_name="consecutive_dry_days_index_per_time_period", + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, + netcdf_main_dataset_name="cdd", wms_main_layer_name="consecutive_dry_days_index_per_time_period", thredds_url_pattern="indici5rcm/clipped/eca_cdd_an_EC-EARTH_CCLM4-8-17_{scenario}_{year_period}_{time_window}_ls_VFVGTAA.nc", - unit_english="days", - unit_italian="gg", - palette="default/div-BrBG-inv", - color_scale_min=-40, - color_scale_max=40, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/div-BrBG-inv", + # color_scale_min=-40, + # color_scale_max=40, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -133,21 +133,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdd") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdd") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -205,19 +205,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdd_30yr_anomaly_seasonal_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, - netcdf_main_dataset_name="consecutive_dry_days_index_per_time_period", + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, + netcdf_main_dataset_name="cdd", wms_main_layer_name="consecutive_dry_days_index_per_time_period", thredds_url_pattern="indici5rcm/clipped/eca_cdd_an_EC-EARTH_RACMO22E_{scenario}_{year_period}_{time_window}_ls_VFVGTAA.nc", - unit_english="days", - unit_italian="gg", - palette="default/div-BrBG-inv", - color_scale_min=-40, - color_scale_max=40, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/div-BrBG-inv", + # color_scale_min=-40, + # color_scale_max=40, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -225,21 +225,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdd") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdd") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -297,19 +297,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdd_30yr_anomaly_seasonal_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, - netcdf_main_dataset_name="consecutive_dry_days_index_per_time_period", + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, + netcdf_main_dataset_name="cdd", wms_main_layer_name="consecutive_dry_days_index_per_time_period", thredds_url_pattern="indici5rcm/clipped/eca_cdd_an_EC-EARTH_RCA4_{scenario}_{year_period}_{time_window}_ls_VFVGTAA.nc", - unit_english="days", - unit_italian="gg", - palette="default/div-BrBG-inv", - color_scale_min=-40, - color_scale_max=40, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/div-BrBG-inv", + # color_scale_min=-40, + # color_scale_max=40, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -317,21 +317,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdd") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdd") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -386,19 +386,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdd_30yr_anomaly_seasonal_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, - netcdf_main_dataset_name="consecutive_dry_days_index_per_time_period", + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, + netcdf_main_dataset_name="cdd", wms_main_layer_name="consecutive_dry_days_index_per_time_period", thredds_url_pattern="indici5rcm/clipped/eca_cdd_an_HadGEM2-ES_RACMO22E_{scenario}_{year_period}_{time_window}_ls_VFVGTAA.nc", - unit_english="days", - unit_italian="gg", - palette="default/div-BrBG-inv", - color_scale_min=-40, - color_scale_max=40, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/div-BrBG-inv", + # color_scale_min=-40, + # color_scale_max=40, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -406,21 +406,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdd") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdd") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -478,19 +478,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdd_30yr_anomaly_seasonal_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, - netcdf_main_dataset_name="consecutive_dry_days_index_per_time_period", + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, + netcdf_main_dataset_name="cdd", wms_main_layer_name="consecutive_dry_days_index_per_time_period", thredds_url_pattern="indici5rcm/clipped/eca_cdd_an_MPI-ESM-LR_REMO2009_{scenario}_{year_period}_{time_window}_ls_VFVGTAA.nc", - unit_english="days", - unit_italian="gg", - palette="default/div-BrBG-inv", - color_scale_min=-40, - color_scale_max=40, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/div-BrBG-inv", + # color_scale_min=-40, + # color_scale_max=40, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -498,21 +498,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdd") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdd") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdds.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdds.py index 67fcdaf6..1484855f 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdds.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdds.py @@ -28,18 +28,18 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="cdds_annual_absolute_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds", thredds_url_pattern="ensymbc/clipped_noppcne/cdds_21oc24oc_avg_ts19762100_{scenario}_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=1000, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=1000, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -47,21 +47,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -95,18 +95,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_annual_absolute_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped_noppcne/cdds_21oc24oc_EC-EARTH_CCLM4-8-17_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=1000, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=1000, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -114,21 +114,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -161,18 +161,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_annual_absolute_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped_noppcne/cdds_21oc24oc_EC-EARTH_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=1000, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=1000, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -180,21 +180,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -227,18 +227,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_annual_absolute_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped_noppcne/cdds_21oc24oc_EC-EARTH_RCA4_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=1000, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=1000, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -246,21 +246,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -290,18 +290,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_annual_absolute_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped_noppcne/cdds_21oc24oc_HadGEM2-ES_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=1000, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=1000, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -309,21 +309,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -356,18 +356,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_annual_absolute_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped_noppcne/cdds_21oc24oc_MPI-ESM-LR_REMO2009_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=1000, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=1000, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -375,21 +375,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -422,18 +422,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_annual_absolute_model_ensemble_upper_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds_stdup", wms_main_layer_name="cdds_stdup", thredds_url_pattern="ensymbc/std/clipped/cdds_21oc24oc_stdup_ts19762100_{scenario}_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=1000, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=1000, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -441,21 +441,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -490,18 +490,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_annual_absolute_model_ensemble_lower_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds_stddown", wms_main_layer_name="cdds_stddown", thredds_url_pattern="ensymbc/std/clipped/cdds_21oc24oc_stddown_ts19762100_{scenario}_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=1000, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=1000, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -509,21 +509,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -558,19 +558,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_30yr_anomaly_annual_agree_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds-uncertainty_group", wms_secondary_layer_name="cdds", thredds_url_pattern="ensembletwbc/std/clipped/cdds_an_21oc24oc_avgagree_{time_window}_{scenario}_ls_VFVG.nc", - unit_english="ºC", - palette="uncert-stippled/seq-YlOrRd", - color_scale_min=0, - color_scale_max=1000, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="uncert-stippled/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=1000, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -578,21 +578,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -632,18 +632,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_30yr_anomaly_annual_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds", thredds_url_pattern="indici5rcm/clipped_noppcne/cdds_an_21oc24oc_EC-EARTH_CCLM4-8-17_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=1000, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=1000, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -651,21 +651,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -708,18 +708,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_30yr_anomaly_annual_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds", thredds_url_pattern="indici5rcm/clipped_noppcne/cdds_an_21oc24oc_EC-EARTH_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=1000, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=1000, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -727,21 +727,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -784,18 +784,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_30yr_anomaly_annual_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds", thredds_url_pattern="indici5rcm/clipped_noppcne/cdds_an_21oc24oc_EC-EARTH_RCA4_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=1000, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=1000, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -803,21 +803,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -857,18 +857,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_30yr_anomaly_annual_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds", thredds_url_pattern="indici5rcm/clipped_noppcne/cdds_an_21oc24oc_HadGEM2-ES_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=1000, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=1000, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -876,21 +876,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -933,18 +933,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_30yr_anomaly_annual_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds", thredds_url_pattern="indici5rcm/clipped_noppcne/cdds_an_21oc24oc_MPI-ESM-LR_REMO2009_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=1000, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=1000, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -952,21 +952,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/fd.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/fd.py index 11662e4f..f589c7f7 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/fd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/fd.py @@ -42,21 +42,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -110,21 +110,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -181,21 +181,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -252,21 +252,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -320,21 +320,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -391,21 +391,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -462,21 +462,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -531,21 +531,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -601,21 +601,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -675,21 +675,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -752,21 +752,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -829,21 +829,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -903,21 +903,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -980,21 +980,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hdds.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hdds.py index fd7a7a98..9a769dd3 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hdds.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hdds.py @@ -47,21 +47,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -114,21 +114,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -180,21 +180,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -246,21 +246,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -309,21 +309,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -375,21 +375,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -441,21 +441,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -509,21 +509,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -579,21 +579,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -652,21 +652,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -728,21 +728,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -804,21 +804,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -877,21 +877,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -953,21 +953,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hwdi.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hwdi.py index 0cb3d2f0..f3e5376d 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hwdi.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hwdi.py @@ -45,21 +45,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hwdi") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hwdi") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -119,21 +119,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hwdi") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hwdi") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -196,21 +196,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hwdi") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hwdi") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -273,21 +273,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hwdi") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hwdi") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -347,21 +347,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hwdi") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hwdi") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -424,21 +424,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hwdi") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hwdi") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/pr.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/pr.py index 53ef05e5..88a382f0 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/pr.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/pr.py @@ -41,21 +41,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -119,21 +119,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -200,21 +200,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -281,21 +281,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -359,21 +359,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -440,21 +440,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -521,21 +521,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -604,21 +604,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -687,21 +687,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -769,21 +769,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -836,21 +836,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -921,21 +921,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -991,21 +991,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1076,21 +1076,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1146,21 +1146,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -1228,21 +1228,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -1295,21 +1295,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1380,21 +1380,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1450,21 +1450,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1535,21 +1535,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1605,21 +1605,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1688,21 +1688,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1771,21 +1771,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1839,21 +1839,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1908,21 +1908,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1996,21 +1996,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -2087,21 +2087,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -2178,21 +2178,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -2266,21 +2266,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -2357,21 +2357,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/r95ptot.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/r95ptot.py index 0d62189f..8ee4e641 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/r95ptot.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/r95ptot.py @@ -43,21 +43,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "r95ptot") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "r95ptot") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -131,21 +131,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "r95ptot") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "r95ptot") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -222,21 +222,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "r95ptot") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "r95ptot") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -313,21 +313,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "r95ptot") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "r95ptot") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -401,21 +401,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "r95ptot") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "r95ptot") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -492,21 +492,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "r95ptot") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "r95ptot") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/snwdays.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/snwdays.py index 154d77e6..d0ccf8aa 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/snwdays.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/snwdays.py @@ -43,21 +43,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -107,21 +107,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -174,21 +174,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -241,21 +241,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -305,21 +305,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -372,21 +372,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -439,21 +439,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -508,21 +508,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -579,21 +579,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -653,21 +653,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -730,21 +730,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -807,21 +807,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -881,21 +881,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -958,21 +958,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/su30.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/su30.py index 91ee644f..9d1e3f8b 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/su30.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/su30.py @@ -42,21 +42,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -110,21 +110,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -181,21 +181,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -252,21 +252,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -320,21 +320,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -391,21 +391,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -462,21 +462,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -531,21 +531,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -601,21 +601,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -675,21 +675,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -752,21 +752,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -829,21 +829,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -903,21 +903,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -980,21 +980,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tas.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tas.py index e4fd26f0..3b2b96e0 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tas.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tas.py @@ -41,21 +41,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -119,21 +119,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -200,21 +200,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -281,21 +281,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -359,21 +359,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -440,21 +440,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -521,21 +521,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -604,21 +604,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -687,21 +687,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -769,21 +769,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -836,21 +836,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -921,21 +921,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -991,21 +991,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1076,21 +1076,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1146,21 +1146,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -1228,21 +1228,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -1295,21 +1295,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1380,21 +1380,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1450,21 +1450,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1535,21 +1535,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1605,21 +1605,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1688,21 +1688,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1771,21 +1771,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1839,21 +1839,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1908,21 +1908,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1996,21 +1996,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -2087,21 +2087,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -2178,21 +2178,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -2266,21 +2266,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -2357,21 +2357,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -2448,11 +2448,11 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "barometro_climatico") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.SCENARIO.value, "rcp26") @@ -2491,11 +2491,11 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "barometro_climatico") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.UNCERTAINTY_TYPE.value, "lower_bound") @@ -2539,11 +2539,11 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "barometro_climatico") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.UNCERTAINTY_TYPE.value, "upper_bound") diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmax.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmax.py index a0c3f41d..a331d9df 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmax.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmax.py @@ -41,21 +41,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -123,21 +123,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -190,21 +190,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -275,21 +275,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -345,21 +345,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -430,21 +430,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -500,21 +500,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -582,21 +582,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -649,21 +649,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -734,21 +734,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -804,21 +804,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -889,21 +889,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -959,21 +959,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1042,21 +1042,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1125,21 +1125,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1193,21 +1193,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1262,21 +1262,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1350,21 +1350,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1441,21 +1441,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1532,21 +1532,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -1620,21 +1620,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1711,21 +1711,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmin.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmin.py index 596d8047..07db4f06 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmin.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmin.py @@ -41,21 +41,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -123,21 +123,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -190,21 +190,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -275,21 +275,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -345,21 +345,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -430,21 +430,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -500,21 +500,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -582,21 +582,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -649,21 +649,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -734,21 +734,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -804,21 +804,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -889,21 +889,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -959,21 +959,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1042,21 +1042,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1125,21 +1125,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1193,21 +1193,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1262,21 +1262,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1350,21 +1350,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1441,21 +1441,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1532,21 +1532,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -1620,21 +1620,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1711,21 +1711,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tr.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tr.py index 8be27cbb..7f4199c8 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tr.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tr.py @@ -42,21 +42,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -110,21 +110,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -181,21 +181,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -252,21 +252,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -320,21 +320,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -391,21 +391,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -462,21 +462,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -531,21 +531,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -601,21 +601,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -675,21 +675,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -752,21 +752,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -829,21 +829,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -903,21 +903,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -980,21 +980,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "anomaly") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "anomaly") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/cdds.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/cdds.py index 5d37eed6..254e1f29 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/cdds.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/cdds.py @@ -15,7 +15,7 @@ "temperatura media giornaliera è maggiore di 24°C." ) _ARCHIVE = "historical" -_VARIABLE = "cdds" +# _VARIABLE = "cdds" _UNIT = "ºC" _COLOR_SCALE_MIN = 0 _COLOR_SCALE_MAX = 320 @@ -49,26 +49,26 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ("climatological_standard_normal", "1991_2020") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") @@ -97,21 +97,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/fd.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/fd.py index 3dd2a60a..774edeaa 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/fd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/fd.py @@ -12,7 +12,7 @@ _DESCRIPTION_ENGLISH = "Number of days with minimum temperature below 0°C" _DESCRIPTION_ITALIAN = "Numero di giorni con temperatura minima minore di 0°C" _ARCHIVE = "historical" -_VARIABLE = "fd" +# _VARIABLE = "fd" _UNIT_ENGLISH = "days" _UNIT_ITALIAN = "gg" _COLOR_SCALE_MIN = 0 @@ -49,26 +49,26 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ("climatological_standard_normal", "1991_2020") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") @@ -98,21 +98,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/hdds.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/hdds.py index d2b72bdd..c0e57aae 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/hdds.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/hdds.py @@ -15,7 +15,7 @@ "temperatura media giornaliera è minore di 20°C." ) _ARCHIVE = "historical" -_VARIABLE = "hdds" +# _VARIABLE = "hdds" _UNIT = "ºC" _COLOR_SCALE_MIN = 2130 _COLOR_SCALE_MAX = 7800 @@ -49,26 +49,26 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ("climatological_standard_normal", "1991_2020") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") @@ -97,21 +97,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/prcptot.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/prcptot.py index c3609945..505dd4b3 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/prcptot.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/prcptot.py @@ -12,7 +12,7 @@ _DESCRIPTION_ENGLISH = "Daily precipitation near the ground" _DESCRIPTION_ITALIAN = "Precipitazione giornaliera vicino al suolo" _ARCHIVE = "historical" -_VARIABLE = "prcptot" +# _VARIABLE = "prcptot" _UNIT = "mm" _COLOR_SCALE_MIN = 300 _COLOR_SCALE_MAX = 1300 @@ -47,26 +47,26 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ("climatological_standard_normal", "1991_2020") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") @@ -175,21 +175,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") @@ -224,21 +224,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "winter") @@ -288,21 +288,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "january") diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/su30.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/su30.py index 48447051..392c9f9a 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/su30.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/su30.py @@ -12,7 +12,7 @@ _DESCRIPTION_ENGLISH = "Number of days with maximum temperature above 30°C" _DESCRIPTION_ITALIAN = "Numero di giorni con temperatura massima maggiore di 30°C" _ARCHIVE = "historical" -_VARIABLE = "su30" +# _VARIABLE = "su30" _UNIT_ENGLISH = "days" _UNIT_ITALIAN = "gg" _COLOR_SCALE_MIN = 0 @@ -49,26 +49,26 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ("climatological_standard_normal", "1991_2020") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") @@ -98,21 +98,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tdd.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tdd.py index 10290374..8bc302d6 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tdd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tdd.py @@ -12,7 +12,7 @@ _DESCRIPTION_ENGLISH = "Average of average temperatures" _DESCRIPTION_ITALIAN = "Media delle temperature medie" _ARCHIVE = "historical" -_VARIABLE = "tdd" +# _VARIABLE = "tdd" _UNIT = "ºC" _COLOR_SCALE_MIN = -5 _COLOR_SCALE_MAX = 20 @@ -47,26 +47,26 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ("climatological_standard_normal", "1991_2020") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") @@ -175,21 +175,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") @@ -224,21 +224,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "winter") @@ -288,21 +288,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "january") @@ -392,11 +392,11 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "barometro_climatico") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), ], observation_variable_id=( v.id diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tnd.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tnd.py index 3674daa6..0f45b34c 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tnd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tnd.py @@ -12,7 +12,7 @@ _DESCRIPTION_ENGLISH = "Average of minimum temperatures" _DESCRIPTION_ITALIAN = "Media delle temperature minime" _ARCHIVE = "historical" -_VARIABLE = "tnd" +# _VARIABLE = "tnd" _UNIT = "ºC" _COLOR_SCALE_MIN = -5 _COLOR_SCALE_MAX = 20 @@ -47,26 +47,26 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ("climatological_standard_normal", "1991_2020") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") @@ -175,21 +175,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") @@ -224,21 +224,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "winter") @@ -288,21 +288,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "february") diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tr.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tr.py index 3d062095..c0cb9423 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tr.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tr.py @@ -12,7 +12,7 @@ _DESCRIPTION_ENGLISH = "Number of days with minimum temperature higher than 20°C" _DESCRIPTION_ITALIAN = "Numero di giorni con temperatura minima maggiore di 20°C" _ARCHIVE = "historical" -_VARIABLE = "tr" +# _VARIABLE = "tr" _UNIT = "gg" _COLOR_SCALE_MIN = 0 _COLOR_SCALE_MAX = 50 @@ -47,26 +47,26 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ("climatological_standard_normal", "1991_2020") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") @@ -95,21 +95,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/txd.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/txd.py index 326cb6b5..b5566a9f 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/txd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/txd.py @@ -12,7 +12,7 @@ _DESCRIPTION_ENGLISH = "Average of maximum temperatures" _DESCRIPTION_ITALIAN = "Media delle temperature massime" _ARCHIVE = "historical" -_VARIABLE = "txd" +# _VARIABLE = "txd" _UNIT = "ºC" _COLOR_SCALE_MIN = -5 _COLOR_SCALE_MAX = 20 @@ -47,26 +47,26 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ("climatological_standard_normal", "1991_2020") ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") @@ -175,21 +175,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") @@ -224,21 +224,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "winter") @@ -288,21 +288,21 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - ].id - ), - ConfigurationParameterPossibleValueCreate( - configuration_parameter_value_id=conf_param_values[ - (CoreConfParamName.MEASURE.value, "absolute") - ].id - ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") + # ].id + # ), + # ConfigurationParameterPossibleValueCreate( + # configuration_parameter_value_id=conf_param_values[ + # (CoreConfParamName.MEASURE.value, "absolute") + # ].id + # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "january") diff --git a/arpav_ppcv/database.py b/arpav_ppcv/database.py index af5f57ea..da53e344 100644 --- a/arpav_ppcv/database.py +++ b/arpav_ppcv/database.py @@ -947,8 +947,6 @@ def list_coverage_configurations( offset: int = 0, include_total: bool = False, name_filter: Optional[str] = None, - english_display_name_filter: Optional[str] = None, - italian_display_name_filter: Optional[str] = None, configuration_parameter_values_filter: Optional[ list[coverages.ConfigurationParameterValue] ] = None, @@ -979,18 +977,6 @@ def list_coverage_configurations( statement = _add_substring_filter( statement, name_filter, coverages.CoverageConfiguration.name ) - if english_display_name_filter is not None: - statement = _add_substring_filter( - statement, - english_display_name_filter, - coverages.CoverageConfiguration.display_name_english, - ) - if italian_display_name_filter is not None: - statement = _add_substring_filter( - statement, - italian_display_name_filter, - coverages.CoverageConfiguration.display_name_italian, - ) if len(conf_params := configuration_parameter_values_filter or []) > 0: possible_values_cte = ( sqlmodel.select( @@ -1086,22 +1072,22 @@ def create_coverage_configuration( to_refresh = [] db_coverage_configuration = coverages.CoverageConfiguration( name=coverage_configuration_create.name, - display_name_english=coverage_configuration_create.display_name_english, - display_name_italian=coverage_configuration_create.display_name_italian, - description_english=coverage_configuration_create.description_english, - description_italian=coverage_configuration_create.description_italian, + # display_name_english=coverage_configuration_create.display_name_english, + # display_name_italian=coverage_configuration_create.display_name_italian, + # description_english=coverage_configuration_create.description_english, + # description_italian=coverage_configuration_create.description_italian, netcdf_main_dataset_name=coverage_configuration_create.netcdf_main_dataset_name, wms_main_layer_name=coverage_configuration_create.wms_main_layer_name, wms_secondary_layer_name=coverage_configuration_create.wms_secondary_layer_name, thredds_url_pattern=coverage_configuration_create.thredds_url_pattern, - unit_english=coverage_configuration_create.unit_english, - unit_italian=( - coverage_configuration_create.unit_italian - or coverage_configuration_create.unit_english - ), - palette=coverage_configuration_create.palette, - color_scale_min=coverage_configuration_create.color_scale_min, - color_scale_max=coverage_configuration_create.color_scale_max, + # unit_english=coverage_configuration_create.unit_english, + # unit_italian=( + # coverage_configuration_create.unit_italian + # or coverage_configuration_create.unit_english + # ), + # palette=coverage_configuration_create.palette, + # color_scale_min=coverage_configuration_create.color_scale_min, + # color_scale_max=coverage_configuration_create.color_scale_max, climatic_indicator_id=coverage_configuration_create.climatic_indicator_id, observation_variable_id=coverage_configuration_create.observation_variable_id, observation_variable_aggregation_type=coverage_configuration_create.observation_variable_aggregation_type, @@ -1255,7 +1241,7 @@ def generate_coverage_identifiers( for cpv in configuration_parameter_values_filter or []: values = params_to_filter.setdefault(cpv.configuration_parameter.name, []) values.append(cpv.name) - conf_param_id_parts = coverage_configuration.coverage_id_pattern.split("-")[1:] + conf_param_id_parts = coverage_configuration.coverage_id_pattern.split("-")[2:] values_to_combine = [] for part in conf_param_id_parts: param_name = part.translate(str.maketrans("", "", "{}")) @@ -1275,7 +1261,11 @@ def generate_coverage_identifiers( allowed_identifiers = [] for combination in itertools.product(*values_to_combine): dataset_id = "-".join( - (coverage_configuration.climatic_indicator.identifier, *combination) + ( + coverage_configuration.name, + coverage_configuration.climatic_indicator.identifier, + *combination, + ) ) allowed_identifiers.append(dataset_id) return allowed_identifiers diff --git a/arpav_ppcv/migrations/versions/ca42ab8be733_removed_cov_conf_properties_which_are_.py b/arpav_ppcv/migrations/versions/ca42ab8be733_removed_cov_conf_properties_which_are_.py new file mode 100644 index 00000000..1c48e254 --- /dev/null +++ b/arpav_ppcv/migrations/versions/ca42ab8be733_removed_cov_conf_properties_which_are_.py @@ -0,0 +1,49 @@ +"""removed cov conf properties which are now in climatic indicator + +Revision ID: ca42ab8be733 +Revises: 630cc1e4556d +Create Date: 2024-11-05 17:27:37.620072 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa +import sqlmodel + + +# revision identifiers, used by Alembic. +revision: str = 'ca42ab8be733' +down_revision: Union[str, None] = '630cc1e4556d' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('coverageconfiguration', 'display_name_english') + op.drop_column('coverageconfiguration', 'display_name_italian') + op.drop_column('coverageconfiguration', 'description_english') + op.drop_column('coverageconfiguration', 'unit_italian') + op.drop_column('coverageconfiguration', 'description_italian') + op.drop_column('coverageconfiguration', 'color_scale_max') + op.drop_column('coverageconfiguration', 'data_precision') + op.drop_column('coverageconfiguration', 'color_scale_min') + op.drop_column('coverageconfiguration', 'palette') + op.drop_column('coverageconfiguration', 'unit_english') + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('coverageconfiguration', sa.Column('unit_english', sa.VARCHAR(), autoincrement=False, nullable=False)) + op.add_column('coverageconfiguration', sa.Column('palette', sa.VARCHAR(), autoincrement=False, nullable=False)) + op.add_column('coverageconfiguration', sa.Column('color_scale_min', sa.DOUBLE_PRECISION(precision=53), autoincrement=False, nullable=False)) + op.add_column('coverageconfiguration', sa.Column('data_precision', sa.INTEGER(), autoincrement=False, nullable=False)) + op.add_column('coverageconfiguration', sa.Column('color_scale_max', sa.DOUBLE_PRECISION(precision=53), autoincrement=False, nullable=False)) + op.add_column('coverageconfiguration', sa.Column('description_italian', sa.VARCHAR(), autoincrement=False, nullable=True)) + op.add_column('coverageconfiguration', sa.Column('unit_italian', sa.VARCHAR(), autoincrement=False, nullable=True)) + op.add_column('coverageconfiguration', sa.Column('description_english', sa.VARCHAR(), autoincrement=False, nullable=True)) + op.add_column('coverageconfiguration', sa.Column('display_name_italian', sa.VARCHAR(), autoincrement=False, nullable=True)) + op.add_column('coverageconfiguration', sa.Column('display_name_english', sa.VARCHAR(), autoincrement=False, nullable=True)) + # ### end Alembic commands ### diff --git a/arpav_ppcv/schemas/climaticindicators.py b/arpav_ppcv/schemas/climaticindicators.py index 5f801493..f81903ee 100644 --- a/arpav_ppcv/schemas/climaticindicators.py +++ b/arpav_ppcv/schemas/climaticindicators.py @@ -56,9 +56,9 @@ def identifier(self) -> str: def render_templated_value(self, template: str) -> str: rendered = template - rendered = rendered.replace("{measure_type}", self.measure_type.value) + rendered = rendered.replace("{measure_type}", self.measure_type.value.lower()) rendered = rendered.replace( - "{aggregation_period}", self.aggregation_period.value + "{aggregation_period}", self.aggregation_period.value.lower() ) return rendered diff --git a/arpav_ppcv/schemas/coverages.py b/arpav_ppcv/schemas/coverages.py index 5f36af9d..fec6f67f 100644 --- a/arpav_ppcv/schemas/coverages.py +++ b/arpav_ppcv/schemas/coverages.py @@ -177,20 +177,20 @@ class CoverageConfiguration(sqlmodel.SQLModel, table=True): id: uuid.UUID = sqlmodel.Field(default_factory=uuid.uuid4, primary_key=True) name: str = sqlmodel.Field(unique=True, index=True) - display_name_english: Optional[str] = None - display_name_italian: Optional[str] = None - description_english: Optional[str] = None - description_italian: Optional[str] = None + # display_name_english: Optional[str] = None + # display_name_italian: Optional[str] = None + # description_english: Optional[str] = None + # description_italian: Optional[str] = None netcdf_main_dataset_name: str thredds_url_pattern: str wms_main_layer_name: Optional[str] = None wms_secondary_layer_name: Optional[str] = None - unit_english: str = "" - unit_italian: Optional[str] = None - palette: str - color_scale_min: float = 0.0 - color_scale_max: float = 1.0 - data_precision: int = 3 + # unit_english: str = "" + # unit_italian: Optional[str] = None + # palette: str + # color_scale_min: float = 0.0 + # color_scale_max: float = 1.0 + # data_precision: int = 3 climatic_indicator_id: Optional[int] = sqlmodel.Field( default=None, foreign_key="climaticindicator.id" ) @@ -295,7 +295,7 @@ def coverage_id_pattern(self) -> str: param_name = pv.configuration_parameter_value.configuration_parameter.name if param_name not in legacy_param_names: other_parts.add(param_name) - all_parts = ["climatic_indicator"] + sorted(list(other_parts)) + all_parts = ["name", "climatic_indicator"] + sorted(list(other_parts)) return "-".join(f"{{{part}}}" for part in all_parts) @pydantic.computed_field() @@ -351,8 +351,8 @@ def _render_templated_value(self, coverage_identifier: str, template: str) -> st def build_coverage_identifier( self, parameters: list[ConfigurationParameterValue] ) -> str: - id_parts = [self.climatic_indicator.identifier] - for part in self.coverage_id_pattern.split("-")[1:]: + id_parts = [self.name, self.climatic_indicator.identifier] + for part in self.coverage_id_pattern.split("-")[2:]: param_name = part.translate(str.maketrans("", "", "{}")) for conf_param_value in parameters: conf_param = conf_param_value.configuration_parameter @@ -385,10 +385,15 @@ def retrieve_used_values( def retrieve_configuration_parameters( self, coverage_identifier: str ) -> dict[str, str]: - conf_param_name_parts = self.coverage_id_pattern.split("-")[1:] + # - first in the coverage identifier is the cov_conf's `name` + # - second is the cov conf's climatic_indicator `identifier` + # - then we have all the conf params + conf_param_name_parts = self.coverage_id_pattern.split("-")[2:] - # first three are the climatic_indicator name parts - conf_param_values = coverage_identifier.split("-")[3:] + # - so, first is the cov_conf.name + # - then the next three are the climatic_indicator identifier name parts + # - finally, the conf param values + conf_param_values = coverage_identifier.split("-")[4:] result = {} for index, param_part in enumerate(conf_param_name_parts): @@ -440,22 +445,22 @@ class CoverageConfigurationCreate(sqlmodel.SQLModel): ), ), ] - display_name_english: Optional[str] = None - display_name_italian: Optional[str] = None - description_english: Optional[str] = None - description_italian: Optional[str] = None + # display_name_english: Optional[str] = None + # display_name_italian: Optional[str] = None + # description_english: Optional[str] = None + # description_italian: Optional[str] = None netcdf_main_dataset_name: str # the point in having a wms_main_layer_name and wms_secondary_layer_name is to let # the frontend toggle between them wms_main_layer_name: Optional[str] = None wms_secondary_layer_name: Optional[str] = None thredds_url_pattern: str - unit_english: str - unit_italian: Optional[str] = None - palette: str - color_scale_min: float - color_scale_max: float - data_precision: int = 3 + # unit_english: str + # unit_italian: Optional[str] = None + # palette: str + # color_scale_min: float + # color_scale_max: float + # data_precision: int = 3 possible_values: list["ConfigurationParameterPossibleValueCreate"] climatic_indicator_id: int observation_variable_id: Optional[uuid.UUID] = None @@ -479,20 +484,20 @@ def validate_thredds_url_pattern(cls, v: str) -> str: class CoverageConfigurationUpdate(sqlmodel.SQLModel): name: Annotated[Optional[str], pydantic.Field(pattern=_NAME_PATTERN)] = None - display_name_english: Optional[str] = None - display_name_italian: Optional[str] = None - description_english: Optional[str] = None - description_italian: Optional[str] = None + # display_name_english: Optional[str] = None + # display_name_italian: Optional[str] = None + # description_english: Optional[str] = None + # description_italian: Optional[str] = None netcdf_main_dataset_name: Optional[str] = None wms_main_layer_name: Optional[str] = None wms_secondary_layer_name: Optional[str] = None thredds_url_pattern: Optional[str] = None - unit_english: Optional[str] = None - unit_italian: Optional[str] = None - palette: Optional[str] = None - color_scale_min: Optional[float] = None - color_scale_max: Optional[float] = None - data_precision: Optional[int] = None + # unit_english: Optional[str] = None + # unit_italian: Optional[str] = None + # palette: Optional[str] = None + # color_scale_min: Optional[float] = None + # color_scale_max: Optional[float] = None + # data_precision: Optional[int] = None observation_variable_id: Optional[uuid.UUID] = None climatic_indicator_id: Optional[int] = None observation_variable_aggregation_type: Optional[ diff --git a/arpav_ppcv/webapp/admin/schemas.py b/arpav_ppcv/webapp/admin/schemas.py index 9d5f228d..2d8d6530 100644 --- a/arpav_ppcv/webapp/admin/schemas.py +++ b/arpav_ppcv/webapp/admin/schemas.py @@ -67,22 +67,21 @@ class RelatedCoverageConfigurationRead(sqlmodel.SQLModel): class CoverageConfigurationRead(sqlmodel.SQLModel): id: uuid.UUID name: str - display_name_english: Optional[str] - display_name_italian: Optional[str] - description_english: Optional[str] - description_italian: Optional[str] + # display_name_english: Optional[str] + # display_name_italian: Optional[str] + # description_english: Optional[str] + # description_italian: Optional[str] netcdf_main_dataset_name: str wms_main_layer_name: str wms_secondary_layer_name: Optional[str] coverage_id_pattern: str thredds_url_pattern: str - unit_english: str - unit_italian: str - palette: str - color_scale_min: float - color_scale_max: float - data_precision: int - # climatic_indicator: Optional["ClimaticIndicatorRead"] + # unit_english: str + # unit_italian: str + # palette: str + # color_scale_min: float + # color_scale_max: float + # data_precision: int climatic_indicator: Optional[int] possible_values: list[ConfigurationParameterPossibleValueRead] observation_variable_aggregation_type: ObservationAggregationType diff --git a/arpav_ppcv/webapp/admin/views/coverages.py b/arpav_ppcv/webapp/admin/views/coverages.py index ace6d4ca..a5d2b68f 100644 --- a/arpav_ppcv/webapp/admin/views/coverages.py +++ b/arpav_ppcv/webapp/admin/views/coverages.py @@ -324,10 +324,10 @@ class CoverageConfigurationView(ModelView): fields = ( fields.UuidField("id"), starlette_admin.StringField("name", required=True), - starlette_admin.StringField("display_name_english", required=True), - starlette_admin.StringField("display_name_italian", required=True), - starlette_admin.StringField("description_english"), - starlette_admin.StringField("description_italian"), + # starlette_admin.StringField("display_name_english", required=True), + # starlette_admin.StringField("display_name_italian", required=True), + # starlette_admin.StringField("description_english"), + # starlette_admin.StringField("description_italian"), starlette_admin.StringField( "netcdf_main_dataset_name", required=True, @@ -356,25 +356,25 @@ class CoverageConfigurationView(ModelView): ), ), starlette_admin.StringField("coverage_id_pattern", disabled=True), - starlette_admin.StringField("unit_english", required=True), - starlette_admin.StringField("unit_italian", required=True), - starlette_admin.StringField( - "palette", - required=True, - help_text=( - "Name of the palette that should used by the THREDDS WMS server. " - "Available values can be found at https://reading-escience-centre.gitbooks.io/ncwms-user-guide/content/04-usage.html#getmap" - ), - ), - starlette_admin.FloatField("color_scale_min", required=True), - starlette_admin.FloatField("color_scale_max", required=True), - starlette_admin.IntegerField( - "data_precision", - required=True, - help_text=( - "Number of decimal places to be used when displaying data values" - ), - ), + # starlette_admin.StringField("unit_english", required=True), + # starlette_admin.StringField("unit_italian", required=True), + # starlette_admin.StringField( + # "palette", + # required=True, + # help_text=( + # "Name of the palette that should used by the THREDDS WMS server. " + # "Available values can be found at https://reading-escience-centre.gitbooks.io/ncwms-user-guide/content/04-usage.html#getmap" + # ), + # ), + # starlette_admin.FloatField("color_scale_min", required=True), + # starlette_admin.FloatField("color_scale_max", required=True), + # starlette_admin.IntegerField( + # "data_precision", + # required=True, + # help_text=( + # "Number of decimal places to be used when displaying data values" + # ), + # ), fields.RelatedClimaticIndicatorField( "climatic_indicator", help_text="Related climatic indicator", @@ -424,22 +424,22 @@ class CoverageConfigurationView(ModelView): exclude_fields_from_list = ( "id", - "display_name_english", "thredds_url_pattern", - "display_name_italian", - "description_english", - "description_italian", + # "display_name_english", + # "display_name_italian", + # "description_english", + # "description_italian", "netcdf_main_dataset_name", "wms_main_layer_name", "wms_secondary_layer_name", "coverage_id_pattern", "possible_values", - "unit_english", - "unit_italian", - "palette", - "color_scale_min", - "color_scale_max", - "data_precision", + # "unit_english", + # "unit_italian", + # "palette", + # "color_scale_min", + # "color_scale_max", + # "data_precision", "observation_variable", "observation_variable_aggregation_type", "uncertainty_lower_bounds_coverage_configuration", @@ -612,20 +612,20 @@ async def create(self, request: Request, data: Dict[str, Any]) -> Any: related_cov_conf_ids.append(db_related_cov_conf.id) cov_conf_create = coverages.CoverageConfigurationCreate( name=data["name"], - display_name_english=data["display_name_english"], - display_name_italian=data["display_name_italian"], - description_english=data.get("display_name_english"), - description_italian=data.get("display_name_italian"), + # display_name_english=data["display_name_english"], + # display_name_italian=data["display_name_italian"], + # description_english=data.get("display_name_english"), + # description_italian=data.get("display_name_italian"), netcdf_main_dataset_name=data["netcdf_main_dataset_name"], wms_main_layer_name=data.get("wms_main_layer_name"), wms_secondary_layer_name=data.get("wms_secondary_layer_name"), thredds_url_pattern=data["thredds_url_pattern"], - unit_english=data["unit_english"], - unit_italian=data["unit_italian"], - palette=data["palette"], - color_scale_min=data["color_scale_min"], - color_scale_max=data["color_scale_max"], - data_precision=data["data_precision"], + # unit_english=data["unit_english"], + # unit_italian=data["unit_italian"], + # palette=data["palette"], + # color_scale_min=data["color_scale_min"], + # color_scale_max=data["color_scale_max"], + # data_precision=data["data_precision"], possible_values=possible_values_create, observation_variable_id=( related_obs_variable.id if related_obs_variable else None @@ -704,20 +704,20 @@ async def edit(self, request: Request, pk: Any, data: Dict[str, Any]) -> Any: related_cov_conf_ids.append(db_related_cov_conf.id) cov_conv_update = coverages.CoverageConfigurationUpdate( name=data.get("name"), - display_name_english=data.get("display_name_english"), - display_name_italian=data.get("display_name_italian"), - description_english=data.get("display_name_english"), - description_italian=data.get("display_name_italian"), + # display_name_english=data.get("display_name_english"), + # display_name_italian=data.get("display_name_italian"), + # description_english=data.get("display_name_english"), + # description_italian=data.get("display_name_italian"), netcdf_main_dataset_name=data.get("netcdf_main_dataset_name"), wms_main_layer_name=data.get("wms_main_layer_name"), wms_secondary_layer_name=data.get("wms_secondary_layer_name"), thredds_url_pattern=data.get("thredds_url_pattern"), - unit_english=data.get("unit_english"), - unit_italian=data.get("unit_italian"), - palette=data.get("palette"), - color_scale_min=data.get("color_scale_min"), - color_scale_max=data.get("color_scale_max"), - data_precision=data.get("data_precision"), + # unit_english=data.get("unit_english"), + # unit_italian=data.get("unit_italian"), + # palette=data.get("palette"), + # color_scale_min=data.get("color_scale_min"), + # color_scale_max=data.get("color_scale_max"), + # data_precision=data.get("data_precision"), possible_values=possible_values, climatic_indicator_id=( climatic_indicator.id if climatic_indicator else None diff --git a/arpav_ppcv/webapp/api_v2/routers/coverages.py b/arpav_ppcv/webapp/api_v2/routers/coverages.py index 058c551e..f27b542b 100644 --- a/arpav_ppcv/webapp/api_v2/routers/coverages.py +++ b/arpav_ppcv/webapp/api_v2/routers/coverages.py @@ -188,12 +188,12 @@ def get_coverage_configuration( coverage_configuration=db_coverage_configuration ) palette_colors = palette.parse_palette( - db_coverage_configuration.palette, settings.palettes_dir + db_coverage_configuration.climatic_indicator.palette, settings.palettes_dir ) applied_colors = [] if palette_colors is not None: - minimum = db_coverage_configuration.color_scale_min - maximum = db_coverage_configuration.color_scale_max + minimum = db_coverage_configuration.climatic_indicator.color_scale_min + maximum = db_coverage_configuration.climatic_indicator.color_scale_max if abs(maximum - minimum) > 0.001: applied_colors = palette.apply_palette( palette_colors, minimum, maximum, num_stops=settings.palette_num_stops @@ -205,7 +205,10 @@ def get_coverage_configuration( f"colorscale min and max values" ) else: - logger.warning(f"Unable to parse palette {db_coverage_configuration.palette!r}") + logger.warning( + f"Unable to parse palette " + f"{db_coverage_configuration.climatic_indicator.palette!r}" + ) return coverage_schemas.CoverageConfigurationReadDetail.from_db_instance( db_coverage_configuration, allowed_coverage_identifiers, applied_colors, request ) @@ -321,10 +324,10 @@ async def wms_endpoint( if query_params.get("request") in ("GetMap", "GetLegendGraphic"): query_params = thredds_utils.tweak_wms_get_map_request( query_params, - ncwms_palette=cov.configuration.palette, + ncwms_palette=cov.configuration.climatic_indicator.palette, ncwms_color_scale_range=( - cov.configuration.color_scale_min, - cov.configuration.color_scale_max, + cov.configuration.climatic_indicator.color_scale_min, + cov.configuration.climatic_indicator.color_scale_max, ), uncertainty_visualization_scale_range=( settings.thredds_server.uncertainty_visualization_scale_range diff --git a/arpav_ppcv/webapp/api_v2/schemas/base.py b/arpav_ppcv/webapp/api_v2/schemas/base.py index fd6b39ea..20ecaa3c 100644 --- a/arpav_ppcv/webapp/api_v2/schemas/base.py +++ b/arpav_ppcv/webapp/api_v2/schemas/base.py @@ -391,12 +391,10 @@ def from_coverage_series( parameter_values={ "series_name": { LOCALE_EN.language: ( - coverage.configuration.display_name_english - or coverage.configuration.name + coverage.configuration.climatic_indicator.display_name_english ), LOCALE_IT.language: ( - coverage.configuration.display_name_italian - or coverage.configuration.name + coverage.configuration.climatic_indicator.display_name_italian ), }, "processing_method": { @@ -413,12 +411,10 @@ def from_coverage_series( }, "coverage_configuration": { LOCALE_EN.language: ( - coverage.configuration.display_name_english - or coverage.configuration.name + coverage.configuration.climatic_indicator.display_name_english ), LOCALE_IT.language: ( - coverage.configuration.display_name_italian - or coverage.configuration.name + coverage.configuration.climatic_indicator.display_name_italian ), }, **param_values_translations, diff --git a/arpav_ppcv/webapp/api_v2/schemas/coverages.py b/arpav_ppcv/webapp/api_v2/schemas/coverages.py index d03600fa..17c52ff8 100644 --- a/arpav_ppcv/webapp/api_v2/schemas/coverages.py +++ b/arpav_ppcv/webapp/api_v2/schemas/coverages.py @@ -107,8 +107,8 @@ def from_db_instance( "display_name_italian", } ), - display_name_english=instance.display_name_english or instance.name, - display_name_italian=instance.display_name_italian or instance.name, + display_name_english=instance.climatic_indicator.display_name_english, + display_name_italian=instance.climatic_indicator.display_name_italian, url=str(url), possible_values=[ ConfigurationParameterPossibleValueRead( @@ -151,6 +151,11 @@ def from_db_instance( ) return cls( **instance.model_dump(), + description_english=instance.climatic_indicator.description_english, + description_italian=instance.climatic_indicator.description_italian, + unit_english=instance.climatic_indicator.unit_english, + unit_italian=instance.climatic_indicator.unit_italian, + data_precision=instance.climatic_indicator.data_precision, url=str(url), possible_values=[ ConfigurationParameterPossibleValueRead( diff --git a/arpav_ppcv/webapp/api_v3/schemas/base.py b/arpav_ppcv/webapp/api_v3/schemas/base.py index da60750b..bdef8653 100644 --- a/arpav_ppcv/webapp/api_v3/schemas/base.py +++ b/arpav_ppcv/webapp/api_v3/schemas/base.py @@ -353,12 +353,10 @@ def from_coverage_series( parameter_values={ "series_name": { LOCALE_EN.language: ( - coverage.configuration.display_name_english - or coverage.configuration.name + coverage.configuration.climatic_indicator.display_name_english ), LOCALE_IT.language: ( - coverage.configuration.display_name_italian - or coverage.configuration.name + coverage.configuration.climatic_indicator.display_name_italian ), }, "processing_method": { @@ -374,14 +372,8 @@ def from_coverage_series( LOCALE_IT.language: coverage.identifier, }, "coverage_configuration": { - LOCALE_EN.language: ( - coverage.configuration.display_name_english - or coverage.configuration.name - ), - LOCALE_IT.language: ( - coverage.configuration.display_name_italian - or coverage.configuration.name - ), + LOCALE_EN.language: coverage.configuration.name, + LOCALE_IT.language: coverage.configuration.name, }, **param_values_translations, }, From 1bfe029e449833c2c7347507a55e2008c2199c39 Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Silva Date: Thu, 7 Nov 2024 12:23:52 +0000 Subject: [PATCH 12/22] Commented out bootstrap cov conf properties that are now in climatic indicator --- .../coverage_configurations/forecast/cdds.py | 22 +- .../coverage_configurations/forecast/fd.py | 290 ++++----- .../coverage_configurations/forecast/hdds.py | 274 ++++---- .../coverage_configurations/forecast/hwdi.py | 142 ++-- .../coverage_configurations/forecast/pr.py | 550 ++++++++-------- .../forecast/r95ptot.py | 128 ++-- .../forecast/snwdays.py | 300 ++++----- .../coverage_configurations/forecast/su30.py | 290 ++++----- .../coverage_configurations/forecast/tas.py | 604 +++++++++--------- .../forecast/tasmax.py | 406 ++++++------ .../forecast/tasmin.py | 406 ++++++------ .../coverage_configurations/forecast/tr.py | 290 ++++----- .../historical/cdds.py | 66 +- .../coverage_configurations/historical/fd.py | 62 +- .../historical/hdds.py | 66 +- .../historical/prcptot.py | 92 +-- .../historical/su30.py | 62 +- .../coverage_configurations/historical/tdd.py | 110 ++-- .../coverage_configurations/historical/tnd.py | 92 +-- .../coverage_configurations/historical/tr.py | 56 +- .../coverage_configurations/historical/txd.py | 92 +-- 21 files changed, 2200 insertions(+), 2200 deletions(-) diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdds.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdds.py index 1484855f..4c3697fd 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdds.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdds.py @@ -7,17 +7,17 @@ ConfigurationParameterPossibleValueCreate, ) -_DISPLAY_NAME_ENGLISH = "Cooling degree days" -_DISPLAY_NAME_ITALIAN = "Gradi giorno di raffrescamento" -_DESCRIPTION_ENGLISH = ( - "Sum of the average daily temperature minus 21°C if the average daily temperature " - "is greater than 24°C" -) -_DESCRIPTION_ITALIAN = ( - "Somma della temperatura media giornaliera meno 21°C se la temperatura media " - "giornaliera è maggiore di 24°C" -) -_DATA_PRECISION = 0 +# _DISPLAY_NAME_ENGLISH = "Cooling degree days" +# _DISPLAY_NAME_ITALIAN = "Gradi giorno di raffrescamento" +# _DESCRIPTION_ENGLISH = ( +# "Sum of the average daily temperature minus 21°C if the average daily temperature " +# "is greater than 24°C" +# ) +# _DESCRIPTION_ITALIAN = ( +# "Somma della temperatura media giornaliera meno 21°C se la temperatura media " +# "giornaliera è maggiore di 24°C" +# ) +# _DATA_PRECISION = 0 def generate_configurations( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/fd.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/fd.py index f589c7f7..c40808de 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/fd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/fd.py @@ -7,11 +7,11 @@ ConfigurationParameterPossibleValueCreate, ) -_DISPLAY_NAME_ENGLISH = "Frosty days" -_DISPLAY_NAME_ITALIAN = "Giorni di gelo" -_DESCRIPTION_ENGLISH = "Number of days with minimum temperature less than 0 °C" -_DESCRIPTION_ITALIAN = "Numero di giorni con temperatura minima inferiore a 0 °C" -_DATA_PRECISION = 0 +# _DISPLAY_NAME_ENGLISH = "Frosty days" +# _DISPLAY_NAME_ITALIAN = "Giorni di gelo" +# _DESCRIPTION_ENGLISH = "Number of days with minimum temperature less than 0 °C" +# _DESCRIPTION_ITALIAN = "Numero di giorni con temperatura minima inferiore a 0 °C" +# _DATA_PRECISION = 0 def generate_configurations( @@ -22,19 +22,19 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="fd_annual_absolute_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd", thredds_url_pattern="ensymbc/clipped/ecafd_0_avg_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-Blues-inv", - color_scale_min=0, - color_scale_max=200, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-Blues-inv", + # color_scale_min=0, + # color_scale_max=200, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -90,19 +90,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="fd_annual_absolute_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/ecafd_0_EC-EARTH_CCLM4-8-17_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-Blues-inv", - color_scale_min=0, - color_scale_max=200, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-Blues-inv", + # color_scale_min=0, + # color_scale_max=200, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -161,19 +161,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="fd_annual_absolute_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/ecafd_0_EC-EARTH_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-Blues-inv", - color_scale_min=0, - color_scale_max=200, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-Blues-inv", + # color_scale_min=0, + # color_scale_max=200, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -232,19 +232,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="fd_annual_absolute_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/ecafd_0_EC-EARTH_RCA4_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-Blues-inv", - color_scale_min=0, - color_scale_max=200, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-Blues-inv", + # color_scale_min=0, + # color_scale_max=200, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -300,19 +300,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="fd_annual_absolute_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/ecafd_0_HadGEM2-ES_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-Blues-inv", - color_scale_min=0, - color_scale_max=200, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-Blues-inv", + # color_scale_min=0, + # color_scale_max=200, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -371,19 +371,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="fd_annual_absolute_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/ecafd_0_MPI-ESM-LR_REMO2009_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-Blues-inv", - color_scale_min=0, - color_scale_max=200, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-Blues-inv", + # color_scale_min=0, + # color_scale_max=200, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -442,19 +442,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="fd_annual_absolute_model_ensemble_upper_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd_stdup", wms_main_layer_name="fd_stdup", thredds_url_pattern="ensymbc/std/clipped/ecafd_0_stdup_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-Blues-inv", - color_scale_min=0, - color_scale_max=200, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-Blues-inv", + # color_scale_min=0, + # color_scale_max=200, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -511,19 +511,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="fd_annual_absolute_model_ensemble_lower_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd_stddown", wms_main_layer_name="fd_stddown", thredds_url_pattern="ensymbc/std/clipped/ecafd_0_stddown_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-Blues-inv", - color_scale_min=0, - color_scale_max=200, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-Blues-inv", + # color_scale_min=0, + # color_scale_max=200, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -580,20 +580,20 @@ def generate_configurations( ), CoverageConfigurationCreate( name="fd_30yr_anomaly_annual_agree_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd-uncertainty_group", wms_secondary_layer_name="fd", thredds_url_pattern="ensembletwbc/std/clipped/ecafdan_0_avgagree_{time_window}_{scenario}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="uncert-stippled/seq-YlOrRd-inv", - color_scale_min=-85, - color_scale_max=5, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="uncert-stippled/seq-YlOrRd-inv", + # color_scale_min=-85, + # color_scale_max=5, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -655,19 +655,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="fd_30yr_anomaly_annual_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd", thredds_url_pattern="indici5rcm/clipped/ecafdan_0_EC-EARTH_CCLM4-8-17_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd-inv", - color_scale_min=-85, - color_scale_max=5, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd-inv", + # color_scale_min=-85, + # color_scale_max=5, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -732,19 +732,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="fd_30yr_anomaly_annual_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd", thredds_url_pattern="indici5rcm/clipped/ecafdan_0_EC-EARTH_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd-inv", - color_scale_min=-85, - color_scale_max=5, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd-inv", + # color_scale_min=-85, + # color_scale_max=5, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -809,19 +809,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="fd_30yr_anomaly_annual_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd", thredds_url_pattern="indici5rcm/clipped/ecafdan_0_EC-EARTH_RCA4_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd-inv", - color_scale_min=-85, - color_scale_max=5, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd-inv", + # color_scale_min=-85, + # color_scale_max=5, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -883,19 +883,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="fd_30yr_anomaly_annual_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd", thredds_url_pattern="indici5rcm/clipped/ecafdan_0_HadGEM2-ES_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd-inv", - color_scale_min=-85, - color_scale_max=5, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd-inv", + # color_scale_min=-85, + # color_scale_max=5, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -960,19 +960,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="fd_30yr_anomaly_annual_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd", thredds_url_pattern="indici5rcm/clipped/ecafdan_0_MPI-ESM-LR_REMO2009_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd-inv", - color_scale_min=-85, - color_scale_max=5, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd-inv", + # color_scale_min=-85, + # color_scale_max=5, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hdds.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hdds.py index 9a769dd3..875b33cb 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hdds.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hdds.py @@ -7,17 +7,17 @@ ConfigurationParameterPossibleValueCreate, ) -_DISPLAY_NAME_ENGLISH = "Heating degree days" -_DISPLAY_NAME_ITALIAN = "Gradi giorno di riscaldamento" -_DESCRIPTION_ENGLISH = ( - "Sum of 20°C minus the average daily temperature if the average daily temperature " - "is less than 20°C" -) -_DESCRIPTION_ITALIAN = ( - "Somma di 20°C meno la temperatura media giornaliera se la temperatura media " - "giornaliera è minore di 20°C" -) -_DATA_PRECISION = 0 +# _DISPLAY_NAME_ENGLISH = "Heating degree days" +# _DISPLAY_NAME_ITALIAN = "Gradi giorno di riscaldamento" +# _DESCRIPTION_ENGLISH = ( +# "Sum of 20°C minus the average daily temperature if the average daily temperature " +# "is less than 20°C" +# ) +# _DESCRIPTION_ITALIAN = ( +# "Somma di 20°C meno la temperatura media giornaliera se la temperatura media " +# "giornaliera è minore di 20°C" +# ) +# _DATA_PRECISION = 0 def generate_configurations( @@ -28,18 +28,18 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="hdds_annual_absolute_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds", thredds_url_pattern="ensymbc/clipped_noppcne/hdds_20oc_avg_ts19762100_{scenario}_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-Blues-inv", - color_scale_min=0, - color_scale_max=7000, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-Blues-inv", + # color_scale_min=0, + # color_scale_max=7000, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -95,18 +95,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_annual_absolute_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped_noppcne/hdds_20oc_EC-EARTH_CCLM4-8-17_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-Blues-inv", - color_scale_min=0, - color_scale_max=7000, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-Blues-inv", + # color_scale_min=0, + # color_scale_max=7000, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -161,18 +161,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_annual_absolute_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped_noppcne/hdds_20oc_EC-EARTH_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-Blues-inv", - color_scale_min=0, - color_scale_max=7000, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-Blues-inv", + # color_scale_min=0, + # color_scale_max=7000, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -227,18 +227,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_annual_absolute_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped_noppcne/hdds_20oc_EC-EARTH_RCA4_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-Blues-inv", - color_scale_min=0, - color_scale_max=7000, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-Blues-inv", + # color_scale_min=0, + # color_scale_max=7000, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -290,18 +290,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_annual_absolute_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped_noppcne/hdds_20oc_HadGEM2-ES_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-Blues-inv", - color_scale_min=0, - color_scale_max=7000, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-Blues-inv", + # color_scale_min=0, + # color_scale_max=7000, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -356,18 +356,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_annual_absolute_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped_noppcne/hdds_20oc_MPI-ESM-LR_REMO2009_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-Blues-inv", - color_scale_min=0, - color_scale_max=7000, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-Blues-inv", + # color_scale_min=0, + # color_scale_max=7000, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -422,18 +422,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_annual_absolute_model_ensemble_upper_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds_stdup", wms_main_layer_name="hdds_stdup", thredds_url_pattern="ensymbc/std/clipped/hdds_20oc_stdup_ts19762100_{scenario}_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-Blues-inv", - color_scale_min=0, - color_scale_max=7000, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-Blues-inv", + # color_scale_min=0, + # color_scale_max=7000, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -490,18 +490,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_annual_absolute_model_ensemble_lower_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds_stddown", wms_main_layer_name="hdds_stddown", thredds_url_pattern="ensymbc/std/clipped/hdds_20oc_stddown_ts19762100_{scenario}_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-Blues-inv", - color_scale_min=0, - color_scale_max=7000, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-Blues-inv", + # color_scale_min=0, + # color_scale_max=7000, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -559,19 +559,19 @@ def generate_configurations( # --- CoverageConfigurationCreate( name="hdds_30yr_anomaly_annual_agree_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds-uncertainty_group", wms_secondary_layer_name="hdds", thredds_url_pattern="ensembletwbc/std/clipped/hdds_an_20oc_avgagree_{time_window}_{scenario}_ls_VFVG.nc", - unit_english="ºC", - palette="uncert-stippled/seq-YlOrRd-inv", - color_scale_min=-2000, - color_scale_max=0, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="uncert-stippled/seq-YlOrRd-inv", + # color_scale_min=-2000, + # color_scale_max=0, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -633,18 +633,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_30yr_anomaly_annual_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds", thredds_url_pattern="indici5rcm/clipped_noppcne/hdds_an_20oc_EC-EARTH_CCLM4-8-17_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd-inv", - color_scale_min=-2000, - color_scale_max=0, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd-inv", + # color_scale_min=-2000, + # color_scale_max=0, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -709,18 +709,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_30yr_anomaly_annual_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds", thredds_url_pattern="indici5rcm/clipped_noppcne/hdds_an_20oc_EC-EARTH_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd-inv", - color_scale_min=-2000, - color_scale_max=0, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd-inv", + # color_scale_min=-2000, + # color_scale_max=0, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -785,18 +785,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_30yr_anomaly_annual_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds", thredds_url_pattern="indici5rcm/clipped_noppcne/hdds_an_20oc_EC-EARTH_RCA4_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd-inv", - color_scale_min=-2000, - color_scale_max=0, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd-inv", + # color_scale_min=-2000, + # color_scale_max=0, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -858,18 +858,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_30yr_anomaly_annual_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds", thredds_url_pattern="indici5rcm/clipped_noppcne/hdds_an_20oc_HadGEM2-ES_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd-inv", - color_scale_min=-2000, - color_scale_max=0, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd-inv", + # color_scale_min=-2000, + # color_scale_max=0, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -934,18 +934,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_30yr_anomaly_annual_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds", thredds_url_pattern="indici5rcm/clipped_noppcne/hdds_an_20oc_MPI-ESM-LR_REMO2009_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd-inv", - color_scale_min=-2000, - color_scale_max=0, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd-inv", + # color_scale_min=-2000, + # color_scale_max=0, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hwdi.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hwdi.py index f3e5376d..5dad7858 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hwdi.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hwdi.py @@ -4,17 +4,17 @@ ConfigurationParameterPossibleValueCreate, ) -_DISPLAY_NAME_ENGLISH = "Duration of heat waves" -_DISPLAY_NAME_ITALIAN = "Durata delle ondate di calore" -_DESCRIPTION_ENGLISH = ( - "Sequences of 5 consecutive days in which the temperature is 5°C higher than the " - "reference average for that day of the year" -) -_DESCRIPTION_ITALIAN = ( - "Sequenze di 5 giorni consecutivi in cui la temperatura è maggiore di 5°C rispetto " - "alla media di riferimento per quel giorno dell'anno" -) -_DATA_PRECISION = 0 +# _DISPLAY_NAME_ENGLISH = "Duration of heat waves" +# _DISPLAY_NAME_ITALIAN = "Durata delle ondate di calore" +# _DESCRIPTION_ENGLISH = ( +# "Sequences of 5 consecutive days in which the temperature is 5°C higher than the " +# "reference average for that day of the year" +# ) +# _DESCRIPTION_ITALIAN = ( +# "Sequenze di 5 giorni consecutivi in cui la temperatura è maggiore di 5°C rispetto " +# "alla media di riferimento per quel giorno dell'anno" +# ) +# _DATA_PRECISION = 0 def generate_configurations( @@ -24,20 +24,20 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="hwdi_30yr_anomaly_seasonal_agree_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="heat_wave_duration_index_wrt_mean_of_reference_period", wms_main_layer_name="heat_wave_duration_index_wrt_mean_of_reference_period-uncertainty_group", wms_secondary_layer_name="heat_wave_duration_index_wrt_mean_of_reference_period", thredds_url_pattern="ensembletwbc/std/clipped/heat_waves_anom_avgagree_55_{time_window}_{scenario}_{year_period}_VFVGTAA.nc", - unit_english="days", - unit_italian="gg", - palette="uncert-stippled/seq-YlOrRd", - color_scale_min=0, - color_scale_max=50, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="uncert-stippled/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=50, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hwdi-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -99,19 +99,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hwdi_30yr_anomaly_seasonal_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="heat_wave_duration_index_wrt_mean_of_reference_period", wms_main_layer_name="heat_wave_duration_index_wrt_mean_of_reference_period", thredds_url_pattern="indici5rcm/clipped/heat_waves_anom_EC-EARTH_CCLM4-8-17_{scenario}_{year_period}_55_{time_window}_VFVGTAA.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=50, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=50, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hwdi-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -176,19 +176,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hwdi_30yr_anomaly_seasonal_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="heat_wave_duration_index_wrt_mean_of_reference_period", wms_main_layer_name="heat_wave_duration_index_wrt_mean_of_reference_period", thredds_url_pattern="indici5rcm/clipped/heat_waves_anom_EC-EARTH_RACMO22E_{scenario}_{year_period}_55_{time_window}_VFVGTAA.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=50, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=50, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hwdi-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -253,19 +253,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hwdi_30yr_anomaly_seasonal_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="heat_wave_duration_index_wrt_mean_of_reference_period", wms_main_layer_name="heat_wave_duration_index_wrt_mean_of_reference_period", thredds_url_pattern="indici5rcm/clipped/heat_waves_anom_EC-EARTH_RCA4_{scenario}_{year_period}_55_{time_window}_VFVGTAA.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=50, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=50, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hwdi-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -327,19 +327,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hwdi_30yr_anomaly_seasonal_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="heat_wave_duration_index_wrt_mean_of_reference_period", wms_main_layer_name="heat_wave_duration_index_wrt_mean_of_reference_period", thredds_url_pattern="indici5rcm/clipped/heat_waves_anom_HadGEM2-ES_RACMO22E_{scenario}_{year_period}_55_{time_window}_VFVGTAA.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=50, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=50, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hwdi-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -404,19 +404,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hwdi_30yr_anomaly_seasonal_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="heat_wave_duration_index_wrt_mean_of_reference_period", wms_main_layer_name="heat_wave_duration_index_wrt_mean_of_reference_period", thredds_url_pattern="indici5rcm/clipped/heat_waves_anom_MPI-ESM-LR_REMO2009_{scenario}_{year_period}_55_{time_window}_VFVGTAA.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=50, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=50, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hwdi-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/pr.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/pr.py index 88a382f0..ce6b25b1 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/pr.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/pr.py @@ -7,11 +7,11 @@ ConfigurationParameterPossibleValueCreate, ) -_DISPLAY_NAME_ENGLISH = "Precipiation" -_DISPLAY_NAME_ITALIAN = "Precipitazione" -_DESCRIPTION_ENGLISH = "Daily precipitation near the ground" -_DESCRIPTION_ITALIAN = "Precipitazioni giornaliere in prossimità del suolo" -_DATA_PRECISION = 0 +# _DISPLAY_NAME_ENGLISH = "Precipiation" +# _DISPLAY_NAME_ITALIAN = "Precipitazione" +# _DESCRIPTION_ENGLISH = "Daily precipitation near the ground" +# _DESCRIPTION_ITALIAN = "Precipitazioni giornaliere in prossimità del suolo" +# _DATA_PRECISION = 0 def generate_configurations( @@ -22,18 +22,18 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="pr_seasonal_anomaly_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="ens5ym/clipped/pr_anom_pp_ts_{scenario}_{year_period}_VFVGTAA.nc", - unit_english="%", - palette="default/div-BrBG", - color_scale_min=-40, - color_scale_max=40, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/div-BrBG", + # color_scale_min=-40, + # color_scale_max=40, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -100,18 +100,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_anomaly_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="EC-EARTH_CCLM4-8-17ym/clipped/pr_EC-EARTH_CCLM4-8-17_{scenario}_{year_period}_anomaly_pp_percentage_VFVGTAA.nc", - unit_english="%", - palette="default/div-BrBG", - color_scale_min=-40, - color_scale_max=40, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/div-BrBG", + # color_scale_min=-40, + # color_scale_max=40, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -181,18 +181,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_anomaly_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="EC-EARTH_RACMO22Eym/clipped/pr_EC-EARTH_RACMO22E_{scenario}_{year_period}_anomaly_pp_percentage_VFVGTAA.nc", - unit_english="%", - palette="default/div-BrBG", - color_scale_min=-40, - color_scale_max=40, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/div-BrBG", + # color_scale_min=-40, + # color_scale_max=40, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -262,18 +262,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_anomaly_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="EC-EARTH_RCA4ym/clipped/pr_EC-EARTH_RCA4_{scenario}_{year_period}_anomaly_pp_percentage_VFVGTAA.nc", - unit_english="%", - palette="default/div-BrBG", - color_scale_min=-40, - color_scale_max=40, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/div-BrBG", + # color_scale_min=-40, + # color_scale_max=40, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -340,18 +340,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_anomaly_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="HadGEM2-ES_RACMO22Eym/clipped/pr_HadGEM2-ES_RACMO22E_{scenario}_{year_period}_anomaly_pp_percentage_VFVGTAA.nc", - unit_english="%", - palette="default/div-BrBG", - color_scale_min=-40, - color_scale_max=40, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/div-BrBG", + # color_scale_min=-40, + # color_scale_max=40, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -421,18 +421,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_anomaly_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="MPI-ESM-LR_REMO2009ym/clipped/pr_MPI-ESM-LR_REMO2009_{scenario}_{year_period}_anomaly_pp_percentage_VFVGTAA.nc", - unit_english="%", - palette="default/div-BrBG", - color_scale_min=-40, - color_scale_max=40, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/div-BrBG", + # color_scale_min=-40, + # color_scale_max=40, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -502,18 +502,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_anomaly_model_ensemble_upper_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr_stdup", wms_main_layer_name="pr_stdup", thredds_url_pattern="ens5ym/std/clipped/pr_anom_stdup_pp_ts_{scenario}_{year_period}_VFVGTAA.nc", - unit_english="%", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=0, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=0, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -585,18 +585,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_anomaly_model_ensemble_lower_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr_stddown", wms_main_layer_name="pr_stddown", thredds_url_pattern="ens5ym/std/clipped/pr_anom_stddown_pp_ts_{scenario}_{year_period}_VFVGTAA.nc", - unit_english="%", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=0, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=0, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -668,18 +668,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_absolute_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="ensymbc/clipped/pr_avg_{scenario}_{year_period}_ts19762100_ls_VFVGTAA.nc", - unit_english="mm", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=800, - data_precision=_DATA_PRECISION, + # unit_english="mm", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=800, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -750,18 +750,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_annual_absolute_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="ensymbc/clipped/pr_avg_{scenario}_ts19762100_ls_VFVGTAA.nc", - unit_english="mm", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=3200, - data_precision=_DATA_PRECISION, + # unit_english="mm", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=3200, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -817,18 +817,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_absolute_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/pr_EC-EARTH_CCLM4-8-17_{scenario}_{year_period}_ts_ls_VFVGTAA.nc", - unit_english="%", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=800, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=800, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -902,18 +902,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_annual_absolute_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, wms_main_layer_name="pr", netcdf_main_dataset_name="pr", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/pr_EC-EARTH_CCLM4-8-17_{scenario}_ts_ls_VFVGTAA.nc", - unit_english="mm", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=3200, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=800, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -972,18 +972,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_absolute_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/pr_EC-EARTH_RACMO22E_{scenario}_{year_period}_ts_ls_VFVGTAA.nc", - unit_english="%", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=800, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=800, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1057,18 +1057,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_annual_absolute_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/pr_EC-EARTH_RACMO22E_{scenario}_ts_ls_VFVGTAA.nc", - unit_english="mm", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=3200, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=3200, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1127,18 +1127,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_absolute_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/pr_EC-EARTH_RCA4_{scenario}_{year_period}_ts_ls_VFVGTAA.nc", - unit_english="%", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=800, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=800, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1209,18 +1209,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_annual_absolute_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/pr_EC-EARTH_RCA4_{scenario}_ts_ls_VFVGTAA.nc", - unit_english="mm", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=3200, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=3200, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1276,18 +1276,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_absolute_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/pr_HadGEM2-ES_RACMO22E_{scenario}_{year_period}_ts_ls_VFVGTAA.nc", - unit_english="%", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=800, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=800, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1361,18 +1361,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_annual_absolute_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/pr_HadGEM2-ES_RACMO22E_{scenario}_ts_ls_VFVGTAA.nc", - unit_english="mm", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=3200, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=3200, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1431,18 +1431,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_absolute_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/pr_MPI-ESM-LR_REMO2009_{scenario}_{year_period}_ts_ls_VFVGTAA.nc", - unit_english="%", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=800, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=800, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1516,18 +1516,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_annual_absolute_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/pr_MPI-ESM-LR_REMO2009_{scenario}_ts_ls_VFVGTAA.nc", - unit_english="mm", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=3200, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=3200, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1586,18 +1586,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_absolute_model_ensemble_upper_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr_stdup", wms_main_layer_name="pr_stdup", thredds_url_pattern="ensymbc/std/clipped/pr_stdup_{scenario}_{year_period}_ts19762100_ls_VFVGTAA.nc", - unit_english="mm", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=800, - data_precision=_DATA_PRECISION, + # unit_english="mm", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=800, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1669,18 +1669,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_absolute_model_ensemble_lower_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr_stddown", wms_main_layer_name="pr_stddown", thredds_url_pattern="ensymbc/std/clipped/pr_stddown_{scenario}_{year_period}_ts19762100_ls_VFVGTAA.nc", - unit_english="mm", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=800, - data_precision=_DATA_PRECISION, + # unit_english="mm", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=800, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1752,18 +1752,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_annual_absolute_model_ensemble_upper_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr_stdup", wms_main_layer_name="pr_stdup", thredds_url_pattern="ensymbc/std/clipped/pr_stdup_{scenario}_ts19762100_ls_VFVGTAA.nc", - unit_english="mm", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=3200, - data_precision=_DATA_PRECISION, + # unit_english="mm", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=3200, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1820,18 +1820,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_annual_absolute_model_ensemble_lower_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr_stddown", wms_main_layer_name="pr_stddown", thredds_url_pattern="ensymbc/std/clipped/pr_stddown_{scenario}_ts19762100_ls_VFVGTAA.nc", - unit_english="mm", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=3200, - data_precision=_DATA_PRECISION, + # unit_english="mm", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=3200, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1888,19 +1888,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_30yr_anomaly_seasonal_agree_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr-uncertainty_group", wms_secondary_layer_name="pr", thredds_url_pattern="ensembletwbc/std/clipped/pr_avgagree_percentage_{time_window}_{scenario}_{year_period}_VFVGTAA.nc", - unit_english="%", - palette="uncert-stippled/div-BrBG", - color_scale_min=-40, - color_scale_max=40, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="uncert-stippled/div-BrBG", + # color_scale_min=-40, + # color_scale_max=40, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1977,18 +1977,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_30yr_anomaly_seasonal_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="taspr5rcm/clipped/pr_EC-EARTH_CCLM4-8-17_{scenario}_seas_{time_window}_percentage_{year_period}_VFVGTAA.nc", - unit_english="%", - palette="default/div-BrBG", - color_scale_min=-40, - color_scale_max=40, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/div-BrBG", + # color_scale_min=-40, + # color_scale_max=40, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -2068,18 +2068,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_30yr_anomaly_seasonal_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="taspr5rcm/clipped/pr_EC-EARTH_RACMO22E_{scenario}_seas_{time_window}_percentage_{year_period}_VFVGTAA.nc", - unit_english="%", - palette="default/div-BrBG", - color_scale_min=-40, - color_scale_max=40, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/div-BrBG", + # color_scale_min=-40, + # color_scale_max=40, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -2159,18 +2159,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_30yr_anomaly_seasonal_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="taspr5rcm/clipped/pr_EC-EARTH_RCA4_{scenario}_seas_{time_window}_percentage_{year_period}_VFVGTAA.nc", - unit_english="%", - palette="default/div-BrBG", - color_scale_min=-40, - color_scale_max=40, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/div-BrBG", + # color_scale_min=-40, + # color_scale_max=40, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -2247,18 +2247,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_30yr_anomaly_seasonal_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="taspr5rcm/clipped/pr_HadGEM2-ES_RACMO22E_{scenario}_seas_{time_window}_percentage_{year_period}_VFVGTAA.nc", - unit_english="%", - palette="default/div-BrBG", - color_scale_min=-40, - color_scale_max=40, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/div-BrBG", + # color_scale_min=-40, + # color_scale_max=40, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -2338,18 +2338,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_30yr_anomaly_seasonal_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="taspr5rcm/clipped/pr_MPI-ESM-LR_REMO2009_{scenario}_seas_{time_window}_percentage_{year_period}_VFVGTAA.nc", - unit_english="%", - palette="default/div-BrBG", - color_scale_min=-40, - color_scale_max=40, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/div-BrBG", + # color_scale_min=-40, + # color_scale_max=40, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/r95ptot.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/r95ptot.py index 8ee4e641..281d3f91 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/r95ptot.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/r95ptot.py @@ -4,16 +4,16 @@ ConfigurationParameterPossibleValueCreate, ) -_DISPLAY_NAME_ENGLISH = "Extreme rainfall" -_DISPLAY_NAME_ITALIAN = "Precipitazione estrema" -_DESCRIPTION_ENGLISH = ( - "Total cumulative precipitation above the 95th percentile of the reference period" -) -_DESCRIPTION_ITALIAN = ( - "Precipitazioni cumulative totali superiori al 95° percentile del periodo di " - "riferimento" -) -_DATA_PRECISION = 0 +# _DISPLAY_NAME_ENGLISH = "Extreme rainfall" +# _DISPLAY_NAME_ITALIAN = "Precipitazione estrema" +# _DESCRIPTION_ENGLISH = ( +# "Total cumulative precipitation above the 95th percentile of the reference period" +# ) +# _DESCRIPTION_ITALIAN = ( +# "Precipitazioni cumulative totali superiori al 95° percentile del periodo di " +# "riferimento" +# ) +# _DATA_PRECISION = 0 def generate_configurations( @@ -23,19 +23,19 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="r95ptot_30yr_anomaly_seasonal_agree_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="r95ptot", wms_main_layer_name="r95ptot-uncertainty_group", wms_secondary_layer_name="r95ptot", thredds_url_pattern="ensembletwbc/std/clipped/pr_change_cumulative_check_avgagree_{time_window}_{scenario}_{year_period}_VFVGTAA.nc", - unit_english="%", - palette="uncert-stippled/div-BrBG", - color_scale_min=-160, - color_scale_max=160, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="uncert-stippled/div-BrBG", + # color_scale_min=-160, + # color_scale_max=160, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["r95ptot-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -112,18 +112,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="r95ptot_30yr_anomaly_seasonal_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="r95ptot", wms_main_layer_name="r95ptot", thredds_url_pattern="indici5rcm/clipped/pr_change_cumulative_EC-EARTH_CCLM4-8-17_{year_period}_{scenario}_{time_window}_VFVGTAA.nc", - unit_english="%", - palette="default/div-BrBG", - color_scale_min=-160, - color_scale_max=160, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/div-BrBG", + # color_scale_min=-160, + # color_scale_max=160, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["r95ptot-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -203,18 +203,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="r95ptot_30yr_anomaly_seasonal_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="r95ptot", wms_main_layer_name="r95ptot", thredds_url_pattern="indici5rcm/clipped/pr_change_cumulative_EC-EARTH_RACMO22E_{year_period}_{scenario}_{time_window}_VFVGTAA.nc", - unit_english="%", - palette="default/div-BrBG", - color_scale_min=-160, - color_scale_max=160, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/div-BrBG", + # color_scale_min=-160, + # color_scale_max=160, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["r95ptot-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -294,18 +294,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="r95ptot_30yr_anomaly_seasonal_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="r95ptot", wms_main_layer_name="r95ptot", thredds_url_pattern="indici5rcm/clipped/pr_change_cumulative_EC-EARTH_RCA4_{year_period}_{scenario}_{time_window}_VFVGTAA.nc", - unit_english="%", - palette="default/div-BrBG", - color_scale_min=-160, - color_scale_max=160, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/div-BrBG", + # color_scale_min=-160, + # color_scale_max=160, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["r95ptot-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -382,18 +382,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="r95ptot_30yr_anomaly_seasonal_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="r95ptot", wms_main_layer_name="r95ptot", thredds_url_pattern="indici5rcm/clipped/pr_change_cumulative_HadGEM2-ES_RACMO22E_{year_period}_{scenario}_{time_window}_VFVGTAA.nc", - unit_english="%", - palette="default/div-BrBG", - color_scale_min=-160, - color_scale_max=160, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/div-BrBG", + # color_scale_min=-160, + # color_scale_max=160, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["r95ptot-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -473,18 +473,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="r95ptot_30yr_anomaly_seasonal_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="r95ptot", wms_main_layer_name="r95ptot", thredds_url_pattern="indici5rcm/clipped/pr_change_cumulative_MPI-ESM-LR_REMO2009_{year_period}_{scenario}_{time_window}_VFVGTAA.nc", - unit_english="%", - palette="default/div-BrBG", - color_scale_min=-160, - color_scale_max=160, - data_precision=_DATA_PRECISION, + # unit_english="%", + # palette="default/div-BrBG", + # color_scale_min=-160, + # color_scale_max=160, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["r95ptot-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/snwdays.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/snwdays.py index d0ccf8aa..0ac4ef50 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/snwdays.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/snwdays.py @@ -4,16 +4,16 @@ ConfigurationParameterPossibleValueCreate, ) -_DISPLAY_NAME_ENGLISH = "Days with new snow" -_DISPLAY_NAME_ITALIAN = "Giorni di gelo" -_DESCRIPTION_ENGLISH = ( - "Maximum number of consecutive dry days (daily precipitation less than 1 mm)" -) -_DESCRIPTION_ITALIAN = ( - "Numero massimo di giorni asciutti consecutivi (precipitazioni giornaliere " - "inferiori a 1 mm)" -) -_DATA_PRECISION = 0 +# _DISPLAY_NAME_ENGLISH = "Days with new snow" +# _DISPLAY_NAME_ITALIAN = "Giorni di gelo" +# _DESCRIPTION_ENGLISH = ( +# "Maximum number of consecutive dry days (daily precipitation less than 1 mm)" +# ) +# _DESCRIPTION_ITALIAN = ( +# "Numero massimo di giorni asciutti consecutivi (precipitazioni giornaliere " +# "inferiori a 1 mm)" +# ) +# _DATA_PRECISION = 0 def generate_configurations( @@ -23,19 +23,19 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="snwdays_annual_absolute_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays", thredds_url_pattern="ensymbc/clipped/snwdays_1mm_2oc_avg_ts19762100_{scenario}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=100, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=100, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -87,19 +87,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_annual_absolute_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/snwdays_1mm_2oc_EC-EARTH_CCLM4-8-17_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=100, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=100, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -154,19 +154,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_annual_absolute_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/snwdays_1mm_2oc_EC-EARTH_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=100, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=100, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -221,19 +221,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_annual_absolute_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/snwdays_1mm_2oc_EC-EARTH_RCA4_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=100, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=100, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -285,19 +285,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_annual_absolute_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/snwdays_1mm_2oc_HadGEM2-ES_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=100, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=100, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -352,19 +352,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_annual_absolute_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/snwdays_1mm_2oc_MPI-ESM-LR_REMO2009_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=100, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=100, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -419,19 +419,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_annual_absolute_model_ensemble_upper_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays_stdup", wms_main_layer_name="snwdays_stdup", thredds_url_pattern="ensymbc/std/clipped/snwdays_1mm_2oc_stdup_ts19762100_{scenario}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=100, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=100, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -488,19 +488,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_annual_absolute_model_ensemble_lower_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays_stddown", wms_main_layer_name="snwdays_stddown", thredds_url_pattern="ensymbc/std/clipped/snwdays_1mm_2oc_stddown_ts19762100_{scenario}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-BuYl-inv", - color_scale_min=0, - color_scale_max=100, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-BuYl-inv", + # color_scale_min=0, + # color_scale_max=100, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -558,20 +558,20 @@ def generate_configurations( # --- CoverageConfigurationCreate( name="snwdays_30yr_anomaly_annual_agree_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays-uncertainty_group", wms_secondary_layer_name="snwdays", thredds_url_pattern="ensembletwbc/std/clipped/snwdays_an_1mm_2oc_avgagree_{time_window}_{scenario}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="uncert-stippled/seq-YlOrBr-inv", - color_scale_min=-50, - color_scale_max=0, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="uncert-stippled/seq-YlOrBr-inv", + # color_scale_min=-50, + # color_scale_max=0, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -633,19 +633,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_30yr_anomaly_annual_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays", thredds_url_pattern="indici5rcm/clipped/snwdays_an_1mm_2oc_EC-EARTH_CCLM4-8-17_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrBr-inv", - color_scale_min=-50, - color_scale_max=0, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrBr-inv", + # color_scale_min=-50, + # color_scale_max=0, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -710,19 +710,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_30yr_anomaly_annual_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays", thredds_url_pattern="indici5rcm/clipped/snwdays_an_1mm_2oc_EC-EARTH_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrBr-inv", - color_scale_min=-50, - color_scale_max=0, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrBr-inv", + # color_scale_min=-50, + # color_scale_max=0, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -787,19 +787,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_30yr_anomaly_annual_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays", thredds_url_pattern="indici5rcm/clipped/snwdays_an_1mm_2oc_EC-EARTH_RCA4_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrBr-inv", - color_scale_min=-50, - color_scale_max=0, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrBr-inv", + # color_scale_min=-50, + # color_scale_max=0, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -861,19 +861,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_30yr_anomaly_annual_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays", thredds_url_pattern="indici5rcm/clipped/snwdays_an_1mm_2oc_HadGEM2-ES_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrBr-inv", - color_scale_min=-50, - color_scale_max=0, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrBr-inv", + # color_scale_min=-50, + # color_scale_max=0, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -938,19 +938,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_30yr_anomaly_annual_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays", thredds_url_pattern="indici5rcm/clipped/snwdays_an_1mm_2oc_MPI-ESM-LR_REMO2009_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrBr-inv", - color_scale_min=-50, - color_scale_max=0, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrBr-inv", + # color_scale_min=-50, + # color_scale_max=0, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/su30.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/su30.py index 9d1e3f8b..af4f0534 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/su30.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/su30.py @@ -7,11 +7,11 @@ ConfigurationParameterPossibleValueCreate, ) -_DISPLAY_NAME_ENGLISH = "Hot days" -_DISPLAY_NAME_ITALIAN = "Giorni caldi" -_DESCRIPTION_ENGLISH = "Number of days with maximum temperature greater than 30 °C" -_DESCRIPTION_ITALIAN = "Numero di giorni con temperatura massima superiore a 30 °C" -_DATA_PRECISION = 0 +# _DISPLAY_NAME_ENGLISH = "Hot days" +# _DISPLAY_NAME_ITALIAN = "Giorni caldi" +# _DESCRIPTION_ENGLISH = "Number of days with maximum temperature greater than 30 °C" +# _DESCRIPTION_ITALIAN = "Numero di giorni con temperatura massima superiore a 30 °C" +# _DATA_PRECISION = 0 def generate_configurations( @@ -22,19 +22,19 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="su30_annual_absolute_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30", thredds_url_pattern="ensymbc/clipped/ecasu_30_avg_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=100, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=100, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -90,19 +90,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="su30_annual_absolute_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/ecasu_30_EC-EARTH_CCLM4-8-17_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=100, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=100, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -161,19 +161,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="su30_annual_absolute_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/ecasu_30_EC-EARTH_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=100, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=100, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -232,19 +232,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="su30_annual_absolute_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/ecasu_30_EC-EARTH_RCA4_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=100, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=100, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -300,19 +300,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="su30_annual_absolute_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/ecasu_30_HadGEM2-ES_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=100, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=100, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -371,19 +371,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="su30_annual_absolute_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/ecasu_30_MPI-ESM-LR_REMO2009_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=100, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=100, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -442,19 +442,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="su30_annual_absolute_model_ensemble_upper_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30_stdup", wms_main_layer_name="su30_stdup", thredds_url_pattern="ensymbc/std/clipped/ecasu_30_stdup_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=100, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=100, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -511,19 +511,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="su30_annual_absolute_model_ensemble_lower_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30_stddown", wms_main_layer_name="su30_stddown", thredds_url_pattern="ensymbc/std/clipped/ecasu_30_stddown_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=100, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=100, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -580,20 +580,20 @@ def generate_configurations( ), CoverageConfigurationCreate( name="su30_30yr_anomaly_annual_agree_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30-uncertainty_group", wms_secondary_layer_name="su30", thredds_url_pattern="ensembletwbc/std/clipped/ecasuan_30_avgagree_{time_window}_{scenario}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="uncert-stippled/seq-YlOrRd", - color_scale_min=-5, - color_scale_max=75, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="uncert-stippled/seq-YlOrRd", + # color_scale_min=-5, + # color_scale_max=75, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -655,19 +655,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="su30_30yr_anomaly_annual_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30", thredds_url_pattern="indici5rcm/clipped/ecasuan_30_EC-EARTH_CCLM4-8-17_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=-5, - color_scale_max=75, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=-5, + # color_scale_max=75, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -732,19 +732,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="su30_30yr_anomaly_annual_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30", thredds_url_pattern="indici5rcm/clipped/ecasuan_30_EC-EARTH_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=-5, - color_scale_max=75, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=-5, + # color_scale_max=75, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -809,19 +809,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="su30_30yr_anomaly_annual_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30", thredds_url_pattern="indici5rcm/clipped/ecasuan_30_EC-EARTH_RCA4_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=-5, - color_scale_max=75, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=-5, + # color_scale_max=75, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -883,19 +883,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="su30_30yr_anomaly_annual_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30", thredds_url_pattern="indici5rcm/clipped/ecasuan_30_HadGEM2-ES_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=-5, - color_scale_max=75, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=-5, + # color_scale_max=75, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -960,19 +960,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="su30_30yr_anomaly_annual_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30", thredds_url_pattern="indici5rcm/clipped/ecasuan_30_MPI-ESM-LR_REMO2009_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=-5, - color_scale_max=75, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=-5, + # color_scale_max=75, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tas.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tas.py index 3b2b96e0..1922f4b1 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tas.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tas.py @@ -7,11 +7,11 @@ ConfigurationParameterPossibleValueCreate, ) -_DISPLAY_NAME_ENGLISH = "Average temperature" -_DISPLAY_NAME_ITALIAN = "Temperatura media" -_DESCRIPTION_ENGLISH = "Average daily air temperature near the ground" -_DESCRIPTION_ITALIAN = "Temperatura media giornaliera dell'aria vicino al suolo" -_DATA_PRECISION = 1 +# _DISPLAY_NAME_ENGLISH = "Average temperature" +# _DISPLAY_NAME_ITALIAN = "Temperatura media" +# _DESCRIPTION_ENGLISH = "Average daily air temperature near the ground" +# _DESCRIPTION_ITALIAN = "Temperatura media giornaliera dell'aria vicino al suolo" +# _DATA_PRECISION = 1 def generate_configurations( @@ -22,18 +22,18 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="tas_seasonal_anomaly_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="ens5ym/clipped/tas_anom_pp_ts_{scenario}_{year_period}_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -100,18 +100,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_anomaly_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="EC-EARTH_CCLM4-8-17ym/clipped/tas_EC-EARTH_CCLM4-8-17_{scenario}_{year_period}_anomaly_pp_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -181,18 +181,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_anomaly_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="EC-EARTH_RACMO22Eym/clipped/tas_EC-EARTH_RACMO22E_{scenario}_{year_period}_anomaly_pp_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -262,18 +262,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_anomaly_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="EC-EARTH_RCA4ym/clipped/tas_EC-EARTH_RCA4_{scenario}_{year_period}_anomaly_pp_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -340,18 +340,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_anomaly_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="HadGEM2-ES_RACMO22Eym/clipped/tas_HadGEM2-ES_RACMO22E_{scenario}_{year_period}_anomaly_pp_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -421,18 +421,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_anomaly_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="MPI-ESM-LR_REMO2009ym/clipped/tas_MPI-ESM-LR_REMO2009_{scenario}_{year_period}_anomaly_pp_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -502,18 +502,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_anomaly_model_ensemble_upper_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas_stdup", wms_main_layer_name="tas_stdup", thredds_url_pattern="ens5ym/std/clipped/tas_anom_stdup_pp_ts_{scenario}_{year_period}_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=0, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=0, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -585,18 +585,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_anomaly_model_ensemble_lower_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas_stddown", wms_main_layer_name="tas_stddown", thredds_url_pattern="ens5ym/std/clipped/tas_anom_stddown_pp_ts_{scenario}_{year_period}_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=0, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=0, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -668,18 +668,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_absolute_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="ensymbc/clipped/tas_avg_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -750,18 +750,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_annual_absolute_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="ensymbc/clipped/tas_avg_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -817,18 +817,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_absolute_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/tas_EC-EARTH_CCLM4-8-17_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -902,18 +902,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_annual_absolute_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/tas_EC-EARTH_CCLM4-8-17_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -972,18 +972,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_absolute_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/tas_EC-EARTH_RACMO22E_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1057,18 +1057,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_annual_absolute_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/tas_EC-EARTH_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1127,18 +1127,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_absolute_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/tas_EC-EARTH_RCA4_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1209,18 +1209,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_annual_absolute_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/tas_EC-EARTH_RCA4_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1276,18 +1276,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_absolute_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/tas_HadGEM2-ES_RACMO22E_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1361,18 +1361,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_annual_absolute_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/tas_HadGEM2-ES_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1431,18 +1431,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_absolute_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/tas_MPI-ESM-LR_REMO2009_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1516,18 +1516,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_annual_absolute_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/tas_MPI-ESM-LR_REMO2009_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1586,18 +1586,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_absolute_model_ensemble_upper_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas_stdup", wms_main_layer_name="tas_stdup", thredds_url_pattern="ensymbc/std/clipped/tas_stdup_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1669,18 +1669,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_absolute_model_ensemble_lower_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas_stddown", wms_main_layer_name="tas_stddown", thredds_url_pattern="ensymbc/std/clipped/tas_stddown_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1752,18 +1752,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_annual_absolute_model_ensemble_upper_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas_stdup", wms_main_layer_name="tas_stdup", thredds_url_pattern="ensymbc/std/clipped/tas_stdup_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1820,18 +1820,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_annual_absolute_model_ensemble_lower_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas_stddown", wms_main_layer_name="tas_stddown", thredds_url_pattern="ensymbc/std/clipped/tas_stddown_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1888,19 +1888,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_30yr_anomaly_seasonal_agree_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas-uncertainty_group", wms_secondary_layer_name="tas", thredds_url_pattern="ensembletwbc/std/clipped/tas_avgagree_anom_{time_window}_{scenario}_{year_period}_VFVGTAA.nc", - unit_english="ºC", - palette="uncert-stippled/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="uncert-stippled/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1977,18 +1977,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_30yr_anomaly_seasonal_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="taspr5rcm/clipped/tas_EC-EARTH_CCLM4-8-17_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -2068,18 +2068,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_30yr_anomaly_seasonal_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="taspr5rcm/clipped/tas_EC-EARTH_RACMO22E_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -2159,18 +2159,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_30yr_anomaly_seasonal_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="taspr5rcm/clipped/tas_EC-EARTH_RCA4_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -2247,18 +2247,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_30yr_anomaly_seasonal_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="taspr5rcm/clipped/tas_HadGEM2-ES_RACMO22E_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -2338,18 +2338,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_30yr_anomaly_seasonal_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="taspr5rcm/clipped/tas_MPI-ESM-LR_REMO2009_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -2429,18 +2429,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_barometro_climatico", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="ensymbc/std/clipped/fldmean/tas_avg_{scenario}_ts19762100_ls_VFVG_fldmean.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -2472,18 +2472,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_barometro_climatico_lower_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas_stddown", wms_main_layer_name="tas_stddown", thredds_url_pattern="ensymbc/std/clipped/fldmean/tas_stddown_{scenario}_ts19762100_ls_VFVG_fldmean.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -2520,18 +2520,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_barometro_climatico_upper_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas_stdup", wms_main_layer_name="tas_stdup", thredds_url_pattern="ensymbc/std/clipped/fldmean/tas_stdup_{scenario}_ts19762100_ls_VFVG_fldmean.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmax.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmax.py index a331d9df..627bb11b 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmax.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmax.py @@ -7,11 +7,11 @@ ConfigurationParameterPossibleValueCreate, ) -_DISPLAY_NAME_ENGLISH = "Maximum temperature" -_DISPLAY_NAME_ITALIAN = "Temperatura massima" -_DESCRIPTION_ENGLISH = "Maximum daily air temperature near the ground" -_DESCRIPTION_ITALIAN = "Temperatura massima giornaliera dell'aria vicino al suolo" -_DATA_PRECISION = 1 +# _DISPLAY_NAME_ENGLISH = "Maximum temperature" +# _DISPLAY_NAME_ITALIAN = "Temperatura massima" +# _DESCRIPTION_ENGLISH = "Maximum daily air temperature near the ground" +# _DESCRIPTION_ITALIAN = "Temperatura massima giornaliera dell'aria vicino al suolo" +# _DATA_PRECISION = 1 def generate_configurations( @@ -22,18 +22,18 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="tasmax_seasonal_absolute_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="ensymbc/clipped/tasmax_avg_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # # unit_english="ºC", + # # palette="default/seq-YlOrRd", + # # color_scale_min=-3, + # # color_scale_max=32, + # # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -104,18 +104,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_annual_absolute_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="ensymbc/clipped/tasmax_avg_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -171,18 +171,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_seasonal_absolute_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/tasmax_EC-EARTH_CCLM4-8-17_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -256,18 +256,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_annual_absolute_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/tasmax_EC-EARTH_CCLM4-8-17_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=7, - color_scale_max=37, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=7, + # color_scale_max=37, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -326,18 +326,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_seasonal_absolute_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/tasmax_EC-EARTH_RACMO22E_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -411,18 +411,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_annual_absolute_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/tasmax_EC-EARTH_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=7, - color_scale_max=37, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=7, + # color_scale_max=37, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -481,18 +481,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_seasonal_absolute_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/tasmax_EC-EARTH_RCA4_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -563,18 +563,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_annual_absolute_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/tasmax_EC-EARTH_RCA4_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=7, - color_scale_max=37, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=7, + # color_scale_max=37, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -630,18 +630,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_seasonal_absolute_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/tasmax_HadGEM2-ES_RACMO22E_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -715,18 +715,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_annual_absolute_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/tasmax_HadGEM2-ES_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=7, - color_scale_max=37, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=7, + # color_scale_max=37, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -785,18 +785,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_seasonal_absolute_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/tasmax_MPI-ESM-LR_REMO2009_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -870,18 +870,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_annual_absolute_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/tasmax_MPI-ESM-LR_REMO2009_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=7, - color_scale_max=37, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=7, + # color_scale_max=37, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -940,18 +940,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_seasonal_absolute_model_ensemble_upper_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax_stdup", wms_main_layer_name="tasmax_stdup", thredds_url_pattern="ensymbc/std/clipped/tasmax_stdup_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=7, - color_scale_max=37, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=7, + # color_scale_max=37, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1023,18 +1023,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_seasonal_absolute_model_ensemble_lower_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax_stddown", wms_main_layer_name="tasmax_stddown", thredds_url_pattern="ensymbc/std/clipped/tasmax_stddown_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=7, - color_scale_max=37, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=7, + # color_scale_max=37, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1106,18 +1106,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_annual_absolute_model_ensemble_upper_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax_stdup", wms_main_layer_name="tasmax_stdup", thredds_url_pattern="ensymbc/std/clipped/tasmax_stdup_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=7, - color_scale_max=37, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=7, + # color_scale_max=37, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1174,18 +1174,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_annual_absolute_model_ensemble_lower_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax_stddown", wms_main_layer_name="tasmax_stddown", thredds_url_pattern="ensymbc/std/clipped/tasmax_stddown_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=7, - color_scale_max=37, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=7, + # color_scale_max=37, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1242,19 +1242,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_30yr_anomaly_seasonal_agree_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax-uncertainty_group", wms_secondary_layer_name="tasmax", thredds_url_pattern="ensembletwbc/std/clipped/tasmax_avgagree_anom_{time_window}_{scenario}_{year_period}_VFVGTAA.nc", - unit_english="ºC", - palette="uncert-stippled/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="uncert-stippled/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1331,18 +1331,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_30yr_anomaly_seasonal_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="taspr5rcm/clipped/tasmax_EC-EARTH_CCLM4-8-17_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1422,18 +1422,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_30yr_anomaly_seasonal_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="taspr5rcm/clipped/tasmax_EC-EARTH_RACMO22E_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1513,18 +1513,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_30yr_anomaly_seasonal_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="taspr5rcm/clipped/tasmax_EC-EARTH_RCA4_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1601,18 +1601,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_30yr_anomaly_seasonal_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="taspr5rcm/clipped/tasmax_HadGEM2-ES_RACMO22E_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1692,18 +1692,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_30yr_anomaly_seasonal_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="taspr5rcm/clipped/tasmax_MPI-ESM-LR_REMO2009_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmin.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmin.py index 07db4f06..c3334a12 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmin.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmin.py @@ -7,11 +7,11 @@ ConfigurationParameterPossibleValueCreate, ) -_DISPLAY_NAME_ENGLISH = "Minimum temperature" -_DISPLAY_NAME_ITALIAN = "Temperatura minima" -_DESCRIPTION_ENGLISH = "Minimum daily air temperature near the ground" -_DESCRIPTION_ITALIAN = "Temperatura minima giornaliera dell'aria vicino al suolo" -_DATA_PRECISION = 1 +# _DISPLAY_NAME_ENGLISH = "Minimum temperature" +# _DISPLAY_NAME_ITALIAN = "Temperatura minima" +# _DESCRIPTION_ENGLISH = "Minimum daily air temperature near the ground" +# _DESCRIPTION_ITALIAN = "Temperatura minima giornaliera dell'aria vicino al suolo" +# _DATA_PRECISION = 1 def generate_configurations( @@ -22,18 +22,18 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="tasmin_seasonal_absolute_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="ensymbc/clipped/tasmin_avg_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -104,18 +104,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_annual_absolute_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="ensymbc/clipped/tasmin_avg_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -171,18 +171,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_seasonal_absolute_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/tasmin_EC-EARTH_CCLM4-8-17_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -256,18 +256,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_annual_absolute_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/tasmin_EC-EARTH_CCLM4-8-17_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-13, - color_scale_max=27, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-13, + # color_scale_max=27, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -326,18 +326,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_seasonal_absolute_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/tasmin_EC-EARTH_RACMO22E_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -411,18 +411,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_annual_absolute_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/tasmin_EC-EARTH_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-13, - color_scale_max=27, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-13, + # color_scale_max=27, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -481,18 +481,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_seasonal_absolute_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/tasmin_EC-EARTH_RCA4_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -563,18 +563,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_annual_absolute_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/tasmin_EC-EARTH_RCA4_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-13, - color_scale_max=27, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-13, + # color_scale_max=27, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -630,18 +630,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_seasonal_absolute_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/tasmin_HadGEM2-ES_RACMO22E_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -715,18 +715,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_annual_absolute_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/tasmin_HadGEM2-ES_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-13, - color_scale_max=27, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-13, + # color_scale_max=27, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -785,18 +785,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_seasonal_absolute_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/tasmin_MPI-ESM-LR_REMO2009_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-3, - color_scale_max=32, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-3, + # color_scale_max=32, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -870,18 +870,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_annual_absolute_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/tasmin_MPI-ESM-LR_REMO2009_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-13, - color_scale_max=27, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-13, + # color_scale_max=27, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -940,18 +940,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_seasonal_absolute_model_ensemble_upper_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin_stdup", wms_main_layer_name="tasmin_stdup", thredds_url_pattern="ensymbc/std/clipped/tasmin_stdup_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-13, - color_scale_max=27, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-13, + # color_scale_max=27, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1023,18 +1023,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_seasonal_absolute_model_ensemble_lower_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin_stddown", wms_main_layer_name="tasmin_stddown", thredds_url_pattern="ensymbc/std/clipped/tasmin_stddown_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-13, - color_scale_max=27, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-13, + # color_scale_max=27, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1106,18 +1106,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_annual_absolute_model_ensemble_upper_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin_stdup", wms_main_layer_name="tasmin_stdup", thredds_url_pattern="ensymbc/std/clipped/tasmin_stdup_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-13, - color_scale_max=27, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-13, + # color_scale_max=27, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1174,18 +1174,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_annual_absolute_model_ensemble_lower_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin_stddown", wms_main_layer_name="tasmin_stddown", thredds_url_pattern="ensymbc/std/clipped/tasmin_stddown_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=-13, - color_scale_max=27, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=-13, + # color_scale_max=27, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1242,19 +1242,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_30yr_anomaly_seasonal_agree_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin-uncertainty_group", wms_secondary_layer_name="tasmin", thredds_url_pattern="ensembletwbc/std/clipped/tasmin_avgagree_anom_{time_window}_{scenario}_{year_period}_VFVGTAA.nc", - unit_english="ºC", - palette="uncert-stippled/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="uncert-stippled/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1331,18 +1331,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_30yr_anomaly_seasonal_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="taspr5rcm/clipped/tasmin_EC-EARTH_CCLM4-8-17_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1422,18 +1422,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_30yr_anomaly_seasonal_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="taspr5rcm/clipped/tasmin_EC-EARTH_RACMO22E_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1513,18 +1513,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_30yr_anomaly_seasonal_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="taspr5rcm/clipped/tasmin_EC-EARTH_RCA4_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1601,18 +1601,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_30yr_anomaly_seasonal_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="taspr5rcm/clipped/tasmin_HadGEM2-ES_RACMO22E_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1692,18 +1692,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_30yr_anomaly_seasonal_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="taspr5rcm/clipped/tasmin_MPI-ESM-LR_REMO2009_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - unit_english="ºC", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=6, - data_precision=_DATA_PRECISION, + # unit_english="ºC", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=6, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tr.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tr.py index 7f4199c8..3022eb4c 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tr.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tr.py @@ -7,11 +7,11 @@ ConfigurationParameterPossibleValueCreate, ) -_DISPLAY_NAME_ENGLISH = "Tropical nights" -_DISPLAY_NAME_ITALIAN = "Notti tropicali" -_DESCRIPTION_ENGLISH = "Number of days with minimum temperature greater than 20 °C" -_DESCRIPTION_ITALIAN = "Numero di giorni con temperatura minima superiore a 20 °C" -_DATA_PRECISION = 0 +# _DISPLAY_NAME_ENGLISH = "Tropical nights" +# _DISPLAY_NAME_ITALIAN = "Notti tropicali" +# _DESCRIPTION_ENGLISH = "Number of days with minimum temperature greater than 20 °C" +# _DESCRIPTION_ITALIAN = "Numero di giorni con temperatura minima superiore a 20 °C" +# _DATA_PRECISION = 0 def generate_configurations( @@ -22,19 +22,19 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="tr_annual_absolute_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr", thredds_url_pattern="ensymbc/clipped/ecatr_20_avg_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=120, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=120, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -90,19 +90,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tr_annual_absolute_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/ecatr_20_EC-EARTH_CCLM4-8-17_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=120, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=120, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -161,19 +161,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tr_annual_absolute_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/ecatr_20_EC-EARTH_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=120, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=120, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -232,19 +232,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tr_annual_absolute_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/ecatr_20_EC-EARTH_RCA4_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=120, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=120, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -300,19 +300,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tr_annual_absolute_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/ecatr_20_HadGEM2-ES_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=120, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=120, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -371,19 +371,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tr_annual_absolute_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/ecatr_20_MPI-ESM-LR_REMO2009_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=120, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=120, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -442,19 +442,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tr_annual_absolute_model_ensemble_upper_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr_stdup", wms_main_layer_name="tr_stdup", thredds_url_pattern="ensymbc/std/clipped/ecatr_20_stdup_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=100, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=100, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -511,19 +511,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tr_annual_absolute_model_ensemble_lower_uncertainty", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr_stddown", wms_main_layer_name="tr_stddown", thredds_url_pattern="ensymbc/std/clipped/ecatr_20_stddown_{scenario}_ts19762100_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=0, - color_scale_max=100, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=0, + # color_scale_max=100, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -580,20 +580,20 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tr_30yr_anomaly_annual_agree_model_ensemble", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr-uncertainty_group", wms_secondary_layer_name="tr", thredds_url_pattern="ensembletwbc/std/clipped/ecatran_20_avgagree_{time_window}_{scenario}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="uncert-stippled/seq-YlOrRd", - color_scale_min=-5, - color_scale_max=75, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="uncert-stippled/seq-YlOrRd", + # color_scale_min=-5, + # color_scale_max=75, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -655,19 +655,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tr_30yr_anomaly_annual_model_ec_earth_cclm4_8_17", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr", thredds_url_pattern="indici5rcm/clipped/ecatran_20_EC-EARTH_CCLM4-8-17_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=-5, - color_scale_max=75, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=-5, + # color_scale_max=75, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -732,19 +732,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tr_30yr_anomaly_annual_model_ec_earth_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr", thredds_url_pattern="indici5rcm/clipped/ecatran_20_EC-EARTH_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=-5, - color_scale_max=75, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=-5, + # color_scale_max=75, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -809,19 +809,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tr_30yr_anomaly_annual_model_ec_earth_rca4", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr", thredds_url_pattern="indici5rcm/clipped/ecatran_20_EC-EARTH_RCA4_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=-5, - color_scale_max=75, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=-5, + # color_scale_max=75, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -883,19 +883,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tr_30yr_anomaly_annual_model_hadgem2_es_racmo22e", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr", thredds_url_pattern="indici5rcm/clipped/ecatran_20_HadGEM2-ES_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=-5, - color_scale_max=75, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=-5, + # color_scale_max=75, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -960,19 +960,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tr_30yr_anomaly_annual_model_mpi_esm_lr_remo2009", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr", thredds_url_pattern="indici5rcm/clipped/ecatran_20_MPI-ESM-LR_REMO2009_{scenario}_{time_window}_ls_VFVG.nc", - unit_english="days", - unit_italian="gg", - palette="default/seq-YlOrRd", - color_scale_min=-5, - color_scale_max=75, - data_precision=_DATA_PRECISION, + # unit_english="days", + # unit_italian="gg", + # palette="default/seq-YlOrRd", + # color_scale_min=-5, + # color_scale_max=75, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/cdds.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/cdds.py index 254e1f29..d34e71b3 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/cdds.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/cdds.py @@ -4,22 +4,22 @@ ConfigurationParameterPossibleValueCreate, ) -_DISPLAY_NAME_ENGLISH = "Cooling degree days" -_DISPLAY_NAME_ITALIAN = "Gradi giorno di raffrescamento" -_DESCRIPTION_ENGLISH = ( - "Sum of the average daily temperature minus 21°C if the average " - "daily temperature is greater than 24°C." -) -_DESCRIPTION_ITALIAN = ( - "Somma della temperatura media giornaliera meno 21°C se la " - "temperatura media giornaliera è maggiore di 24°C." -) +# _DISPLAY_NAME_ENGLISH = "Cooling degree days" +# _DISPLAY_NAME_ITALIAN = "Gradi giorno di raffrescamento" +# _DESCRIPTION_ENGLISH = ( +# "Sum of the average daily temperature minus 21°C if the average " +# "daily temperature is greater than 24°C." +# ) +# _DESCRIPTION_ITALIAN = ( +# "Somma della temperatura media giornaliera meno 21°C se la " +# "temperatura media giornaliera è maggiore di 24°C." +# ) +# # _VARIABLE = "cdds" +# _UNIT = "ºC" +# _COLOR_SCALE_MIN = 0 +# _COLOR_SCALE_MAX = 320 +# _DATA_PRECISION = 0 _ARCHIVE = "historical" -# _VARIABLE = "cdds" -_UNIT = "ºC" -_COLOR_SCALE_MIN = 0 -_COLOR_SCALE_MAX = 320 -_DATA_PRECISION = 0 def generate_configurations( @@ -30,18 +30,18 @@ def generate_configurations( cov_confs = [ CoverageConfigurationCreate( name="cdds_30yr", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="{historical_year_period}_avg", wms_main_layer_name="{historical_year_period}_avg", thredds_url_pattern="cline_30yr/CDD_jrc_{climatological_standard_normal}.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -78,18 +78,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_annual_yearly", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="CDD_jrc", wms_main_layer_name="CDD_jrc", thredds_url_pattern="cline_yr/CDD_jrc_{historical_year_period}_*.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/fd.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/fd.py index 774edeaa..1f834ba2 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/fd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/fd.py @@ -7,18 +7,18 @@ ConfigurationParameterPossibleValueCreate, ) -_DISPLAY_NAME_ENGLISH = "Frosty days" -_DISPLAY_NAME_ITALIAN = "Giorni di gelo" -_DESCRIPTION_ENGLISH = "Number of days with minimum temperature below 0°C" -_DESCRIPTION_ITALIAN = "Numero di giorni con temperatura minima minore di 0°C" -_ARCHIVE = "historical" -# _VARIABLE = "fd" -_UNIT_ENGLISH = "days" -_UNIT_ITALIAN = "gg" -_COLOR_SCALE_MIN = 0 -_COLOR_SCALE_MAX = 260 +# _DISPLAY_NAME_ENGLISH = "Frosty days" +# _DISPLAY_NAME_ITALIAN = "Giorni di gelo" +# _DESCRIPTION_ENGLISH = "Number of days with minimum temperature below 0°C" +# _DESCRIPTION_ITALIAN = "Numero di giorni con temperatura minima minore di 0°C" +# # _VARIABLE = "fd" +# _UNIT_ENGLISH = "days" +# _UNIT_ITALIAN = "gg" +# _COLOR_SCALE_MIN = 0 +# _COLOR_SCALE_MAX = 260 +# _DATA_PRECISION = 0 _RELATED_OBSERVATION_VARIABLE_NAME = "FD" -_DATA_PRECISION = 0 +_ARCHIVE = "historical" def generate_configurations( @@ -29,19 +29,19 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="fd_30yr", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="{historical_year_period}_avg", wms_main_layer_name="{historical_year_period}_avg", thredds_url_pattern="cline_30yr/FD_{climatological_standard_normal}.nc", - unit_english=_UNIT_ENGLISH, - unit_italian=_UNIT_ITALIAN, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT_ENGLISH, + # unit_italian=_UNIT_ITALIAN, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -78,19 +78,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="fd_annual_yearly", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="FD", wms_main_layer_name="FD", thredds_url_pattern="cline_yr/FD_{historical_year_period}_*.nc", - unit_english=_UNIT_ENGLISH, - unit_italian=_UNIT_ITALIAN, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT_ENGLISH, + # unit_italian=_UNIT_ITALIAN, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/hdds.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/hdds.py index c0e57aae..af807746 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/hdds.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/hdds.py @@ -4,22 +4,22 @@ ConfigurationParameterPossibleValueCreate, ) -_DISPLAY_NAME_ENGLISH = "Heating degree days" -_DISPLAY_NAME_ITALIAN = "Gradi giorno di riscaldamento" -_DESCRIPTION_ENGLISH = ( - "Sum of 20°C minus the average daily temperature if the " - "average daily temperature is less than 20°C." -) -_DESCRIPTION_ITALIAN = ( - "Somma di 20°C meno la temperatura media giornaliera se la " - "temperatura media giornaliera è minore di 20°C." -) +# _DISPLAY_NAME_ENGLISH = "Heating degree days" +# _DISPLAY_NAME_ITALIAN = "Gradi giorno di riscaldamento" +# _DESCRIPTION_ENGLISH = ( +# "Sum of 20°C minus the average daily temperature if the " +# "average daily temperature is less than 20°C." +# ) +# _DESCRIPTION_ITALIAN = ( +# "Somma di 20°C meno la temperatura media giornaliera se la " +# "temperatura media giornaliera è minore di 20°C." +# ) +# # _VARIABLE = "hdds" +# _UNIT = "ºC" +# _COLOR_SCALE_MIN = 2130 +# _COLOR_SCALE_MAX = 7800 +# _DATA_PRECISION = 0 _ARCHIVE = "historical" -# _VARIABLE = "hdds" -_UNIT = "ºC" -_COLOR_SCALE_MIN = 2130 -_COLOR_SCALE_MAX = 7800 -_DATA_PRECISION = 0 def generate_configurations( @@ -30,18 +30,18 @@ def generate_configurations( cov_confs = [ CoverageConfigurationCreate( name="hdds_30yr", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="{historical_year_period}_avg", wms_main_layer_name="{historical_year_period}_avg", thredds_url_pattern="cline_30yr/HDD_it_{climatological_standard_normal}.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -78,18 +78,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_annual_yearly", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="HDD_it", wms_main_layer_name="HDD_it", thredds_url_pattern="cline_yr/HDD_it_{historical_year_period}_*.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/prcptot.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/prcptot.py index 505dd4b3..7bdff1cd 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/prcptot.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/prcptot.py @@ -7,17 +7,17 @@ ConfigurationParameterPossibleValueCreate, ) -_DISPLAY_NAME_ENGLISH = "Precipitation" -_DISPLAY_NAME_ITALIAN = "Precipitazione" -_DESCRIPTION_ENGLISH = "Daily precipitation near the ground" -_DESCRIPTION_ITALIAN = "Precipitazione giornaliera vicino al suolo" -_ARCHIVE = "historical" -# _VARIABLE = "prcptot" -_UNIT = "mm" -_COLOR_SCALE_MIN = 300 -_COLOR_SCALE_MAX = 1300 -_DATA_PRECISION = 0 +# _DISPLAY_NAME_ENGLISH = "Precipitation" +# _DISPLAY_NAME_ITALIAN = "Precipitazione" +# _DESCRIPTION_ENGLISH = "Daily precipitation near the ground" +# _DESCRIPTION_ITALIAN = "Precipitazione giornaliera vicino al suolo" +# # _VARIABLE = "prcptot" +# _UNIT = "mm" +# _COLOR_SCALE_MIN = 300 +# _COLOR_SCALE_MAX = 1300 +# _DATA_PRECISION = 0 _RELATED_OBSERVATION_VARIABLE_NAME = "PRCPTOT" +_ARCHIVE = "historical" def generate_configurations( @@ -28,18 +28,18 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="prcptot_30yr", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="{historical_year_period}_avg", wms_main_layer_name="{historical_year_period}_avg", thredds_url_pattern="cline_30yr/PRCPTOT_{climatological_standard_normal}.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -156,18 +156,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="prcptot_annual_yearly", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="PRCPTOT", wms_main_layer_name="PRCPTOT", thredds_url_pattern="cline_yr/PRCPTOT_{historical_year_period}_*.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -205,18 +205,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="prcptot_annual_seasonal", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="PRCPTOT", wms_main_layer_name="PRCPTOT", thredds_url_pattern="cline_yr/PRCPTOT_{historical_year_period}_*.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -269,18 +269,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="prcptot_annual_monthly", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="PRCPTOT", wms_main_layer_name="PRCPTOT", thredds_url_pattern="cline_yr/PRCPTOT_{historical_year_period}_*.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/su30.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/su30.py index 392c9f9a..055880d8 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/su30.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/su30.py @@ -7,18 +7,18 @@ ConfigurationParameterPossibleValueCreate, ) -_DISPLAY_NAME_ENGLISH = "Hot days" -_DISPLAY_NAME_ITALIAN = "Giorni caldi" -_DESCRIPTION_ENGLISH = "Number of days with maximum temperature above 30°C" -_DESCRIPTION_ITALIAN = "Numero di giorni con temperatura massima maggiore di 30°C" -_ARCHIVE = "historical" -# _VARIABLE = "su30" -_UNIT_ENGLISH = "days" -_UNIT_ITALIAN = "gg" -_COLOR_SCALE_MIN = 0 -_COLOR_SCALE_MAX = 80 +# _DISPLAY_NAME_ENGLISH = "Hot days" +# _DISPLAY_NAME_ITALIAN = "Giorni caldi" +# _DESCRIPTION_ENGLISH = "Number of days with maximum temperature above 30°C" +# _DESCRIPTION_ITALIAN = "Numero di giorni con temperatura massima maggiore di 30°C" +# # _VARIABLE = "su30" +# _UNIT_ENGLISH = "days" +# _UNIT_ITALIAN = "gg" +# _COLOR_SCALE_MIN = 0 +# _COLOR_SCALE_MAX = 80 +# _DATA_PRECISION = 0 _RELATED_OBSERVATION_VARIABLE_NAME = "SU30" -_DATA_PRECISION = 0 +_ARCHIVE = "historical" def generate_configurations( @@ -29,19 +29,19 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="su30_30yr", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="{historical_year_period}_avg", wms_main_layer_name="{historical_year_period}_avg", thredds_url_pattern="cline_30yr/SU30_{climatological_standard_normal}.nc", - unit_english=_UNIT_ENGLISH, - unit_italian=_UNIT_ITALIAN, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT_ENGLISH, + # unit_italian=_UNIT_ITALIAN, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -78,19 +78,19 @@ def generate_configurations( ), CoverageConfigurationCreate( name="su30_annual_yearly", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="SU30", wms_main_layer_name="SU30", thredds_url_pattern="cline_yr/SU30_{historical_year_period}_*.nc", - palette="default/seq-YlOrRd", - unit_english=_UNIT_ENGLISH, - unit_italian=_UNIT_ITALIAN, - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT_ENGLISH, + # unit_italian=_UNIT_ITALIAN, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tdd.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tdd.py index 8bc302d6..fa6de938 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tdd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tdd.py @@ -7,17 +7,17 @@ ConfigurationParameterPossibleValueCreate, ) -_DISPLAY_NAME_ENGLISH = "Average temperature" -_DISPLAY_NAME_ITALIAN = "Temperatura media" -_DESCRIPTION_ENGLISH = "Average of average temperatures" -_DESCRIPTION_ITALIAN = "Media delle temperature medie" -_ARCHIVE = "historical" -# _VARIABLE = "tdd" -_UNIT = "ºC" -_COLOR_SCALE_MIN = -5 -_COLOR_SCALE_MAX = 20 +# _DISPLAY_NAME_ENGLISH = "Average temperature" +# _DISPLAY_NAME_ITALIAN = "Temperatura media" +# _DESCRIPTION_ENGLISH = "Average of average temperatures" +# _DESCRIPTION_ITALIAN = "Media delle temperature medie" +# # _VARIABLE = "tdd" +# _UNIT = "ºC" +# _COLOR_SCALE_MIN = -5 +# _COLOR_SCALE_MAX = 20 +# _DATA_PRECISION = 1 _RELATED_OBSERVATION_VARIABLE_NAME = "TDd" -_DATA_PRECISION = 1 +_ARCHIVE = "historical" def generate_configurations( @@ -28,18 +28,18 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="tdd_30yr", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="{historical_year_period}_avg", wms_main_layer_name="{historical_year_period}_avg", thredds_url_pattern="cline_30yr/TDd_{climatological_standard_normal}.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -156,18 +156,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tdd_annual_yearly", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="TDd", wms_main_layer_name="TDd", thredds_url_pattern="cline_yr/TDd_{historical_year_period}_*.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -205,18 +205,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tdd_annual_seasonal", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="TDd", wms_main_layer_name="TDd", thredds_url_pattern="cline_yr/TDd_{historical_year_period}_*.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -269,18 +269,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tdd_annual_monthly", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="TDd", wms_main_layer_name="TDd", thredds_url_pattern="cline_yr/TDd_{historical_year_period}_*.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -373,18 +373,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tdd_barometro_climatico", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="TDd", wms_main_layer_name="TDd", thredds_url_pattern="cline_yr/fldmean/TDd_A00_*.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tnd.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tnd.py index 0f45b34c..0f4e4686 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tnd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tnd.py @@ -7,17 +7,17 @@ ConfigurationParameterPossibleValueCreate, ) -_DISPLAY_NAME_ENGLISH = "Minimum temperature" -_DISPLAY_NAME_ITALIAN = "Temperatura minima" -_DESCRIPTION_ENGLISH = "Average of minimum temperatures" -_DESCRIPTION_ITALIAN = "Media delle temperature minime" -_ARCHIVE = "historical" -# _VARIABLE = "tnd" -_UNIT = "ºC" -_COLOR_SCALE_MIN = -5 -_COLOR_SCALE_MAX = 20 +# _DISPLAY_NAME_ENGLISH = "Minimum temperature" +# _DISPLAY_NAME_ITALIAN = "Temperatura minima" +# _DESCRIPTION_ENGLISH = "Average of minimum temperatures" +# _DESCRIPTION_ITALIAN = "Media delle temperature minime" +# # _VARIABLE = "tnd" +# _UNIT = "ºC" +# _COLOR_SCALE_MIN = -5 +# _COLOR_SCALE_MAX = 20 +# _DATA_PRECISION = 1 _RELATED_OBSERVATION_VARIABLE_NAME = "TNd" -_DATA_PRECISION = 1 +_ARCHIVE = "historical" def generate_configurations( @@ -28,18 +28,18 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="tnd_30yr", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="{historical_year_period}_avg", wms_main_layer_name="{historical_year_period}_avg", thredds_url_pattern="cline_30yr/TNd_{climatological_standard_normal}.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -156,18 +156,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tnd_annual_yearly", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="TNd", wms_main_layer_name="TNd", thredds_url_pattern="cline_yr/TNd_{historical_year_period}_*.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -205,18 +205,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tnd_annual_seasonal", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="TNd", wms_main_layer_name="TNd", thredds_url_pattern="cline_yr/TNd_{historical_year_period}_*.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -269,18 +269,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tnd_annual_monthly", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="TNd", wms_main_layer_name="TNd", thredds_url_pattern="cline_yr/TNd_{historical_year_period}_*.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tr.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tr.py index c0cb9423..01f297aa 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tr.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tr.py @@ -7,17 +7,17 @@ ConfigurationParameterPossibleValueCreate, ) -_DISPLAY_NAME_ENGLISH = "Tropical nights" -_DISPLAY_NAME_ITALIAN = "Notti tropicali" -_DESCRIPTION_ENGLISH = "Number of days with minimum temperature higher than 20°C" -_DESCRIPTION_ITALIAN = "Numero di giorni con temperatura minima maggiore di 20°C" -_ARCHIVE = "historical" -# _VARIABLE = "tr" -_UNIT = "gg" -_COLOR_SCALE_MIN = 0 -_COLOR_SCALE_MAX = 50 +# _DISPLAY_NAME_ENGLISH = "Tropical nights" +# _DISPLAY_NAME_ITALIAN = "Notti tropicali" +# _DESCRIPTION_ENGLISH = "Number of days with minimum temperature higher than 20°C" +# _DESCRIPTION_ITALIAN = "Numero di giorni con temperatura minima maggiore di 20°C" +# # _VARIABLE = "tr" +# _UNIT = "gg" +# _COLOR_SCALE_MIN = 0 +# _COLOR_SCALE_MAX = 50 +# _DATA_PRECISION = 0 _RELATED_OBSERVATION_VARIABLE_NAME = "TR" -_DATA_PRECISION = 0 +_ARCHIVE = "historical" def generate_configurations( @@ -28,18 +28,18 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="tr_30yr", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="{historical_year_period}_avg", wms_main_layer_name="{historical_year_period}_avg", thredds_url_pattern="cline_30yr/TR_{climatological_standard_normal}.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -76,18 +76,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tr_annual_yearly", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="TR", wms_main_layer_name="TR", thredds_url_pattern="cline_yr/TR_{historical_year_period}_*.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/txd.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/txd.py index b5566a9f..e43b9389 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/txd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/txd.py @@ -7,17 +7,17 @@ ConfigurationParameterPossibleValueCreate, ) -_DISPLAY_NAME_ENGLISH = "Maximum temperature" -_DISPLAY_NAME_ITALIAN = "Temperatura massima" -_DESCRIPTION_ENGLISH = "Average of maximum temperatures" -_DESCRIPTION_ITALIAN = "Media delle temperature massime" -_ARCHIVE = "historical" -# _VARIABLE = "txd" -_UNIT = "ºC" -_COLOR_SCALE_MIN = -5 -_COLOR_SCALE_MAX = 20 +# _DISPLAY_NAME_ENGLISH = "Maximum temperature" +# _DISPLAY_NAME_ITALIAN = "Temperatura massima" +# _DESCRIPTION_ENGLISH = "Average of maximum temperatures" +# _DESCRIPTION_ITALIAN = "Media delle temperature massime" +# # _VARIABLE = "txd" +# _UNIT = "ºC" +# _COLOR_SCALE_MIN = -5 +# _COLOR_SCALE_MAX = 20 +# _DATA_PRECISION = 1 _RELATED_OBSERVATION_VARIABLE_NAME = "TXd" -_DATA_PRECISION = 1 +_ARCHIVE = "historical" def generate_configurations( @@ -28,18 +28,18 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="txd_30yr", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="{historical_year_period}_avg", wms_main_layer_name="{historical_year_period}_avg", thredds_url_pattern="cline_30yr/TXd_{climatological_standard_normal}.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -156,18 +156,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="txd_annual_yearly", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="TXd", wms_main_layer_name="TXd", thredds_url_pattern="cline_yr/TXd_{historical_year_period}_*.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -205,18 +205,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="txd_annual_seasonal", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="TXd", wms_main_layer_name="TXd", thredds_url_pattern="cline_yr/TXd_{historical_year_period}_*.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -269,18 +269,18 @@ def generate_configurations( ), CoverageConfigurationCreate( name="txd_annual_monthly", - display_name_english=_DISPLAY_NAME_ENGLISH, - display_name_italian=_DISPLAY_NAME_ITALIAN, - description_english=_DESCRIPTION_ENGLISH, - description_italian=_DESCRIPTION_ITALIAN, + # display_name_english=_DISPLAY_NAME_ENGLISH, + # display_name_italian=_DISPLAY_NAME_ITALIAN, + # description_english=_DESCRIPTION_ENGLISH, + # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="TXd", wms_main_layer_name="TXd", thredds_url_pattern="cline_yr/TXd_{historical_year_period}_*.nc", - unit_english=_UNIT, - palette="default/seq-YlOrRd", - color_scale_min=_COLOR_SCALE_MIN, - color_scale_max=_COLOR_SCALE_MAX, - data_precision=_DATA_PRECISION, + # unit_english=_UNIT, + # palette="default/seq-YlOrRd", + # color_scale_min=_COLOR_SCALE_MIN, + # color_scale_max=_COLOR_SCALE_MAX, + # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( From ff3c18a7e7a02ae7e85837680e94e549a49de2b6 Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Silva Date: Thu, 7 Nov 2024 16:35:53 +0000 Subject: [PATCH 13/22] Removed filtering cov conf by display name --- arpav_ppcv/database.py | 6 ------ arpav_ppcv/webapp/api_v2/schemas/coverages.py | 2 ++ 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/arpav_ppcv/database.py b/arpav_ppcv/database.py index da53e344..3dbe6e93 100644 --- a/arpav_ppcv/database.py +++ b/arpav_ppcv/database.py @@ -1035,8 +1035,6 @@ def list_coverage_configurations( def collect_all_coverage_configurations( session: sqlmodel.Session, name_filter: Optional[str] = None, - english_display_name_filter: Optional[str] = None, - italian_display_name_filter: Optional[str] = None, configuration_parameter_values_filter: Optional[ list[coverages.ConfigurationParameterValue] ] = None, @@ -1047,8 +1045,6 @@ def collect_all_coverage_configurations( limit=1, include_total=True, name_filter=name_filter, - english_display_name_filter=english_display_name_filter, - italian_display_name_filter=italian_display_name_filter, configuration_parameter_values_filter=configuration_parameter_values_filter, climatic_indicator_filter=climatic_indicator_filter, ) @@ -1057,8 +1053,6 @@ def collect_all_coverage_configurations( limit=num_total, include_total=False, name_filter=name_filter, - english_display_name_filter=english_display_name_filter, - italian_display_name_filter=italian_display_name_filter, configuration_parameter_values_filter=configuration_parameter_values_filter, climatic_indicator_filter=climatic_indicator_filter, ) diff --git a/arpav_ppcv/webapp/api_v2/schemas/coverages.py b/arpav_ppcv/webapp/api_v2/schemas/coverages.py index 17c52ff8..a79f14d9 100644 --- a/arpav_ppcv/webapp/api_v2/schemas/coverages.py +++ b/arpav_ppcv/webapp/api_v2/schemas/coverages.py @@ -151,6 +151,8 @@ def from_db_instance( ) return cls( **instance.model_dump(), + display_name_english=instance.climatic_indicator.display_name_english, + display_name_italian=instance.climatic_indicator.display_name_italian, description_english=instance.climatic_indicator.description_english, description_italian=instance.climatic_indicator.description_italian, unit_english=instance.climatic_indicator.unit_english, From 023c8bfa646a10bec77fe368900c54fabd5642b9 Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Silva Date: Thu, 7 Nov 2024 18:46:01 +0000 Subject: [PATCH 14/22] Fixing failing tests (wip) --- tests/conftest.py | 24 ++++++++- tests/test_database.py | 28 ++++------- tests/test_operations.py | 24 ++++----- tests/test_webapp_v2_routers_coverages.py | 61 ++++++++++++----------- 4 files changed, 75 insertions(+), 62 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 9d0322c1..840b288b 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -29,6 +29,9 @@ from arpav_ppcv.bootstrapper.configurationparameters import ( generate_configuration_parameters as bootstrappable_configuration_parameters, ) +from arpav_ppcv.bootstrapper.climaticindicators import ( + tas as tas_climatic_indicators_bootstrappable_configurations, +) from arpav_ppcv.bootstrapper.coverage_configurations.forecast import ( tas as tas_forecast_bootstrappable_configurations, ) @@ -261,8 +264,9 @@ def sample_configuration_parameters(arpav_db_session): @pytest.fixture() def sample_coverage_configurations( - arpav_db_session, sample_configuration_parameters + arpav_db_session, sample_real_climatic_indicators, sample_configuration_parameters ) -> list[coverages.CoverageConfiguration]: + some_climatic_indicator = sample_real_climatic_indicators[0] db_cov_confs = [] for i in range(10): params_to_use = random.sample(sample_configuration_parameters, k=2) @@ -282,7 +286,7 @@ def sample_coverage_configurations( f"{random.choice(param_values_to_use).configuration_parameter_value.configuration_parameter.name}" f"}}" ), - palette="fake", + climatic_indicator_id=some_climatic_indicator.id, possible_values=param_values_to_use, ) ) @@ -294,16 +298,31 @@ def sample_coverage_configurations( return db_cov_confs +@pytest.fixture() +def sample_real_climatic_indicators( + arpav_db_session, +): + to_create = tas_climatic_indicators_bootstrappable_configurations.generate_climatic_indicators() + created = [] + for clim_ind_to_create in to_create: + created.append( + database.create_climatic_indicator(arpav_db_session, clim_ind_to_create) + ) + return created + + @pytest.fixture() def sample_real_coverage_configurations( arpav_db_session, sample_real_configuration_parameters, + sample_real_climatic_indicators, sample_real_variables, ): all_vars = database.collect_all_variables(arpav_db_session) all_conf_param_values = database.collect_all_configuration_parameter_values( arpav_db_session ) + all_climatic_indicators = database.collect_all_climatic_indicators(arpav_db_session) cov_confs_to_create = ( tas_forecast_bootstrappable_configurations.generate_configurations( conf_param_values={ @@ -311,6 +330,7 @@ def sample_real_coverage_configurations( for pv in all_conf_param_values }, variables={v.name: v for v in all_vars}, + climatic_indicators={i.identifier: i.id for i in all_climatic_indicators}, ) ) created_cov_confs = {} diff --git a/tests/test_database.py b/tests/test_database.py index 40f4e998..da338d4b 100644 --- a/tests/test_database.py +++ b/tests/test_database.py @@ -181,19 +181,18 @@ def test_list_monthly_measurements( ) def test_create_coverage_configuration_simple( arpav_db_session, + sample_real_climatic_indicators, name, thredds_url_pattern, expected_raise, ): + some_indicator = sample_real_climatic_indicators[0] with expected_raise: cov_conf_create = coverages.CoverageConfigurationCreate( name=name, netcdf_main_dataset_name="fake_ds", thredds_url_pattern=thredds_url_pattern, - unit_english="fake_unit", - palette="fake_palette", - color_scale_min=0.0, - color_scale_max=1.0, + climatic_indicator_id=some_indicator.id, possible_values=[], ) created = database.create_coverage_configuration( @@ -221,8 +220,9 @@ def test_delete_coverage_configuration_works( def test_create_coverage_configuration_with_possible_values( - arpav_db_session, sample_configuration_parameters + arpav_db_session, sample_real_climatic_indicators, sample_configuration_parameters ): + some_indicator = sample_real_climatic_indicators[0] used_params = random.sample(sample_configuration_parameters, k=3) possible_values = [] for used_param in used_params: @@ -232,10 +232,7 @@ def test_create_coverage_configuration_with_possible_values( name="fake_name", netcdf_main_dataset_name="fake_ds", thredds_url_pattern="fake_thredds_pattern", - unit_english="fake_unit", - palette="fake_palette", - color_scale_min=0.0, - color_scale_max=1.0, + climatic_indicator_id=some_indicator.id, possible_values=[ coverages.ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=p.id @@ -252,7 +249,7 @@ def test_create_coverage_configuration_with_possible_values( def test_create_coverage_configuration_uses_new_possible_values( - arpav_db_session, sample_configuration_parameters + arpav_db_session, sample_real_climatic_indicators, sample_configuration_parameters ): """Ensure that when a new coverage configuration is created it does not clear any possible values that may be repeated in other coverage configurations. @@ -262,16 +259,14 @@ def test_create_coverage_configuration_uses_new_possible_values( is fixed. """ + some_indicator = sample_real_climatic_indicators[0] used_param = sample_configuration_parameters[0] possible_value = used_param.allowed_values[0] cov_conf_create1 = coverages.CoverageConfigurationCreate( name="fake_name1", netcdf_main_dataset_name="fake_ds1", thredds_url_pattern="fake_thredds_pattern1", - unit_english="fake_unit", - palette="fake_palette", - color_scale_min=0.0, - color_scale_max=1.0, + climatic_indicator_id=some_indicator.id, possible_values=[ coverages.ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=possible_value.id @@ -298,10 +293,7 @@ def test_create_coverage_configuration_uses_new_possible_values( name="fake_name2", netcdf_main_dataset_name="fake_ds2", thredds_url_pattern="fake_thredds_pattern2", - unit_english="fake_unit", - palette="fake_palette", - color_scale_min=0.0, - color_scale_max=1.0, + climatic_indicator_id=some_indicator.id, possible_values=[ coverages.ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=possible_value.id diff --git a/tests/test_operations.py b/tests/test_operations.py index 60522b57..bbf5c69c 100644 --- a/tests/test_operations.py +++ b/tests/test_operations.py @@ -110,15 +110,15 @@ def test_parse_ncss_dataset( [ pytest.param( "tas_seasonal_anomaly_model_ensemble", - "tas_seasonal_anomaly_model_ensemble-annual-forecast-model_ensemble-tas-anomaly-rcp26-spring", - "tas_seasonal_anomaly_model_ensemble_lower_uncertainty-annual-forecast-model_ensemble-tas-anomaly-rcp26-lower_bound-spring", - "tas_seasonal_anomaly_model_ensemble_upper_uncertainty-annual-forecast-model_ensemble-tas-anomaly-rcp26-upper_bound-spring", + "tas_seasonal_anomaly_model_ensemble-tas-anomaly-annual-forecast-model_ensemble-rcp26-spring", + "tas_seasonal_anomaly_model_ensemble_lower_uncertainty-tas-anomaly-annual-forecast-model_ensemble-rcp26-lower_bound-spring", + "tas_seasonal_anomaly_model_ensemble_upper_uncertainty-tas-anomaly-annual-forecast-model_ensemble-rcp26-upper_bound-spring", ), pytest.param( "tas_annual_absolute_model_ensemble", - "tas_annual_absolute_model_ensemble-annual-forecast-model_ensemble-tas-absolute-rcp26-all_year", - "tas_annual_absolute_model_ensemble_lower_uncertainty-annual-forecast-model_ensemble-tas-absolute-rcp26-lower_bound-all_year", - "tas_annual_absolute_model_ensemble_upper_uncertainty-annual-forecast-model_ensemble-tas-absolute-rcp26-upper_bound-all_year", + "tas_annual_absolute_model_ensemble-tas-absolute-annual-forecast-model_ensemble-rcp26-all_year", + "tas_annual_absolute_model_ensemble_lower_uncertainty-tas-absolute-annual-forecast-model_ensemble-rcp26-lower_bound-all_year", + "tas_annual_absolute_model_ensemble_upper_uncertainty-tas-absolute-annual-forecast-model_ensemble-rcp26-upper_bound-all_year", ), ], ) @@ -148,13 +148,13 @@ def test_get_related_uncertainty_coverage_configurations( [ pytest.param( "tas_seasonal_anomaly_model_ensemble", - "tas_seasonal_anomaly_model_ensemble-annual-forecast-model_ensemble-tas-anomaly-rcp26-spring", + "tas_seasonal_anomaly_model_ensemble-tas-anomaly-annual-forecast-model_ensemble-rcp26-spring", [ - "tas_seasonal_anomaly_model_ec_earth_cclm4_8_17-annual-forecast-ec_earth_cclm_4_8_17-tas-anomaly-rcp26-spring", - "tas_seasonal_anomaly_model_ec_earth_racmo22e-annual-forecast-ec_earth_racmo22e-tas-anomaly-rcp26-spring", - "tas_seasonal_anomaly_model_ec_earth_rca4-annual-forecast-ec_earth_rca4-tas-anomaly-rcp26-spring", - "tas_seasonal_anomaly_model_hadgem2_es_racmo22e-annual-forecast-hadgem2_racmo22e-tas-anomaly-rcp26-spring", - "tas_seasonal_anomaly_model_mpi_esm_lr_remo2009-annual-forecast-mpi_esm_lr_remo2009-tas-anomaly-rcp26-spring", + "tas_seasonal_anomaly_model_ec_earth_cclm4_8_17-tas-anomaly-annual-forecast-ec_earth_cclm_4_8_17-rcp26-spring", + "tas_seasonal_anomaly_model_ec_earth_racmo22e-tas-anomaly-annual-forecast-ec_earth_racmo22e-rcp26-spring", + "tas_seasonal_anomaly_model_ec_earth_rca4-tas-anomaly-annual-forecast-ec_earth_rca4-rcp26-spring", + "tas_seasonal_anomaly_model_hadgem2_es_racmo22e-tas-anomaly-annual-forecast-hadgem2_racmo22e-rcp26-spring", + "tas_seasonal_anomaly_model_mpi_esm_lr_remo2009-tas-anomaly-annual-forecast-mpi_esm_lr_remo2009-rcp26-spring", ], ) ], diff --git a/tests/test_webapp_v2_routers_coverages.py b/tests/test_webapp_v2_routers_coverages.py index 855d9152..27ce4efd 100644 --- a/tests/test_webapp_v2_routers_coverages.py +++ b/tests/test_webapp_v2_routers_coverages.py @@ -51,9 +51,9 @@ def test_coverage_identifiers_list( "year_period": "winter", }, [ - "tas_seasonal_absolute_model_ensemble-annual-forecast-model_ensemble-tas-absolute-rcp26-winter", - "tas_seasonal_absolute_model_ensemble_lower_uncertainty-annual-forecast-model_ensemble-tas-absolute-rcp26-lower_bound-winter", - "tas_seasonal_absolute_model_ensemble_upper_uncertainty-annual-forecast-model_ensemble-tas-absolute-rcp26-upper_bound-winter", + "tas_seasonal_absolute_model_ensemble-tas-absolute-annual-forecast-model_ensemble-rcp26-winter", + "tas_seasonal_absolute_model_ensemble_lower_uncertainty-tas-absolute-annual-forecast-model_ensemble-rcp26-lower_bound-winter", + "tas_seasonal_absolute_model_ensemble_upper_uncertainty-tas-absolute-annual-forecast-model_ensemble-rcp26-upper_bound-winter", ], ) ], @@ -82,12 +82,13 @@ def test_get_time_series( test_client_v2_app: httpx.Client, arpav_db_session, sample_tas_csv_data: dict[str, str], + sample_real_climatic_indicators, ): db_cov_conf = coverages.CoverageConfiguration( name="fake_tas", netcdf_main_dataset_name="tas", thredds_url_pattern="fake", - palette="fake", + climatic_indicator_id=sample_real_climatic_indicators[0].id, ) arpav_db_session.add(db_cov_conf) arpav_db_session.commit() @@ -135,7 +136,7 @@ def test_get_time_series( False, [ { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("processing_method", "nessuna elaborazione"), }, ], @@ -149,11 +150,11 @@ def test_get_time_series( False, [ { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("processing_method", "nessuna elaborazione"), }, { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("processing_method", "media mobile centrata a 11 anni"), }, ], @@ -167,30 +168,30 @@ def test_get_time_series( False, [ { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("processing_method", "nessuna elaborazione"), }, { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("processing_method", "media mobile centrata a 11 anni"), }, { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("processing_method", "nessuna elaborazione"), ("uncertainty_type", "Limiti inferiori dell'incertezza"), }, { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("processing_method", "media mobile centrata a 11 anni"), ("uncertainty_type", "Limiti inferiori dell'incertezza"), }, { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("processing_method", "nessuna elaborazione"), ("uncertainty_type", "Limiti superiori dell'incertezza"), }, { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("processing_method", "media mobile centrata a 11 anni"), ("uncertainty_type", "Limiti superiori dell'incertezza"), }, @@ -205,70 +206,70 @@ def test_get_time_series( True, [ { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("processing_method", "nessuna elaborazione"), }, { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("processing_method", "media mobile centrata a 11 anni"), }, { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("climatological_model", "EC-EARTH RCA4"), ("processing_method", "nessuna elaborazione"), }, { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("climatological_model", "EC-EARTH RCA4"), ("processing_method", "media mobile centrata a 11 anni"), }, { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("climatological_model", "HadGEM RACMO22E"), ("processing_method", "nessuna elaborazione"), }, { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("climatological_model", "HadGEM RACMO22E"), ("processing_method", "media mobile centrata a 11 anni"), }, { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("climatological_model", "Insieme di 5 modelli"), ("processing_method", "nessuna elaborazione"), }, { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("climatological_model", "Insieme di 5 modelli"), ("processing_method", "media mobile centrata a 11 anni"), }, { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("climatological_model", "EC-EARTH RACMO22E"), ("processing_method", "nessuna elaborazione"), }, { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("climatological_model", "EC-EARTH RACMO22E"), ("processing_method", "media mobile centrata a 11 anni"), }, { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("climatological_model", "MPI-ESM-LR-REMO2009"), ("processing_method", "nessuna elaborazione"), }, { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("climatological_model", "MPI-ESM-LR-REMO2009"), ("processing_method", "media mobile centrata a 11 anni"), }, { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("climatological_model", "EC-EARTH CCLM4-8-17"), ("processing_method", "nessuna elaborazione"), }, { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("climatological_model", "EC-EARTH CCLM4-8-17"), ("processing_method", "media mobile centrata a 11 anni"), }, @@ -283,11 +284,11 @@ def test_get_time_series( False, [ { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("processing_method", "nessuna elaborazione"), }, { - ("series_name", "Temperatura media"), + ("series_name", "Temperatura media (TAS)"), ("processing_method", "media mobile centrata a 11 anni"), }, { @@ -323,7 +324,7 @@ def test_real_get_time_series( include_coverage_related_data: bool, expected_italian_parameter_values: list[set[tuple[str, str]]], ): - coverage_identifier = "tas_seasonal_absolute_model_ensemble-annual-forecast-model_ensemble-tas-absolute-rcp45-winter" + coverage_identifier = "tas_seasonal_absolute_model_ensemble-tas-absolute-annual-forecast-model_ensemble-rcp45-winter" tas_thredds_url_pattern = "tas_avg_" tas_stddown_thredds_url_pattern = "tas_stddown_.*" tas_stdup_thredds_url_pattern = "tas_stdup_.*" From a9dfc682cc2225cbe98da4de61d7ab62b87bdd01 Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Silva Date: Fri, 8 Nov 2024 14:20:31 +0000 Subject: [PATCH 15/22] Fixed tests --- arpav_ppcv/database.py | 2 - arpav_ppcv/webapp/api_v2/app.py | 8 ++ .../api_v2/routers/climaticindicators.py | 1 + arpav_ppcv/webapp/api_v2/routers/coverages.py | 86 ++++++++++++------- 4 files changed, 65 insertions(+), 32 deletions(-) create mode 100644 arpav_ppcv/webapp/api_v2/routers/climaticindicators.py diff --git a/arpav_ppcv/database.py b/arpav_ppcv/database.py index 3dbe6e93..f26ce3e6 100644 --- a/arpav_ppcv/database.py +++ b/arpav_ppcv/database.py @@ -1712,7 +1712,6 @@ def _replace_conf_param_filters_with_climatic_indicator( ) else: new_possible_values.append(possible) - logger.debug(f"{raw_name=} - {raw_measure_type=} - {raw_aggregation_period=}") result = (possible_values, None) if all((raw_name, raw_measure_type, raw_aggregation_period)): climatic_indicator = get_climatic_indicator_by_identifier( @@ -1720,5 +1719,4 @@ def _replace_conf_param_filters_with_climatic_indicator( ) if climatic_indicator is not None: result = (new_possible_values, climatic_indicator) - logger.debug(f"{result=}") return result diff --git a/arpav_ppcv/webapp/api_v2/app.py b/arpav_ppcv/webapp/api_v2/app.py index fa5746d6..53ec57a5 100644 --- a/arpav_ppcv/webapp/api_v2/app.py +++ b/arpav_ppcv/webapp/api_v2/app.py @@ -2,6 +2,7 @@ from fastapi.middleware.cors import CORSMiddleware from ... import config +from .routers.climaticindicators import router as climaticindicators_router from .routers.coverages import router as coverages_router from .routers.municipalities import router as municipalities_router from .routers.observations import router as observations_router @@ -58,4 +59,11 @@ def create_app(settings: config.ArpavPpcvSettings) -> fastapi.FastAPI: "municipalities", ], ) + app.include_router( + climaticindicators_router, + prefix="/climatic-indicators", + tags=[ + "climatic-indicators", + ], + ) return app diff --git a/arpav_ppcv/webapp/api_v2/routers/climaticindicators.py b/arpav_ppcv/webapp/api_v2/routers/climaticindicators.py new file mode 100644 index 00000000..4d4b96e0 --- /dev/null +++ b/arpav_ppcv/webapp/api_v2/routers/climaticindicators.py @@ -0,0 +1 @@ +from ...api_v3.routers.climaticindicators import router # noqa diff --git a/arpav_ppcv/webapp/api_v2/routers/coverages.py b/arpav_ppcv/webapp/api_v2/routers/coverages.py index f27b542b..bbe93323 100644 --- a/arpav_ppcv/webapp/api_v2/routers/coverages.py +++ b/arpav_ppcv/webapp/api_v2/routers/coverages.py @@ -5,12 +5,14 @@ from typing import ( Annotated, Optional, + Sequence, ) import anyio.to_thread import httpx import pydantic import shapely.io +import sqlmodel from fastapi import ( APIRouter, Depends, @@ -32,15 +34,17 @@ palette, ) from ....config import ArpavPpcvSettings -from ....thredds import ( - crawler as thredds_crawler, - utils as thredds_utils, -) from ....schemas.base import ( CoreConfParamName, CoverageDataSmoothingStrategy, ObservationDataSmoothingStrategy, ) +from ....schemas.coverages import ConfigurationParameterValue +from ....schemas.climaticindicators import ClimaticIndicator +from ....thredds import ( + crawler as thredds_crawler, + utils as thredds_utils, +) from ... import dependencies from ..schemas import coverages as coverage_schemas from ..schemas.base import ( @@ -139,24 +143,16 @@ def list_coverage_configurations( endpoint. """ - conf_param_values_filter = [] - for possible in possible_value or []: - param_name, param_value = possible.partition(":")[::2] - db_parameter_value = db.get_configuration_parameter_value_by_names( - db_session, param_name, param_value - ) - if db_parameter_value is not None: - conf_param_values_filter.append(db_parameter_value) - else: - logger.debug( - f"ignoring unknown parameter/value pair {param_name}:{param_value}" - ) + conf_param_values_filter, climatic_indicator = _retrieve_climatic_indicator_filter( + db_session, possible_value or [] + ) coverage_configurations, filtered_total = db.list_coverage_configurations( db_session, limit=list_params.limit, offset=list_params.offset, include_total=True, - configuration_parameter_values_filter=conf_param_values_filter or None, + configuration_parameter_values_filter=conf_param_values_filter, + climatic_indicator_filter=climatic_indicator, ) _, unfiltered_total = db.list_coverage_configurations( db_session, limit=1, offset=0, include_total=True @@ -237,25 +233,19 @@ def list_coverage_identifiers( Query(), ] = None, ): - conf_param_values_filter = [] - for possible in possible_value or []: - param_name, param_value = possible.partition(":")[::2] - db_parameter_value = db.get_configuration_parameter_value_by_names( - db_session, param_name, param_value - ) - if db_parameter_value is not None: - conf_param_values_filter.append(db_parameter_value) - else: - logger.debug( - f"ignoring unknown parameter/value pair {param_name}:{param_value}" - ) + conf_param_values_filter, climatic_indicator = _retrieve_climatic_indicator_filter( + db_session, possible_value or [] + ) + logger.debug(f"{conf_param_values_filter=}") + logger.debug(f"{climatic_indicator=}") cov_internals, filtered_total = db.list_coverage_identifiers( db_session, limit=list_params.limit, offset=list_params.offset, include_total=True, name_filter=name_contains, - configuration_parameter_values_filter=conf_param_values_filter or None, + configuration_parameter_values_filter=conf_param_values_filter, + climatic_indicator_filter=climatic_indicator, ) _, unfiltered_total = db.list_coverage_identifiers( db_session, limit=1, offset=0, include_total=True @@ -693,3 +683,39 @@ def get_forecast_variable_combinations( variable_combinations ), ) + + +def _retrieve_climatic_indicator_filter( + session: sqlmodel.Session, configuration_parameter_values: Sequence[str] +) -> tuple[Optional[list[ConfigurationParameterValue]], Optional[ClimaticIndicator]]: + conf_param_values_filter = [] + climatic_indicator_parts = {} + for possible in configuration_parameter_values: + param_name, param_value = possible.partition(":")[::2] + if param_name in ("climatological_variable", "measure", "aggregation_period"): + climatic_indicator_parts[param_name] = param_value + else: + db_parameter_value = db.get_configuration_parameter_value_by_names( + session, param_name, param_value + ) + if db_parameter_value is not None: + conf_param_values_filter.append(db_parameter_value) + else: + logger.debug( + f"ignoring unknown parameter/value pair {param_name}:{param_value}" + ) + climatic_indicator_id = "-".join( + ( + climatic_indicator_parts.get("climatological_variable", ""), + climatic_indicator_parts.get("measure", ""), + climatic_indicator_parts.get("aggregation_period", ""), + ) + ) + try: + climatic_indicator = db.get_climatic_indicator_by_identifier( + session, climatic_indicator_id + ) + except exceptions.InvalidClimaticIndicatorIdentifierError as err: + logger.debug(str(err)) + climatic_indicator = None + return conf_param_values_filter or None, climatic_indicator From fd0cf7752c6f7f4056e5b74fb306af5ccee4e721 Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Silva Date: Fri, 8 Nov 2024 18:38:59 +0000 Subject: [PATCH 16/22] Dropping variable table, which now becomes redundant (WIP) climatic indicators can replace variables in the observations section --- arpav_ppcv/bootstrapper/cliapp.py | 39 +- arpav_ppcv/bootstrapper/variables.py | 210 +++++------ arpav_ppcv/cliapp/schemas.py | 84 ++--- arpav_ppcv/database.py | 253 +++++++------ ..._removed_relationship_between_variable_.py | 41 ++ .../e20d856daca4_removed_variable_table.py | 37 ++ ..._removed_relationship_between_variable_.py | 37 ++ .../observations_harvester/operations.py | 19 +- arpav_ppcv/operations.py | 193 +++------- arpav_ppcv/prefect/flows/observations.py | 170 ++++++--- arpav_ppcv/schemas/coverages.py | 19 +- arpav_ppcv/schemas/observations.py | 355 +++++++++++------- 12 files changed, 793 insertions(+), 664 deletions(-) create mode 100644 arpav_ppcv/migrations/versions/4b4e00bb8c66_removed_relationship_between_variable_.py create mode 100644 arpav_ppcv/migrations/versions/e20d856daca4_removed_variable_table.py create mode 100644 arpav_ppcv/migrations/versions/fdbc5e0bfb13_removed_relationship_between_variable_.py diff --git a/arpav_ppcv/bootstrapper/cliapp.py b/arpav_ppcv/bootstrapper/cliapp.py index 29ddc0a9..762707f3 100644 --- a/arpav_ppcv/bootstrapper/cliapp.py +++ b/arpav_ppcv/bootstrapper/cliapp.py @@ -60,7 +60,8 @@ tasmin as tasmin_climatic_indicators, tr as tr_climatic_indicators, ) -from .variables import generate_variable_configurations + +# from .variables import generate_variable_configurations from .configurationparameters import generate_configuration_parameters app = typer.Typer() @@ -177,24 +178,24 @@ def bootstrap_station_variables( print("Done!") -@app.command("observation-variables") -def bootstrap_observation_variables( - ctx: typer.Context, -): - """Create initial observation variables.""" - variables = generate_variable_configurations() - with sqlmodel.Session(ctx.obj["engine"]) as session: - for var_create in variables: - try: - db_variable = database.create_variable(session, var_create) - print(f"Created observation variable {db_variable.name!r}") - except IntegrityError as err: - print( - f"Could not create observation " - f"variable {var_create.name!r}: {err}" - ) - session.rollback() - print("Done!") +# @app.command("observation-variables") +# def bootstrap_observation_variables( +# ctx: typer.Context, +# ): +# """Create initial observation variables.""" +# variables = generate_variable_configurations() +# with sqlmodel.Session(ctx.obj["engine"]) as session: +# for var_create in variables: +# try: +# db_variable = database.create_variable(session, var_create) +# print(f"Created observation variable {db_variable.name!r}") +# except IntegrityError as err: +# print( +# f"Could not create observation " +# f"variable {var_create.name!r}: {err}" +# ) +# session.rollback() +# print("Done!") @app.command("climatic-indicators") diff --git a/arpav_ppcv/bootstrapper/variables.py b/arpav_ppcv/bootstrapper/variables.py index 3f2e413a..b1eea6fa 100644 --- a/arpav_ppcv/bootstrapper/variables.py +++ b/arpav_ppcv/bootstrapper/variables.py @@ -1,105 +1,105 @@ -from ..schemas.observations import VariableCreate - - -def generate_variable_configurations() -> list[VariableCreate]: - return [ - VariableCreate( - name="HDD_it", - display_name_english="Heating degree days", - display_name_italian="Gradi giorno di riscaldamento", - description_english=("Heating degree days, with Tbase 20 °C for Tavg"), - description_italian=( - "Gradi giorno di riscaldamento, con Tbase 20 °C per Tavg" - ), - unit_english="ºC", - ), - VariableCreate( - name="CDD_jrc", - display_name_english="Cooling degree days", - display_name_italian="Gradi giorno di raffrescamento", - description_english=( - "Cooling degree days, with Tbase 21 °C and threshold 24 °C for Tavg" - ), - description_italian=( - "Gradi giorno di raffrescamento, con Tbase 21 °C e soglia 24 °C per Tavg" - ), - unit_english="ºC", - ), - VariableCreate( - name="TDd", - display_name_english="Mean temperature (from observation station)", - display_name_italian="Temperatura media (dalla stazione di osservazione)", - description_english="Average daily air temperature near the ground", - description_italian=( - "Temperatura media giornaliera dell'aria vicino al suolo" - ), - unit_english="ºC", - ), - VariableCreate( - name="TXd", - display_name_english="Max temperature (from observation station)", - display_name_italian="Temperatura massima (dalla stazione di osservazione)", - description_english="Maximum daily air temperature near the ground", - description_italian=( - "Temperatura massima giornaliera dell'aria vicino al suolo" - ), - unit_english="ºC", - ), - VariableCreate( - name="TNd", - display_name_english="Minimum temperature (from observation station)", - display_name_italian="Temperatura minima (dalla stazione di osservazione)", - description_english="Minimum daily air temperature near the ground", - description_italian=( - "Temperatura minima giornaliera dell'aria vicino al suolo" - ), - unit_english="ºC", - ), - VariableCreate( - name="PRCPTOT", - display_name_english="Precipitation (from observation station)", - display_name_italian="Precipitazione (dalla stazione di osservazione)", - description_english="Daily precipitation near the ground", - description_italian="Precipitazioni giornaliere in prossimità del suolo", - unit_english="mm", - ), - VariableCreate( - name="TR", - display_name_english="Tropical nights (from observation station)", - display_name_italian="Notti tropicali (dalla stazione di osservazione)", - description_english=( - "Number of days with minimum temperature greater than 20 °C" - ), - description_italian=( - "Numero di giorni con temperatura minima superiore a 20 °C" - ), - unit_english="days", - unit_italian="giorni", - ), - VariableCreate( - name="SU30", - display_name_english="Hot days (from observation station)", - display_name_italian="Giorni caldi (dalla stazione di osservazione)", - description_english=( - "Number of days with maximum temperature greater than 30 °C" - ), - description_italian=( - "Numero di giorni con temperatura massima superiore a 30 °C" - ), - unit_english="days", - unit_italian="giorni", - ), - VariableCreate( - name="FD", - display_name_english="Frosty days (from observation station)", - display_name_italian="Giorni di gelo (dalla stazione di osservazione)", - description_english=( - "Number of days with minimum temperature less than 0 °C" - ), - description_italian=( - "Numero di giorni con temperatura minima inferiore a 0 °C" - ), - unit_english="days", - unit_italian="giorni", - ), - ] +# from ..schemas.observations import VariableCreate +# +# +# def generate_variable_configurations() -> list[VariableCreate]: +# return [ +# VariableCreate( +# name="HDD_it", +# display_name_english="Heating degree days", +# display_name_italian="Gradi giorno di riscaldamento", +# description_english=("Heating degree days, with Tbase 20 °C for Tavg"), +# description_italian=( +# "Gradi giorno di riscaldamento, con Tbase 20 °C per Tavg" +# ), +# unit_english="ºC", +# ), +# VariableCreate( +# name="CDD_jrc", +# display_name_english="Cooling degree days", +# display_name_italian="Gradi giorno di raffrescamento", +# description_english=( +# "Cooling degree days, with Tbase 21 °C and threshold 24 °C for Tavg" +# ), +# description_italian=( +# "Gradi giorno di raffrescamento, con Tbase 21 °C e soglia 24 °C per Tavg" +# ), +# unit_english="ºC", +# ), +# VariableCreate( +# name="TDd", +# display_name_english="Mean temperature (from observation station)", +# display_name_italian="Temperatura media (dalla stazione di osservazione)", +# description_english="Average daily air temperature near the ground", +# description_italian=( +# "Temperatura media giornaliera dell'aria vicino al suolo" +# ), +# unit_english="ºC", +# ), +# VariableCreate( +# name="TXd", +# display_name_english="Max temperature (from observation station)", +# display_name_italian="Temperatura massima (dalla stazione di osservazione)", +# description_english="Maximum daily air temperature near the ground", +# description_italian=( +# "Temperatura massima giornaliera dell'aria vicino al suolo" +# ), +# unit_english="ºC", +# ), +# VariableCreate( +# name="TNd", +# display_name_english="Minimum temperature (from observation station)", +# display_name_italian="Temperatura minima (dalla stazione di osservazione)", +# description_english="Minimum daily air temperature near the ground", +# description_italian=( +# "Temperatura minima giornaliera dell'aria vicino al suolo" +# ), +# unit_english="ºC", +# ), +# VariableCreate( +# name="PRCPTOT", +# display_name_english="Precipitation (from observation station)", +# display_name_italian="Precipitazione (dalla stazione di osservazione)", +# description_english="Daily precipitation near the ground", +# description_italian="Precipitazioni giornaliere in prossimità del suolo", +# unit_english="mm", +# ), +# VariableCreate( +# name="TR", +# display_name_english="Tropical nights (from observation station)", +# display_name_italian="Notti tropicali (dalla stazione di osservazione)", +# description_english=( +# "Number of days with minimum temperature greater than 20 °C" +# ), +# description_italian=( +# "Numero di giorni con temperatura minima superiore a 20 °C" +# ), +# unit_english="days", +# unit_italian="giorni", +# ), +# VariableCreate( +# name="SU30", +# display_name_english="Hot days (from observation station)", +# display_name_italian="Giorni caldi (dalla stazione di osservazione)", +# description_english=( +# "Number of days with maximum temperature greater than 30 °C" +# ), +# description_italian=( +# "Numero di giorni con temperatura massima superiore a 30 °C" +# ), +# unit_english="days", +# unit_italian="giorni", +# ), +# VariableCreate( +# name="FD", +# display_name_english="Frosty days (from observation station)", +# display_name_italian="Giorni di gelo (dalla stazione di osservazione)", +# description_english=( +# "Number of days with minimum temperature less than 0 °C" +# ), +# description_italian=( +# "Numero di giorni con temperatura minima inferiore a 0 °C" +# ), +# unit_english="days", +# unit_italian="giorni", +# ), +# ] diff --git a/arpav_ppcv/cliapp/schemas.py b/arpav_ppcv/cliapp/schemas.py index 92c31587..d84d731a 100644 --- a/arpav_ppcv/cliapp/schemas.py +++ b/arpav_ppcv/cliapp/schemas.py @@ -1,6 +1,4 @@ -import pydantic - -from ..schemas import base, observations +from ..schemas import observations class StationRead(observations.StationBase): @@ -15,43 +13,43 @@ class StationUpdate(observations.StationUpdate): ... -class VariableRead(observations.VariableBase): - ... - - -class VariableCreate(observations.VariableCreate): - ... - - -class VariableUpdate(observations.VariableUpdate): - ... - - -class MonthlyMeasurementRead(observations.MonthlyMeasurementBase): - station_id: pydantic.UUID4 - variable_id: pydantic.UUID4 - - -# TODO: remove this -class MonthlyMeasurementCreate(observations.MonthlyMeasurementCreate): - ... - - -# TODO: remove this -class MonthlyMeasurementUpdate(observations.MonthlyMeasurementUpdate): - ... - - -class SeasonalMeasurementRead(pydantic.BaseModel): - station_id: pydantic.UUID4 - variable_id: pydantic.UUID4 - year: int - season: base.Season - value: float - - -class YearlyMeasurementRead(pydantic.BaseModel): - station_id: pydantic.UUID4 - variable_id: pydantic.UUID4 - year: int - value: float +# class VariableRead(observations.VariableBase): +# ... +# +# +# class VariableCreate(observations.VariableCreate): +# ... +# +# +# class VariableUpdate(observations.VariableUpdate): +# ... + + +# class MonthlyMeasurementRead(observations.MonthlyMeasurementBase): +# station_id: pydantic.UUID4 +# variable_id: pydantic.UUID4 +# +# +# # TODO: remove this +# class MonthlyMeasurementCreate(observations.MonthlyMeasurementCreate): +# ... +# +# +# # TODO: remove this +# class MonthlyMeasurementUpdate(observations.MonthlyMeasurementUpdate): +# ... +# +# +# class SeasonalMeasurementRead(pydantic.BaseModel): +# station_id: pydantic.UUID4 +# variable_id: pydantic.UUID4 +# year: int +# season: base.Season +# value: float +# +# +# class YearlyMeasurementRead(pydantic.BaseModel): +# station_id: pydantic.UUID4 +# variable_id: pydantic.UUID4 +# year: int +# value: float diff --git a/arpav_ppcv/database.py b/arpav_ppcv/database.py index f26ce3e6..45a8ae73 100644 --- a/arpav_ppcv/database.py +++ b/arpav_ppcv/database.py @@ -63,113 +63,113 @@ def get_engine(settings: config.ArpavPpcvSettings, use_test_db: Optional[bool] = return result -def create_variable( - session: sqlmodel.Session, variable_create: observations.VariableCreate -) -> observations.Variable: - """Create a new variable.""" - db_variable = observations.Variable(**variable_create.model_dump()) - session.add(db_variable) - try: - session.commit() - except sqlalchemy.exc.DBAPIError: - raise - else: - session.refresh(db_variable) - return db_variable - - -def create_many_variables( - session: sqlmodel.Session, - variables_to_create: Sequence[observations.VariableCreate], -) -> list[observations.Variable]: - """Create several variables.""" - db_records = [] - for variable_create in variables_to_create: - db_variable = observations.Variable(**variable_create.model_dump()) - db_records.append(db_variable) - session.add(db_variable) - try: - session.commit() - except sqlalchemy.exc.DBAPIError: - raise - else: - for db_record in db_records: - session.refresh(db_record) - return db_records - - -def get_variable( - session: sqlmodel.Session, variable_id: uuid.UUID -) -> Optional[observations.Variable]: - return session.get(observations.Variable, variable_id) - - -def get_variable_by_name( - session: sqlmodel.Session, variable_name: str -) -> Optional[observations.Variable]: - """Get a variable by its name. - - Since a variable name is unique, it can be used to uniquely identify a variable. - """ - return session.exec( - sqlmodel.select(observations.Variable).where( - observations.Variable.name == variable_name - ) - ).first() - - -def update_variable( - session: sqlmodel.Session, - db_variable: observations.Variable, - variable_update: observations.VariableUpdate, -) -> observations.Variable: - """Update a variable.""" - data_ = variable_update.model_dump(exclude_unset=True) - for key, value in data_.items(): - setattr(db_variable, key, value) - session.add(db_variable) - session.commit() - session.refresh(db_variable) - return db_variable - - -def delete_variable(session: sqlmodel.Session, variable_id: uuid.UUID) -> None: - """Delete a variable.""" - db_variable = get_variable(session, variable_id) - if db_variable is not None: - session.delete(db_variable) - session.commit() - else: - raise RuntimeError("Variable not found") - - -def list_variables( - session: sqlmodel.Session, - *, - limit: int = 20, - offset: int = 0, - include_total: bool = False, - name_filter: Optional[str] = None, -) -> tuple[Sequence[observations.Variable], Optional[int]]: - """List existing variables.""" - statement = sqlmodel.select(observations.Variable).order_by( - observations.Variable.name - ) - if name_filter is not None: - statement = _add_substring_filter( - statement, name_filter, observations.Variable.name - ) - items = session.exec(statement.offset(offset).limit(limit)).all() - num_items = _get_total_num_records(session, statement) if include_total else None - return items, num_items - - -def collect_all_variables( - session: sqlmodel.Session, -) -> Sequence[observations.Variable]: - _, num_total = list_variables(session, limit=1, include_total=True) - result, _ = list_variables(session, limit=num_total, include_total=False) - return result +# def create_variable( +# session: sqlmodel.Session, variable_create: observations.VariableCreate +# ) -> observations.Variable: +# """Create a new variable.""" +# db_variable = observations.Variable(**variable_create.model_dump()) +# session.add(db_variable) +# try: +# session.commit() +# except sqlalchemy.exc.DBAPIError: +# raise +# else: +# session.refresh(db_variable) +# return db_variable +# +# +# def create_many_variables( +# session: sqlmodel.Session, +# variables_to_create: Sequence[observations.VariableCreate], +# ) -> list[observations.Variable]: +# """Create several variables.""" +# db_records = [] +# for variable_create in variables_to_create: +# db_variable = observations.Variable(**variable_create.model_dump()) +# db_records.append(db_variable) +# session.add(db_variable) +# try: +# session.commit() +# except sqlalchemy.exc.DBAPIError: +# raise +# else: +# for db_record in db_records: +# session.refresh(db_record) +# return db_records +# +# +# def get_variable( +# session: sqlmodel.Session, variable_id: uuid.UUID +# ) -> Optional[observations.Variable]: +# return session.get(observations.Variable, variable_id) +# +# +# def get_variable_by_name( +# session: sqlmodel.Session, variable_name: str +# ) -> Optional[observations.Variable]: +# """Get a variable by its name. +# +# Since a variable name is unique, it can be used to uniquely identify a variable. +# """ +# return session.exec( +# sqlmodel.select(observations.Variable).where( +# observations.Variable.name == variable_name +# ) +# ).first() +# +# +# def update_variable( +# session: sqlmodel.Session, +# db_variable: observations.Variable, +# variable_update: observations.VariableUpdate, +# ) -> observations.Variable: +# """Update a variable.""" +# data_ = variable_update.model_dump(exclude_unset=True) +# for key, value in data_.items(): +# setattr(db_variable, key, value) +# session.add(db_variable) +# session.commit() +# session.refresh(db_variable) +# return db_variable +# +# +# def delete_variable(session: sqlmodel.Session, variable_id: uuid.UUID) -> None: +# """Delete a variable.""" +# db_variable = get_variable(session, variable_id) +# if db_variable is not None: +# session.delete(db_variable) +# session.commit() +# else: +# raise RuntimeError("Variable not found") +# +# +# def list_variables( +# session: sqlmodel.Session, +# *, +# limit: int = 20, +# offset: int = 0, +# include_total: bool = False, +# name_filter: Optional[str] = None, +# ) -> tuple[Sequence[observations.Variable], Optional[int]]: +# """List existing variables.""" +# statement = sqlmodel.select(observations.Variable).order_by( +# observations.Variable.name +# ) +# if name_filter is not None: +# statement = _add_substring_filter( +# statement, name_filter, observations.Variable.name +# ) +# items = session.exec(statement.offset(offset).limit(limit)).all() +# num_items = _get_total_num_records(session, statement) if include_total else None +# return items, num_items +# +# +# def collect_all_variables( +# session: sqlmodel.Session, +# ) -> Sequence[observations.Variable]: +# _, num_total = list_variables(session, limit=1, include_total=True) +# result, _ = list_variables(session, limit=num_total, include_total=False) +# return result def create_station( @@ -417,7 +417,7 @@ def list_monthly_measurements( limit: int = 20, offset: int = 0, station_id_filter: Optional[uuid.UUID] = None, - variable_id_filter: Optional[uuid.UUID] = None, + climatic_indicator_id_filter: Optional[int] = None, month_filter: Optional[int] = None, include_total: bool = False, ) -> tuple[Sequence[observations.MonthlyMeasurement], Optional[int]]: @@ -429,9 +429,10 @@ def list_monthly_measurements( statement = statement.where( observations.MonthlyMeasurement.station_id == station_id_filter ) - if variable_id_filter is not None: + if climatic_indicator_id_filter is not None: statement = statement.where( - observations.MonthlyMeasurement.variable_id == variable_id_filter + observations.MonthlyMeasurement.climatic_indicator_id + == climatic_indicator_id_filter ) if month_filter is not None: statement = statement.where( @@ -447,14 +448,14 @@ def collect_all_monthly_measurements( session: sqlmodel.Session, *, station_id_filter: Optional[uuid.UUID] = None, - variable_id_filter: Optional[uuid.UUID] = None, + climatic_indicator_id_filter: Optional[int] = None, month_filter: Optional[int] = None, ) -> Sequence[observations.MonthlyMeasurement]: _, num_total = list_monthly_measurements( session, limit=1, station_id_filter=station_id_filter, - variable_id_filter=variable_id_filter, + climatic_indicator_id_filter=climatic_indicator_id_filter, month_filter=month_filter, include_total=True, ) @@ -462,7 +463,7 @@ def collect_all_monthly_measurements( session, limit=num_total, station_id_filter=station_id_filter, - variable_id_filter=variable_id_filter, + climatic_indicator_id_filter=climatic_indicator_id_filter, month_filter=month_filter, include_total=False, ) @@ -531,7 +532,7 @@ def list_seasonal_measurements( limit: int = 20, offset: int = 0, station_id_filter: Optional[uuid.UUID] = None, - variable_id_filter: Optional[uuid.UUID] = None, + climatic_indicator_id_filter: Optional[int] = None, season_filter: Optional[base.Season] = None, include_total: bool = False, ) -> tuple[Sequence[observations.SeasonalMeasurement], Optional[int]]: @@ -543,9 +544,10 @@ def list_seasonal_measurements( statement = statement.where( observations.SeasonalMeasurement.station_id == station_id_filter ) - if variable_id_filter is not None: + if climatic_indicator_id_filter is not None: statement = statement.where( - observations.SeasonalMeasurement.variable_id == variable_id_filter + observations.SeasonalMeasurement.climatic_indicator_id + == climatic_indicator_id_filter ) if season_filter is not None: statement = statement.where( @@ -560,14 +562,14 @@ def collect_all_seasonal_measurements( session: sqlmodel.Session, *, station_id_filter: Optional[uuid.UUID] = None, - variable_id_filter: Optional[uuid.UUID] = None, + climatic_indicator_id_filter: Optional[int] = None, season_filter: Optional[base.Season] = None, ) -> Sequence[observations.SeasonalMeasurement]: _, num_total = list_seasonal_measurements( session, limit=1, station_id_filter=station_id_filter, - variable_id_filter=variable_id_filter, + climatic_indicator_id_filter=climatic_indicator_id_filter, season_filter=season_filter, include_total=True, ) @@ -575,7 +577,7 @@ def collect_all_seasonal_measurements( session, limit=num_total, station_id_filter=station_id_filter, - variable_id_filter=variable_id_filter, + climatic_indicator_id_filter=climatic_indicator_id_filter, season_filter=season_filter, include_total=False, ) @@ -643,7 +645,7 @@ def list_yearly_measurements( limit: int = 20, offset: int = 0, station_id_filter: Optional[uuid.UUID] = None, - variable_id_filter: Optional[uuid.UUID] = None, + climatic_indicator_id_filter: Optional[int] = None, include_total: bool = False, ) -> tuple[Sequence[observations.YearlyMeasurement], Optional[int]]: """List existing yearly measurements.""" @@ -654,9 +656,10 @@ def list_yearly_measurements( statement = statement.where( observations.YearlyMeasurement.station_id == station_id_filter ) - if variable_id_filter is not None: + if climatic_indicator_id_filter is not None: statement = statement.where( - observations.YearlyMeasurement.variable_id == variable_id_filter + observations.YearlyMeasurement.climatic_indicator_id + == climatic_indicator_id_filter ) items = session.exec(statement.offset(offset).limit(limit)).all() num_items = _get_total_num_records(session, statement) if include_total else None @@ -667,20 +670,20 @@ def collect_all_yearly_measurements( session: sqlmodel.Session, *, station_id_filter: Optional[uuid.UUID] = None, - variable_id_filter: Optional[uuid.UUID] = None, + climatic_indicator_id_filter: Optional[int] = None, ) -> Sequence[observations.YearlyMeasurement]: _, num_total = list_yearly_measurements( session, limit=1, station_id_filter=station_id_filter, - variable_id_filter=variable_id_filter, + climatic_indicator_id_filter=climatic_indicator_id_filter, include_total=True, ) result, _ = list_yearly_measurements( session, limit=num_total, station_id_filter=station_id_filter, - variable_id_filter=variable_id_filter, + climatic_indicator_id_filter=climatic_indicator_id_filter, include_total=False, ) return result diff --git a/arpav_ppcv/migrations/versions/4b4e00bb8c66_removed_relationship_between_variable_.py b/arpav_ppcv/migrations/versions/4b4e00bb8c66_removed_relationship_between_variable_.py new file mode 100644 index 00000000..b83281f7 --- /dev/null +++ b/arpav_ppcv/migrations/versions/4b4e00bb8c66_removed_relationship_between_variable_.py @@ -0,0 +1,41 @@ +"""removed relationship between variable and measurements + +Revision ID: 4b4e00bb8c66 +Revises: ca42ab8be733 +Create Date: 2024-11-08 16:01:09.317458 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa +import sqlmodel + + +# revision identifiers, used by Alembic. +revision: str = '4b4e00bb8c66' +down_revision: Union[str, None] = 'ca42ab8be733' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.drop_constraint('monthlymeasurement_variable_id_fkey', 'monthlymeasurement', type_='foreignkey') + op.drop_column('monthlymeasurement', 'variable_id') + op.drop_constraint('seasonalmeasurement_variable_id_fkey', 'seasonalmeasurement', type_='foreignkey') + op.drop_column('seasonalmeasurement', 'variable_id') + op.drop_constraint('yearlymeasurement_variable_id_fkey', 'yearlymeasurement', type_='foreignkey') + op.drop_column('yearlymeasurement', 'variable_id') + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('yearlymeasurement', sa.Column('variable_id', sa.UUID(), autoincrement=False, nullable=False)) + op.create_foreign_key('yearlymeasurement_variable_id_fkey', 'yearlymeasurement', 'variable', ['variable_id'], ['id'], onupdate='CASCADE', ondelete='CASCADE') + op.add_column('seasonalmeasurement', sa.Column('variable_id', sa.UUID(), autoincrement=False, nullable=False)) + op.create_foreign_key('seasonalmeasurement_variable_id_fkey', 'seasonalmeasurement', 'variable', ['variable_id'], ['id'], onupdate='CASCADE', ondelete='CASCADE') + op.add_column('monthlymeasurement', sa.Column('variable_id', sa.UUID(), autoincrement=False, nullable=False)) + op.create_foreign_key('monthlymeasurement_variable_id_fkey', 'monthlymeasurement', 'variable', ['variable_id'], ['id'], onupdate='CASCADE', ondelete='CASCADE') + # ### end Alembic commands ### diff --git a/arpav_ppcv/migrations/versions/e20d856daca4_removed_variable_table.py b/arpav_ppcv/migrations/versions/e20d856daca4_removed_variable_table.py new file mode 100644 index 00000000..e6bdd1d5 --- /dev/null +++ b/arpav_ppcv/migrations/versions/e20d856daca4_removed_variable_table.py @@ -0,0 +1,37 @@ +"""removed variable table + +Revision ID: e20d856daca4 +Revises: fdbc5e0bfb13 +Create Date: 2024-11-08 18:28:39.215553 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa +import sqlmodel + + +# revision identifiers, used by Alembic. +revision: str = 'e20d856daca4' +down_revision: Union[str, None] = 'fdbc5e0bfb13' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + op.drop_table("variable") + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.create_table( + 'variable', + sa.Column('id', sqlmodel.sql.sqltypes.GUID(), nullable=False), + sa.Column('name', sqlmodel.sql.sqltypes.AutoString(), nullable=False), + sa.Column('description', sqlmodel.sql.sqltypes.AutoString(), nullable=False), + sa.Column('unit', sqlmodel.sql.sqltypes.AutoString(), nullable=False), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('name') + ) + # ### end Alembic commands ### diff --git a/arpav_ppcv/migrations/versions/fdbc5e0bfb13_removed_relationship_between_variable_.py b/arpav_ppcv/migrations/versions/fdbc5e0bfb13_removed_relationship_between_variable_.py new file mode 100644 index 00000000..c6b22020 --- /dev/null +++ b/arpav_ppcv/migrations/versions/fdbc5e0bfb13_removed_relationship_between_variable_.py @@ -0,0 +1,37 @@ +"""removed relationship between variable and coverage configuration + +Revision ID: fdbc5e0bfb13 +Revises: 4b4e00bb8c66 +Create Date: 2024-11-08 18:27:36.014054 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa +import sqlmodel +from sqlalchemy.dialects import postgresql + +# revision identifiers, used by Alembic. +revision: str = 'fdbc5e0bfb13' +down_revision: Union[str, None] = '4b4e00bb8c66' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.drop_constraint('coverageconfiguration_observation_variable_id_fkey', 'coverageconfiguration', type_='foreignkey') + op.drop_column('coverageconfiguration', 'observation_variable_id') + op.drop_column('coverageconfiguration', 'observation_variable_aggregation_type') + sa.Enum('MONTHLY', 'SEASONAL', 'YEARLY', name='observationaggregationtype').drop(op.get_bind()) + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + sa.Enum('MONTHLY', 'SEASONAL', 'YEARLY', name='observationaggregationtype').create(op.get_bind()) + op.add_column('coverageconfiguration', sa.Column('observation_variable_aggregation_type', postgresql.ENUM('MONTHLY', 'SEASONAL', 'YEARLY', name='observationaggregationtype', create_type=False), autoincrement=False, nullable=True)) + op.add_column('coverageconfiguration', sa.Column('observation_variable_id', sa.UUID(), autoincrement=False, nullable=True)) + op.create_foreign_key('coverageconfiguration_observation_variable_id_fkey', 'coverageconfiguration', 'variable', ['observation_variable_id'], ['id']) + # ### end Alembic commands ### diff --git a/arpav_ppcv/observations_harvester/operations.py b/arpav_ppcv/observations_harvester/operations.py index 2aceaed3..4a4c94f6 100644 --- a/arpav_ppcv/observations_harvester/operations.py +++ b/arpav_ppcv/observations_harvester/operations.py @@ -15,13 +15,14 @@ import shapely.ops from ..schemas import observations +from ..schemas.climaticindicators import ClimaticIndicator logger = logging.getLogger(__name__) def fetch_remote_stations( client: httpx.Client, - variables: Sequence[observations.Variable], + climatic_indicators: Sequence[ClimaticIndicator], fetch_stations_with_months: bool, fetch_stations_with_seasons: bool, fetch_stations_with_yearly_measurements: bool, @@ -29,10 +30,10 @@ def fetch_remote_stations( station_url = ( "https://api.arpa.veneto.it/REST/v1/clima_indicatori/staz_attive_lunghe" ) - for variable in variables: + for climatic_indicator in climatic_indicators: logger.info( - f"Retrieving stations with monthly measurements for variable " - f"{variable.name!r}..." + f"Retrieving stations with monthly measurements for climatic indicator " + f"{climatic_indicator.identifier!r}..." ) if fetch_stations_with_months: for month in range(1, 13): @@ -40,7 +41,7 @@ def fetch_remote_stations( month_response = client.get( station_url, params={ - "indicatore": variable.name, + "indicatore": climatic_indicator.name, "tabella": "M", "periodo": str(month), }, @@ -54,7 +55,7 @@ def fetch_remote_stations( season_response = client.get( station_url, params={ - "indicatore": variable.name, + "indicatore": climatic_indicator.name, "tabella": "S", "periodo": str(season), }, @@ -67,7 +68,7 @@ def fetch_remote_stations( year_response = client.get( station_url, params={ - "indicatore": variable.name, + "indicatore": climatic_indicator.name, "tabella": "A", "periodo": "0", }, @@ -114,7 +115,7 @@ def parse_station( def harvest_stations( client: httpx.Client, - variables_to_refresh: Sequence[observations.Variable], + climatic_indicators_to_refresh: Sequence[ClimaticIndicator], fetch_stations_with_months: bool, fetch_stations_with_seasons: bool, fetch_stations_with_yearly_measurements: bool, @@ -125,7 +126,7 @@ def harvest_stations( stations = set() for raw_station in fetch_remote_stations( client, - variables_to_refresh, + climatic_indicators_to_refresh, fetch_stations_with_months, fetch_stations_with_seasons, fetch_stations_with_yearly_measurements, diff --git a/arpav_ppcv/operations.py b/arpav_ppcv/operations.py index 01225077..968b6fa7 100644 --- a/arpav_ppcv/operations.py +++ b/arpav_ppcv/operations.py @@ -143,7 +143,7 @@ def _get_climate_barometer_data( def get_station_data( session: sqlmodel.Session, - variable: observations.Variable, + climatic_indicator: climaticindicators.ClimaticIndicator, station: observations.Station, month: int, temporal_range: tuple[dt.datetime | None, dt.datetime | None], @@ -151,14 +151,14 @@ def get_station_data( raw_measurements = database.collect_all_monthly_measurements( session=session, station_id_filter=station.id, - variable_id_filter=variable.id, + climatic_indicator_id_filter=climatic_indicator.id, month_filter=month, ) df = pd.DataFrame(m.model_dump() for m in raw_measurements) if not df.empty: - df = df.rename(columns={"value": variable.name}) + df = df.rename(columns={"value": climatic_indicator.name}) df["time"] = pd.to_datetime(df["date"], utc=True) - df = df[["time", variable.name]] + df = df[["time", climatic_indicator.name]] df.set_index("time", inplace=True) start, end = temporal_range if start is not None: @@ -169,20 +169,20 @@ def get_station_data( else: logger.info( f"Station {station.id!r} has no measurements for month {month!r} and " - f"variable {variable.id!r}" + f"climatic indicator {climatic_indicator.identifier!r}" ) def aggregate_decade_data( - variable: observations.Variable, measurements: pd.DataFrame + climatic_indicator: climaticindicators.ClimaticIndicator, measurements: pd.DataFrame ) -> pd.DataFrame: # group values by climatological decade, which starts at year 1 and ends at year 10 decade_grouper = measurements.groupby(((measurements.index.year - 1) // 10) * 10) - mean_column_name = variable.name + mean_column_name = climatic_indicator.name decade_df = decade_grouper.agg( - num_values=(variable.name, "size"), - **{mean_column_name: (variable.name, "mean")}, + num_values=(climatic_indicator.name, "size"), + **{mean_column_name: (climatic_indicator.name, "mean")}, ) # discard decades where there are less than 7 years decade_df = decade_df[decade_df.num_values >= 7] @@ -193,22 +193,22 @@ def aggregate_decade_data( def generate_mann_kendall_data( - variable: observations.Variable, + climatic_indicator: climaticindicators.ClimaticIndicator, measurements: pd.DataFrame, parameters: base.MannKendallParameters, ) -> tuple[pd.DataFrame, dict[str, str | int | float]]: - mk_col = f"{variable.name}__MANN_KENDALL" + mk_col = f"{climatic_indicator.name}__MANN_KENDALL" mk_start = parameters.start_year or measurements.index[0].year mk_end = parameters.end_year or measurements.index[-1].year if mk_end - mk_start >= 27: mk_df = measurements[str(mk_start) : str(mk_end)].copy() - mk_result = mk.original_test(mk_df[variable.name]) + mk_result = mk.original_test(mk_df[climatic_indicator.name]) mk_df[mk_col] = ( mk_result.slope * (mk_df.index.year - mk_df.index.year.min()) + mk_result.intercept ) # mk_df = mk_df[["time", mk_col]].rename(columns={mk_col: variable.name}) - mk_df = mk_df[[mk_col]].rename(columns={mk_col: variable.name}) + mk_df = mk_df[[mk_col]].rename(columns={mk_col: climatic_indicator.name}) info = { "trend": mk_result.trend, "h": bool(mk_result.h), @@ -227,7 +227,7 @@ def generate_mann_kendall_data( def get_observation_time_series( session: sqlmodel.Session, - variable: observations.Variable, + climatic_indicator: climaticindicators.ClimaticIndicator, station: observations.Station, month: int, temporal_range: str, @@ -244,11 +244,11 @@ def get_observation_time_series( ]: """Get monthly observation measurements.""" start, end = parse_temporal_range(temporal_range) - df = get_station_data(session, variable, station, month, (start, end)) + df = get_station_data(session, climatic_indicator, station, month, (start, end)) if df is not None: result = { (base.ObservationDataSmoothingStrategy.NO_SMOOTHING, None): ( - df[variable.name].squeeze(), + df[climatic_indicator.name].squeeze(), None, ) } @@ -259,142 +259,33 @@ def get_observation_time_series( ] for smoothing_strategy in additional_strategies: smoothed_df, smoothed_column_name = process_station_data_smoothing_strategy( - df, variable.name, smoothing_strategy + df, climatic_indicator.name, smoothing_strategy ) result[(smoothing_strategy, None)] = ( smoothed_df[smoothed_column_name].squeeze(), None, ) if include_decade_data: - decade_df = aggregate_decade_data(variable, df) + decade_df = aggregate_decade_data(climatic_indicator, df) result[ ( base.ObservationDataSmoothingStrategy.NO_SMOOTHING, base.ObservationDerivedSeries.DECADE_SERIES, ) - ] = (decade_df[variable.name].squeeze(), None) + ] = (decade_df[climatic_indicator.name].squeeze(), None) if mann_kendall_parameters is not None: mk_df, mk_info = generate_mann_kendall_data( - variable, df, mann_kendall_parameters + climatic_indicator, df, mann_kendall_parameters ) result[ ( base.ObservationDataSmoothingStrategy.NO_SMOOTHING, base.ObservationDerivedSeries.MANN_KENDALL_SERIES, ) - ] = (mk_df[variable.name].squeeze(), {"mann-kendall": mk_info}) + ] = (mk_df[climatic_indicator.name].squeeze(), {"mann-kendall": mk_info}) return result -def old_get_observation_time_series( - session: sqlmodel.Session, - variable: observations.Variable, - station: observations.Station, - month: int, - temporal_range: str, - smoothing_strategies: list[base.ObservationDataSmoothingStrategy] = [ # noqa - base.ObservationDataSmoothingStrategy.NO_SMOOTHING - ], - include_decade_data: bool = False, - mann_kendall_parameters: base.MannKendallParameters | None = None, -) -> tuple[ - pd.DataFrame, - Optional[pd.DataFrame], - Optional[pd.DataFrame], - Optional[dict[str, str]], -]: - start, end = parse_temporal_range(temporal_range) - raw_measurements = database.collect_all_monthly_measurements( - session=session, - station_id_filter=station.id, - variable_id_filter=variable.id, - month_filter=month, - ) - df = pd.DataFrame(m.model_dump() for m in raw_measurements) - base_name = variable.name - df = df[["value", "date"]].rename(columns={"value": base_name}) - df["time"] = pd.to_datetime(df["date"], utc=True) - df = df[["time", base_name]] - df.set_index("time", inplace=True) - if start is not None: - df = df[start:] - if end is not None: - df = df[:end] - unsmoothed_col_name = "__".join( - (base_name, base.ObservationDataSmoothingStrategy.NO_SMOOTHING.value) - ) - df[unsmoothed_col_name] = df[base_name] - info = {} - - if include_decade_data: - # group values by climatological decade, which starts at year 1 and ends at year 10 - decade_grouper = df.groupby(((df.index.year - 1) // 10) * 10) - - mean_column_name = f"{base_name}__DECADE_MEAN" - decade_df = decade_grouper.agg( - num_values=(unsmoothed_col_name, "size"), - **{mean_column_name: (unsmoothed_col_name, "mean")}, - ) - - # discard decades where there are less than 7 years - decade_df = decade_df[decade_df.num_values >= 7] - - decade_df = decade_df.drop(columns=["num_values"]) - decade_df["time"] = pd.to_datetime(decade_df.index.astype(str), utc=True) - decade_df.set_index("time", inplace=True) - else: - decade_df = None - - if mann_kendall_parameters is not None: - mk_col = f"{base_name}__MANN_KENDALL" - mk_start = mann_kendall_parameters.start_year or df.index[0].year - mk_end = mann_kendall_parameters.end_year or df.index[-1].year - if mk_end - mk_start >= 27: - mk_df = df[str(mk_start) : str(mk_end)].copy() - mk_result = mk.original_test(mk_df[base_name]) - mk_df[mk_col] = ( - mk_result.slope * (mk_df.index.year - mk_df.index.year.min()) - + mk_result.intercept - ) - mk_df = mk_df.drop(columns=[base_name, unsmoothed_col_name]) - info.update( - { - "mann_kendall": { - "trend": mk_result.trend, - "h": mk_result.h, - "p": mk_result.p, - "z": mk_result.z, - "tau": mk_result.Tau, - "s": mk_result.s, - "var_s": mk_result.var_s, - "slope": mk_result.slope, - "intercept": mk_result.intercept, - } - } - ) - else: - raise ValueError( - "Mann-Kendall start and end year must span at least 27 years" - ) - else: - mk_df = None - - for smoothing_strategy in smoothing_strategies: - if ( - smoothing_strategy - == base.ObservationDataSmoothingStrategy.MOVING_AVERAGE_5_YEARS - ): - col_name = "__".join((base_name, smoothing_strategy.value)) - df[col_name] = df[base_name].rolling(window=5, center=True).mean() - - df = df.drop( - columns=[ - base_name, - ] - ) - return df, decade_df, mk_df, info if len(info) > 0 else None - - async def async_retrieve_data_via_ncss( settings: config.ArpavPpcvSettings, coverage: coverages.CoverageInternal, @@ -632,7 +523,7 @@ def get_coverage_time_series( dict[ tuple[ observations.Station, - observations.Variable, + climaticindicators.ClimaticIndicator, base.ObservationDataSmoothingStrategy, ], pd.Series, @@ -710,7 +601,6 @@ def get_coverage_time_series( for ss in observation_smoothing_strategies if ss != base.ObservationDataSmoothingStrategy.NO_SMOOTHING ] - variable = coverage.configuration.related_observation_variable if coverage.configuration.related_observation_variable is not None: station_data = extract_nearby_station_data( session, @@ -726,7 +616,7 @@ def get_coverage_time_series( raw_station_data, start, end, - variable.name, + coverage.configuration.climatic_indicator.name, aggregation_type=( coverage.configuration.observation_variable_aggregation_type ), @@ -734,25 +624,31 @@ def get_coverage_time_series( observation_result[ ( station, - variable, + coverage.configuration.climatic_indicator, base.ObservationDataSmoothingStrategy.NO_SMOOTHING, ) - ] = station_df[variable.name].squeeze() + ] = station_df[coverage.configuration.climatic_indicator.name].squeeze() for smoothing_strategy in additional_observation_smoothing_strategies: ( station_df, smoothed_column, ) = process_station_data_smoothing_strategy( - station_df, variable.name, smoothing_strategy + station_df, + coverage.configuration.climatic_indicator.name, + smoothing_strategy, ) observation_result[ - (station, variable, smoothing_strategy) + ( + station, + coverage.configuration.climatic_indicator, + smoothing_strategy, + ) ] = station_df[smoothed_column].squeeze() else: logger.info("No station data found, skipping...") else: logger.info( - "Cannot include observation data - no observation variable is related " + "Cannot include observation data - no climatic indicator is related " "to this coverage configuration" ) return coverage_result, observation_result @@ -1037,12 +933,12 @@ def create_db_schema(session: sqlmodel.Session, schema_name: str): session.commit() -def refresh_station_variable_database_view( +def refresh_station_climatic_indicator_database_view( session: sqlmodel.Session, - variable: observations.Variable, + climatic_indicator: climaticindicators.ClimaticIndicator, db_schema_name: Optional[str] = "public", ): - sanitized_name = sanitize_observation_variable_name(variable.name) + sanitized_name = sanitize_observation_variable_name(climatic_indicator.name) view_name = f"{db_schema_name}.stations_{sanitized_name}" index_name = f"idx_{sanitized_name}" drop_view_statement = sqlmodel.text(f"DROP MATERIALIZED VIEW IF EXISTS {view_name}") @@ -1051,20 +947,23 @@ def refresh_station_variable_database_view( f"AS SELECT DISTINCT s.* " f"FROM yearlymeasurement AS ym " f"JOIN station AS s ON s.id = ym.station_id " - f"JOIN variable AS v ON v.id = ym.variable_id " - f"WHERE v.name = '{variable.name}' " + f"JOIN climaticindicator AS c ON c.id = ym.climatic_indicator_id " + f"WHERE c.name = '{climatic_indicator.name}' " + f"AND c.measure_type = '{climatic_indicator.measure_type.value}' " f"UNION " f"SELECT DISTINCT s.* " f"FROM seasonalmeasurement AS sm " f"JOIN station AS s ON s.id = sm.station_id " - f"JOIN variable AS v ON v.id = sm.variable_id " - f"WHERE v.name = '{variable.name}' " + f"JOIN climaticindicator AS c ON c.id = sm.variable_id " + f"WHERE c.name = '{climatic_indicator.name}' " + f"AND c.measure_type = '{climatic_indicator.measure_type.value}' " f"UNION " f"SELECT DISTINCT s.* " f"FROM monthlymeasurement AS mm " f"JOIN station AS s ON s.id = mm.station_id " - f"JOIN variable AS v ON v.id = mm.variable_id " - f"WHERE v.name = '{variable.name}' " + f"JOIN climaticindicator AS c ON c.id = mm.variable_id " + f"WHERE c.name = '{climatic_indicator.name}' " + f"AND c.measure_type = '{climatic_indicator.measure_type.value}' " f"WITH DATA" ) drop_index_statement = sqlmodel.text(f"DROP INDEX IF EXISTS {index_name}") diff --git a/arpav_ppcv/prefect/flows/observations.py b/arpav_ppcv/prefect/flows/observations.py index 18141b1a..6818b4d3 100644 --- a/arpav_ppcv/prefect/flows/observations.py +++ b/arpav_ppcv/prefect/flows/observations.py @@ -1,5 +1,4 @@ import datetime as dt -import uuid from typing import Sequence import httpx @@ -13,10 +12,11 @@ from arpav_ppcv.observations_harvester import operations from arpav_ppcv.operations import ( create_db_schema, - refresh_station_variable_database_view, + refresh_station_climatic_indicator_database_view, ) from arpav_ppcv.schemas import ( base, + climaticindicators, observations, ) @@ -32,7 +32,7 @@ ) def harvest_stations( client: httpx.Client, - variable: observations.Variable, + climatic_indicator: climaticindicators.ClimaticIndicator, fetch_stations_with_months: bool, fetch_stations_with_seasons: bool, fetch_stations_with_yearly_measurements: bool, @@ -43,7 +43,7 @@ def harvest_stations( stations = set() retriever = operations.fetch_remote_stations( client=client, - variables=[variable], + climatic_indicators=[climatic_indicator], fetch_stations_with_months=fetch_stations_with_months, fetch_stations_with_seasons=fetch_stations_with_seasons, fetch_stations_with_yearly_measurements=fetch_stations_with_yearly_measurements, @@ -93,26 +93,28 @@ def find_new_stations( retry_delay_seconds=settings.prefect.flow_retry_delay_seconds, ) def refresh_stations( - variable_name: str | None = None, + climatic_indicator_identifier: str | None = None, refresh_stations_with_monthly_data: bool = True, refresh_stations_with_seasonal_data: bool = True, refresh_stations_with_yearly_data: bool = True, ): client = httpx.Client() with sqlmodel.Session(db_engine) as db_session: - db_variables = _get_variables(db_session, variable_name) - if len(db_variables) > 0: + db_climatic_indicators = _get_climatic_indicators( + db_session, climatic_indicator_identifier + ) + if len(db_climatic_indicators) > 0: to_filter_for_new_stations = set() to_wait_on = [] - for variable in db_variables: + for climatic_indicator in db_climatic_indicators: print( f"refreshing stations that have values for " - f"variable {variable.name!r}..." + f"climatic indicator {climatic_indicator.identifier!r}..." ) if refresh_stations_with_monthly_data: monthly_future = harvest_stations.submit( client, - variable, + climatic_indicator, fetch_stations_with_months=True, fetch_stations_with_seasons=False, fetch_stations_with_yearly_measurements=False, @@ -121,7 +123,7 @@ def refresh_stations( if refresh_stations_with_seasonal_data: seasonal_future = harvest_stations.submit( client, - variable, + climatic_indicator, fetch_stations_with_months=False, fetch_stations_with_seasons=True, fetch_stations_with_yearly_measurements=False, @@ -130,7 +132,7 @@ def refresh_stations( if refresh_stations_with_yearly_data: yearly_future = harvest_stations.submit( client, - variable, + climatic_indicator, fetch_stations_with_months=False, fetch_stations_with_seasons=False, fetch_stations_with_yearly_measurements=True, @@ -169,13 +171,13 @@ def harvest_monthly_measurements( client: httpx.Client, db_session: sqlmodel.Session, station: observations.Station, - variable: observations.Variable, + climatic_indicator: climaticindicators.ClimaticIndicator, month: int, ) -> list[observations.MonthlyMeasurementCreate]: existing_measurements = database.collect_all_monthly_measurements( db_session, station_id_filter=station.id, - variable_id_filter=variable.id, + climatic_indicator_id_filter=climatic_indicator.id, month_filter=month, ) existing = {} @@ -186,7 +188,7 @@ def harvest_monthly_measurements( "https://api.arpa.veneto.it/REST/v1/clima_indicatori", params={ "statcd": station.code, - "indicatore": variable.name, + "indicatore": climatic_indicator.name, "tabella": "M", "periodo": month, }, @@ -196,7 +198,7 @@ def harvest_monthly_measurements( for raw_measurement in response.json().get("data", []): measurement_create = observations.MonthlyMeasurementCreate( station_id=station.id, - variable_id=variable.id, + climatic_indicator_id=climatic_indicator.id, value=raw_measurement["valore"], date=dt.date(raw_measurement["anno"], month, 1), ) @@ -213,20 +215,29 @@ def harvest_monthly_measurements( ) def refresh_monthly_measurements( station_code: str | None = None, - variable_name: str | None = None, + climatic_indicator_identifier: str | None = None, month: int | None = None, ): client = httpx.Client() all_created = [] with sqlmodel.Session(db_engine) as db_session: - if len(db_variables := _get_variables(db_session, variable_name)) > 0: + if ( + len( + db_climatic_indicators := _get_climatic_indicators( + db_session, climatic_indicator_identifier + ) + ) + > 0 + ): if len(db_stations := _get_stations(db_session, station_code)) > 0: for db_station in db_stations: to_create = [] to_wait_for = [] print(f"Processing station: {db_station.name!r}...") - for db_variable in db_variables: - print(f"Processing variable: {db_variable.name!r}...") + for db_climatic_indicator in db_climatic_indicators: + print( + f"Processing climatic indicator: {db_climatic_indicator.identifier!r}..." + ) if len(months := _get_months(month)) > 0: for current_month in months: print(f"Processing month: {current_month!r}...") @@ -234,7 +245,7 @@ def refresh_monthly_measurements( client, db_session, db_station, - db_variable, + db_climatic_indicator, current_month, ) to_wait_for.append(fut) @@ -266,13 +277,13 @@ def harvest_seasonal_measurements( client: httpx.Client, db_session: sqlmodel.Session, station: observations.Station, - variable: observations.Variable, + climatic_indicator: climaticindicators.ClimaticIndicator, season: base.Season, ) -> list[observations.SeasonalMeasurementCreate]: existing_measurements = database.collect_all_seasonal_measurements( db_session, station_id_filter=station.id, - variable_id_filter=variable.id, + climatic_indicator_id_filter=climatic_indicator.id, season_filter=season, ) existing = {} @@ -290,7 +301,7 @@ def harvest_seasonal_measurements( "https://api.arpa.veneto.it/REST/v1/clima_indicatori", params={ "statcd": station.code, - "indicatore": variable.name, + "indicatore": climatic_indicator.name, "tabella": "S", "periodo": season_query_param, }, @@ -300,7 +311,7 @@ def harvest_seasonal_measurements( for raw_measurement in response.json().get("data", []): measurement_create = observations.SeasonalMeasurementCreate( station_id=station.id, - variable_id=variable.id, + climatic_indicator_id=climatic_indicator.id, value=raw_measurement["valore"], year=int(raw_measurement["anno"]), season=season, @@ -318,25 +329,38 @@ def harvest_seasonal_measurements( ) def refresh_seasonal_measurements( station_code: str | None = None, - variable_name: str | None = None, + climatic_indicator_name: str | None = None, season_name: str | None = None, ): client = httpx.Client() all_created = [] with sqlmodel.Session(db_engine) as db_session: - if len(db_variables := _get_variables(db_session, variable_name)) > 0: + if ( + len( + db_climatic_indicators := _get_climatic_indicators( + db_session, climatic_indicator_name + ) + ) + > 0 + ): if len(db_stations := _get_stations(db_session, station_code)) > 0: for db_station in db_stations: to_create = [] to_wait_for = [] print(f"Processing station: {db_station.name!r}...") - for db_variable in db_variables: - print(f"Processing variable: {db_variable.name!r}...") + for db_climatic_indicator in db_climatic_indicators: + print( + f"Processing climatic indicator: {db_climatic_indicator.identifier!r}..." + ) if len(seasons := _get_seasons(season_name)) > 0: for season in seasons: print(f"Processing season: {season!r}...") fut = harvest_seasonal_measurements.submit( - client, db_session, db_station, db_variable, season + client, + db_session, + db_station, + db_climatic_indicator, + season, ) to_wait_for.append(fut) else: @@ -367,13 +391,13 @@ def harvest_yearly_measurements( client: httpx.Client, db_session: sqlmodel.Session, station: observations.Station, - variable: observations.Variable, + climatic_indicator: climaticindicators.ClimaticIndicator, ) -> list[observations.YearlyMeasurementCreate]: to_create = [] existing_measurements = database.collect_all_yearly_measurements( db_session, station_id_filter=station.id, - variable_id_filter=variable.id, + climatic_indicator_id_filter=climatic_indicator.id, ) existing = {} for db_measurement in existing_measurements: @@ -383,7 +407,7 @@ def harvest_yearly_measurements( "https://api.arpa.veneto.it/REST/v1/clima_indicatori", params={ "statcd": station.code, - "indicatore": variable.name, + "indicatore": climatic_indicator.name, "tabella": "A", "periodo": "0", }, @@ -392,7 +416,7 @@ def harvest_yearly_measurements( for raw_measurement in response.json().get("data", []): yearly_measurement_create = observations.YearlyMeasurementCreate( station_id=station.id, - variable_id=variable.id, + climatic_indicator_id=climatic_indicator.id, value=raw_measurement["valore"], year=int(raw_measurement["anno"]), ) @@ -409,21 +433,30 @@ def harvest_yearly_measurements( ) def refresh_yearly_measurements( station_code: str | None = None, - variable_name: str | None = None, + climatic_indicator_identifier: str | None = None, ): client = httpx.Client() all_created = [] with sqlmodel.Session(db_engine) as db_session: - if len(db_variables := _get_variables(db_session, variable_name)) > 0: + if ( + len( + db_climatic_indicators := _get_climatic_indicators( + db_session, climatic_indicator_identifier + ) + ) + > 0 + ): if len(db_stations := _get_stations(db_session, station_code)) > 0: for db_station in db_stations: to_create = [] to_wait_for = [] print(f"Processing station: {db_station.name!r}...") - for db_variable in db_variables: - print(f"Processing variable: {db_variable.name!r}...") + for db_climatic_indicator in db_climatic_indicators: + print( + f"Processing climatic indicator: {db_climatic_indicator.identifier!r}..." + ) fut = harvest_yearly_measurements.submit( - client, db_session, db_station, db_variable + client, db_session, db_station, db_climatic_indicator ) to_wait_for.append(fut) for future in to_wait_for: @@ -455,14 +488,16 @@ def _get_stations( return result -def _get_variables( - db_session: sqlmodel.Session, variable_name: str | None = None -) -> list[observations.Variable]: - if variable_name is not None: - variable = database.get_variable_by_name(db_session, variable_name) - result = [variable] if variable else [] +def _get_climatic_indicators( + db_session: sqlmodel.Session, climatic_indicator_identifier: str | None = None +) -> list[climaticindicators.ClimaticIndicator]: + if climatic_indicator_identifier is not None: + climatic_indicator = database.get_climatic_indicator_by_identifier( + db_session, climatic_indicator_identifier + ) + result = [climatic_indicator] if climatic_indicator else [] else: - result = database.collect_all_variables(db_session) + result = database.collect_all_climatic_indicators(db_session) return result @@ -499,15 +534,17 @@ def _build_created_measurements_table( for measurement in measurements: station_identifier = f"{measurement.station.name} ({measurement.station.code})" station_items = aggregated_items.setdefault(station_identifier, {}) - variable_items = station_items.setdefault(measurement.variable.name, []) - variable_items.append(measurement) + climatic_indicator_items = station_items.setdefault( + measurement.climatic_indicator.identifier, [] + ) + climatic_indicator_items.append(measurement) table_contents = [] for station_identifier, station_items in aggregated_items.items(): - for variable_name, measurement_items in station_items.items(): + for climatic_indicator_identifier, measurement_items in station_items.items(): table_contents.append( { "station": station_identifier, - "variable": variable_name, + "climatic_indicator": climatic_indicator_identifier, "number of new measurements": len(measurement_items), } ) @@ -557,11 +594,15 @@ def build_yearly_measurement_id( retries=settings.prefect.num_task_retries, retry_delay_seconds=settings.prefect.task_retry_delay_seconds, ) -def refresh_stations_for_variable(variable_id: uuid.UUID, db_schema_name: str): +def refresh_stations_for_climatic_indicator( + climatic_indicator_id: int, db_schema_name: str +): with sqlmodel.Session(db_engine) as db_session: - variable = database.get_variable(db_session, variable_id) - return refresh_station_variable_database_view( - db_session, variable, db_schema_name=db_schema_name + climatic_indicator = database.get_climatic_indicator( + db_session, climatic_indicator_id + ) + return refresh_station_climatic_indicator_database_view( + db_session, climatic_indicator, db_schema_name=db_schema_name ) @@ -571,24 +612,29 @@ def refresh_stations_for_variable(variable_id: uuid.UUID, db_schema_name: str): retry_delay_seconds=settings.prefect.flow_retry_delay_seconds, ) def refresh_station_variables( - variable_name: str | None = None, + climatic_indicator_identifier: str | None = None, ): with sqlmodel.Session(db_engine) as db_session: create_db_schema(db_session, settings.variable_stations_db_schema) - variable_ids = [v.id for v in _get_variables(db_session, variable_name)] - if len(variable_ids) > 0: + climatic_indicator_ids = [ + ci.id + for ci in _get_climatic_indicators( + db_session, climatic_indicator_identifier + ) + ] + if len(climatic_indicator_ids) > 0: to_wait_on = [] - for variable_id in variable_ids: + for climatic_indicator_id in climatic_indicator_ids: print( f"refreshing stations that have values for " - f"variable {variable_id!r}..." + f"climatic indicator with id: {climatic_indicator_id!r}..." ) - var_future = refresh_stations_for_variable.submit( - variable_id, + var_future = refresh_stations_for_climatic_indicator.submit( + climatic_indicator_id, settings.variable_stations_db_schema, ) to_wait_on.append(var_future) for future in to_wait_on: future.result() else: - print("There are no variables to process, skipping...") + print("There are no climatic indicators to process, skipping...") diff --git a/arpav_ppcv/schemas/coverages.py b/arpav_ppcv/schemas/coverages.py index fec6f67f..276b1234 100644 --- a/arpav_ppcv/schemas/coverages.py +++ b/arpav_ppcv/schemas/coverages.py @@ -18,7 +18,6 @@ from . import base if TYPE_CHECKING: - from . import observations from . import climaticindicators logger = logging.getLogger(__name__) @@ -194,12 +193,12 @@ class CoverageConfiguration(sqlmodel.SQLModel, table=True): climatic_indicator_id: Optional[int] = sqlmodel.Field( default=None, foreign_key="climaticindicator.id" ) - observation_variable_id: Optional[uuid.UUID] = sqlmodel.Field( - default=None, foreign_key="variable.id" - ) - observation_variable_aggregation_type: Optional[ - base.ObservationAggregationType - ] = None + # observation_variable_id: Optional[uuid.UUID] = sqlmodel.Field( + # default=None, foreign_key="variable.id" + # ) + # observation_variable_aggregation_type: Optional[ + # base.ObservationAggregationType + # ] = None uncertainty_lower_bounds_coverage_configuration_id: Optional[ uuid.UUID ] = sqlmodel.Field(default=None, foreign_key="coverageconfiguration.id") @@ -242,9 +241,9 @@ class CoverageConfiguration(sqlmodel.SQLModel, table=True): back_populates="related_coverage_configurations" ) - related_observation_variable: "observations.Variable" = sqlmodel.Relationship( - back_populates="related_coverage_configurations" - ) + # related_observation_variable: "observations.Variable" = sqlmodel.Relationship( + # back_populates="related_coverage_configurations" + # ) uncertainty_lower_bounds_coverage_configuration: Optional[ "CoverageConfiguration" diff --git a/arpav_ppcv/schemas/observations.py b/arpav_ppcv/schemas/observations.py index 4a2e676a..c7ac4cb2 100644 --- a/arpav_ppcv/schemas/observations.py +++ b/arpav_ppcv/schemas/observations.py @@ -15,7 +15,7 @@ from . import base if TYPE_CHECKING: - from . import coverages + from .climaticindicators import ClimaticIndicator def get_season(self, value: str): if value.lower() in ("djf",): @@ -66,11 +66,11 @@ class Station(StationBase, table=True): "passive_deletes": True, }, ) - monthly_variables: list["Variable"] = sqlmodel.Relationship( + monthly_climatic_indicators: list["ClimaticIndicator"] = sqlmodel.Relationship( sa_relationship_kwargs={ "primaryjoin": ( "and_(Station.id == MonthlyMeasurement.station_id, " - "Variable.id == MonthlyMeasurement.variable_id)" + "ClimaticIndicator.id == MonthlyMeasurement.climatic_indicator_id)" ), "secondary": "monthlymeasurement", "viewonly": True, @@ -88,11 +88,11 @@ class Station(StationBase, table=True): "passive_deletes": True, }, ) - seasonal_variables: list["Variable"] = sqlmodel.Relationship( + seasonal_climatic_indicators: list["ClimaticIndicator"] = sqlmodel.Relationship( sa_relationship_kwargs={ "primaryjoin": ( "and_(Station.id == SeasonalMeasurement.station_id, " - "Variable.id == SeasonalMeasurement.variable_id)" + "ClimaticIndicator.id == SeasonalMeasurement.climatic_indicator_id)" ), "secondary": "seasonalmeasurement", "viewonly": True, @@ -110,11 +110,11 @@ class Station(StationBase, table=True): "passive_deletes": True, }, ) - yearly_variables: list["Variable"] = sqlmodel.Relationship( + yearly_climatic_indicators: list["ClimaticIndicator"] = sqlmodel.Relationship( sa_relationship_kwargs={ "primaryjoin": ( "and_(Station.id == YearlyMeasurement.station_id, " - "Variable.id == YearlyMeasurement.variable_id)" + "ClimaticIndicator.id == YearlyMeasurement.climatic_indicator_id)" ), "secondary": "yearlymeasurement", "viewonly": True, @@ -164,80 +164,84 @@ class StationUpdate(sqlmodel.SQLModel): active_until: Optional[dt.date] = None -class VariableBase(sqlmodel.SQLModel): - id: pydantic.UUID4 = sqlmodel.Field(default_factory=uuid.uuid4, primary_key=True) - name: str = sqlmodel.Field(unique=True) - display_name_english: Optional[str] = None - display_name_italian: Optional[str] = None - description_english: Optional[str] = None - description_italian: Optional[str] = None - unit_english: Optional[str] = None - unit_italian: Optional[str] = None - - -class Variable(VariableBase, table=True): - related_coverage_configurations: list[ - "coverages.CoverageConfiguration" - ] = sqlmodel.Relationship(back_populates="related_observation_variable") - monthly_measurements: list["MonthlyMeasurement"] = sqlmodel.Relationship( - back_populates="variable", - sa_relationship_kwargs={ - # ORM relationship config, which explicitly includes the - # `delete` and `delete-orphan` options because we want the ORM - # to try to delete monthly measurements when their related variable - # is deleted - "cascade": "all, delete-orphan", - # expect that the RDBMS handles cascading deletes - "passive_deletes": True, - }, - ) - seasonal_measurements: list["SeasonalMeasurement"] = sqlmodel.Relationship( - back_populates="variable", - sa_relationship_kwargs={ - # ORM relationship config, which explicitly includes the - # `delete` and `delete-orphan` options because we want the ORM - # to try to delete seasonal measurements when their related variable - # is deleted - "cascade": "all, delete-orphan", - # expect that the RDBMS handles cascading deletes - "passive_deletes": True, - }, - ) - yearly_measurements: list["YearlyMeasurement"] = sqlmodel.Relationship( - back_populates="variable", - sa_relationship_kwargs={ - # ORM relationship config, which explicitly includes the - # `delete` and `delete-orphan` options because we want the ORM - # to try to delete yearly measurements when their related variable - # is deleted - "cascade": "all, delete-orphan", - # expect that the RDBMS handles cascading deletes - "passive_deletes": True, - }, - ) - - def __hash__(self): - return hash(self.id) - - -class VariableCreate(sqlmodel.SQLModel): - name: str - display_name_english: Optional[str] = None - display_name_italian: Optional[str] = None - description_english: Optional[str] = None - description_italian: Optional[str] = None - unit_english: Optional[str] = None - unit_italian: Optional[str] = None - - -class VariableUpdate(sqlmodel.SQLModel): - name: Optional[str] = None - display_name_english: Optional[str] = None - display_name_italian: Optional[str] = None - description_english: Optional[str] = None - description_italian: Optional[str] = None - unit_english: Optional[str] = None - unit_italian: Optional[str] = None +# # # TODO: Replace this with climatic_indicator +# class VariableBase(sqlmodel.SQLModel): +# id: pydantic.UUID4 = sqlmodel.Field(default_factory=uuid.uuid4, primary_key=True) +# name: str = sqlmodel.Field(unique=True) +# display_name_english: Optional[str] = None +# display_name_italian: Optional[str] = None +# description_english: Optional[str] = None +# description_italian: Optional[str] = None +# unit_english: Optional[str] = None +# unit_italian: Optional[str] = None +# +# +# # # TODO: Replace this with climatic_indicator +# class Variable(VariableBase, table=True): +# related_coverage_configurations: list[ +# "coverages.CoverageConfiguration" +# ] = sqlmodel.Relationship(back_populates="related_observation_variable") +# monthly_measurements: list["MonthlyMeasurement"] = sqlmodel.Relationship( +# back_populates="variable", +# sa_relationship_kwargs={ +# # ORM relationship config, which explicitly includes the +# # `delete` and `delete-orphan` options because we want the ORM +# # to try to delete monthly measurements when their related variable +# # is deleted +# "cascade": "all, delete-orphan", +# # expect that the RDBMS handles cascading deletes +# "passive_deletes": True, +# }, +# ) +# seasonal_measurements: list["SeasonalMeasurement"] = sqlmodel.Relationship( +# back_populates="variable", +# sa_relationship_kwargs={ +# # ORM relationship config, which explicitly includes the +# # `delete` and `delete-orphan` options because we want the ORM +# # to try to delete seasonal measurements when their related variable +# # is deleted +# "cascade": "all, delete-orphan", +# # expect that the RDBMS handles cascading deletes +# "passive_deletes": True, +# }, +# ) +# yearly_measurements: list["YearlyMeasurement"] = sqlmodel.Relationship( +# back_populates="variable", +# sa_relationship_kwargs={ +# # ORM relationship config, which explicitly includes the +# # `delete` and `delete-orphan` options because we want the ORM +# # to try to delete yearly measurements when their related variable +# # is deleted +# "cascade": "all, delete-orphan", +# # expect that the RDBMS handles cascading deletes +# "passive_deletes": True, +# }, +# ) +# +# def __hash__(self): +# return hash(self.id) +# +# +# # TODO: Replace this with climatic_indicator +# class VariableCreate(sqlmodel.SQLModel): +# name: str +# display_name_english: Optional[str] = None +# display_name_italian: Optional[str] = None +# description_english: Optional[str] = None +# description_italian: Optional[str] = None +# unit_english: Optional[str] = None +# unit_italian: Optional[str] = None +# +# +# # TODO: Replace this with climatic_indicator +# class VariableUpdate(sqlmodel.SQLModel): +# name: Optional[str] = None +# display_name_english: Optional[str] = None +# display_name_italian: Optional[str] = None +# description_english: Optional[str] = None +# description_italian: Optional[str] = None +# unit_english: Optional[str] = None +# unit_italian: Optional[str] = None class MonthlyMeasurementBase(sqlmodel.SQLModel): @@ -257,20 +261,31 @@ class MonthlyMeasurement(MonthlyMeasurementBase, table=True): onupdate="CASCADE", ondelete="CASCADE", # i.e. delete a monthly measurement if its related station is deleted ), - sqlalchemy.ForeignKeyConstraint( - [ - "variable_id", - ], - [ - "variable.id", - ], - onupdate="CASCADE", - ondelete="CASCADE", # i.e. delete a monthly measurement if its related station is deleted - ), + # sqlalchemy.ForeignKeyConstraint( + # [ + # "variable_id", + # ], + # [ + # "variable.id", + # ], + # onupdate="CASCADE", + # ondelete="CASCADE", # i.e. delete a monthly measurement if its related station is deleted + # ), + # sqlalchemy.ForeignKeyConstraint( + # [ + # "climatic_indicator_id", + # ], + # [ + # "climaticindicator.id", + # ], + # onupdate="CASCADE", + # ondelete="CASCADE", # i.e. delete a monthly measurement if its related station is deleted + # ), ) id: pydantic.UUID4 = sqlmodel.Field(default_factory=uuid.uuid4, primary_key=True) station_id: pydantic.UUID4 - variable_id: pydantic.UUID4 + # variable_id: pydantic.UUID4 + # climatic_indicator_id: int station: Station = sqlmodel.Relationship( back_populates="monthly_measurements", @@ -281,20 +296,30 @@ class MonthlyMeasurement(MonthlyMeasurementBase, table=True): "lazy": "joined", }, ) - variable: Variable = sqlmodel.Relationship( - back_populates="monthly_measurements", - sa_relationship_kwargs={ - # retrieve the related resource immediately, by means of a SQL JOIN - this - # is instead of the default lazy behavior of only retrieving related - # records when they are accessed by the ORM - "lazy": "joined", - }, - ) + # variable: Variable = sqlmodel.Relationship( + # back_populates="monthly_measurements", + # sa_relationship_kwargs={ + # # retrieve the related resource immediately, by means of a SQL JOIN - this + # # is instead of the default lazy behavior of only retrieving related + # # records when they are accessed by the ORM + # "lazy": "joined", + # }, + # ) + # climatic_indicator: ClimaticIndicator = sqlmodel.Relationship( + # back_populates="monthly_measurements", + # sa_relationship_kwargs={ + # # retrieve the related resource immediately, by means of a SQL JOIN - this + # # is instead of the default lazy behavior of only retrieving related + # # records when they are accessed by the ORM + # "lazy": "joined", + # }, + # ) class MonthlyMeasurementCreate(sqlmodel.SQLModel): station_id: pydantic.UUID4 - variable_id: pydantic.UUID4 + # variable_id: pydantic.UUID4 + climatic_indicator_id: int value: float date: dt.date @@ -316,20 +341,31 @@ class SeasonalMeasurement(sqlmodel.SQLModel, table=True): onupdate="CASCADE", ondelete="CASCADE", # i.e. delete a measurement if its related station is deleted ), - sqlalchemy.ForeignKeyConstraint( - [ - "variable_id", - ], - [ - "variable.id", - ], - onupdate="CASCADE", - ondelete="CASCADE", # i.e. delete a measurement if its related station is deleted - ), + # sqlalchemy.ForeignKeyConstraint( + # [ + # "variable_id", + # ], + # [ + # "variable.id", + # ], + # onupdate="CASCADE", + # ondelete="CASCADE", # i.e. delete a measurement if its related station is deleted + # ), + # sqlalchemy.ForeignKeyConstraint( + # [ + # "climatic_indicator_id", + # ], + # [ + # "climaticindicator.id", + # ], + # onupdate="CASCADE", + # ondelete="CASCADE", # i.e. delete a measurement if its related station is deleted + # ), ) id: pydantic.UUID4 = sqlmodel.Field(default_factory=uuid.uuid4, primary_key=True) station_id: pydantic.UUID4 - variable_id: pydantic.UUID4 + # variable_id: pydantic.UUID4 + # climatic_indicator_id: int value: float year: int season: base.Season @@ -343,20 +379,30 @@ class SeasonalMeasurement(sqlmodel.SQLModel, table=True): "lazy": "joined", }, ) - variable: Variable = sqlmodel.Relationship( - back_populates="seasonal_measurements", - sa_relationship_kwargs={ - # retrieve the related resource immediately, by means of a SQL JOIN - this - # is instead of the default lazy behavior of only retrieving related - # records when they are accessed by the ORM - "lazy": "joined", - }, - ) + # variable: Variable = sqlmodel.Relationship( + # back_populates="seasonal_measurements", + # sa_relationship_kwargs={ + # # retrieve the related resource immediately, by means of a SQL JOIN - this + # # is instead of the default lazy behavior of only retrieving related + # # records when they are accessed by the ORM + # "lazy": "joined", + # }, + # ) + # climatic_indicator: ClimaticIndicator = sqlmodel.Relationship( + # back_populates="seasonal_measurements", + # sa_relationship_kwargs={ + # # retrieve the related resource immediately, by means of a SQL JOIN - this + # # is instead of the default lazy behavior of only retrieving related + # # records when they are accessed by the ORM + # "lazy": "joined", + # }, + # ) class SeasonalMeasurementCreate(sqlmodel.SQLModel): station_id: pydantic.UUID4 - variable_id: pydantic.UUID4 + # variable_id: pydantic.UUID4 + climatic_indicator_id: pydantic.UUID4 value: float year: int season: base.Season @@ -380,20 +426,31 @@ class YearlyMeasurement(sqlmodel.SQLModel, table=True): onupdate="CASCADE", ondelete="CASCADE", # i.e. delete a measurement if its related station is deleted ), - sqlalchemy.ForeignKeyConstraint( - [ - "variable_id", - ], - [ - "variable.id", - ], - onupdate="CASCADE", - ondelete="CASCADE", # i.e. delete a measurement if its related station is deleted - ), + # sqlalchemy.ForeignKeyConstraint( + # [ + # "variable_id", + # ], + # [ + # "variable.id", + # ], + # onupdate="CASCADE", + # ondelete="CASCADE", # i.e. delete a measurement if its related station is deleted + # ), + # sqlalchemy.ForeignKeyConstraint( + # [ + # "climatic_indicator_id", + # ], + # [ + # "climaticindicator.id", + # ], + # onupdate="CASCADE", + # ondelete="CASCADE", # i.e. delete a measurement if its related station is deleted + # ), ) id: pydantic.UUID4 = sqlmodel.Field(default_factory=uuid.uuid4, primary_key=True) station_id: pydantic.UUID4 - variable_id: pydantic.UUID4 + # variable_id: pydantic.UUID4 + # climatic_indicator_id: int value: float year: int @@ -406,20 +463,30 @@ class YearlyMeasurement(sqlmodel.SQLModel, table=True): "lazy": "joined", }, ) - variable: Variable = sqlmodel.Relationship( - back_populates="yearly_measurements", - sa_relationship_kwargs={ - # retrieve the related resource immediately, by means of a SQL JOIN - this - # is instead of the default lazy behavior of only retrieving related - # records when they are accessed by the ORM - "lazy": "joined", - }, - ) + # variable: Variable = sqlmodel.Relationship( + # back_populates="yearly_measurements", + # sa_relationship_kwargs={ + # # retrieve the related resource immediately, by means of a SQL JOIN - this + # # is instead of the default lazy behavior of only retrieving related + # # records when they are accessed by the ORM + # "lazy": "joined", + # }, + # ) + # climatic_indicator: ClimaticIndicator = sqlmodel.Relationship( + # back_populates="yearly_measurements", + # sa_relationship_kwargs={ + # # retrieve the related resource immediately, by means of a SQL JOIN - this + # # is instead of the default lazy behavior of only retrieving related + # # records when they are accessed by the ORM + # "lazy": "joined", + # }, + # ) class YearlyMeasurementCreate(sqlmodel.SQLModel): station_id: pydantic.UUID4 - variable_id: pydantic.UUID4 + # variable_id: pydantic.UUID4 + climatic_indicator_id: int value: float year: int From ccfb8f9906c6dbbec9effdbe2dcbbab3854fd9d3 Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Silva Date: Mon, 11 Nov 2024 16:53:58 +0000 Subject: [PATCH 17/22] Continue work to replace Variable with ClimaticIndicator (wip) --- arpav_ppcv/schemas/observations.py | 182 ++++++------------ arpav_ppcv/webapp/admin/app.py | 1 - arpav_ppcv/webapp/admin/schemas.py | 11 -- arpav_ppcv/webapp/admin/views/observations.py | 108 ----------- arpav_ppcv/webapp/api_v2/routers/coverages.py | 43 ++--- .../webapp/api_v2/routers/observations.py | 45 ----- arpav_ppcv/webapp/api_v2/schemas/base.py | 25 ++- .../webapp/api_v2/schemas/observations.py | 76 -------- arpav_ppcv/webapp/api_v3/schemas/base.py | 25 ++- 9 files changed, 105 insertions(+), 411 deletions(-) diff --git a/arpav_ppcv/schemas/observations.py b/arpav_ppcv/schemas/observations.py index c7ac4cb2..e3c54ec8 100644 --- a/arpav_ppcv/schemas/observations.py +++ b/arpav_ppcv/schemas/observations.py @@ -261,31 +261,20 @@ class MonthlyMeasurement(MonthlyMeasurementBase, table=True): onupdate="CASCADE", ondelete="CASCADE", # i.e. delete a monthly measurement if its related station is deleted ), - # sqlalchemy.ForeignKeyConstraint( - # [ - # "variable_id", - # ], - # [ - # "variable.id", - # ], - # onupdate="CASCADE", - # ondelete="CASCADE", # i.e. delete a monthly measurement if its related station is deleted - # ), - # sqlalchemy.ForeignKeyConstraint( - # [ - # "climatic_indicator_id", - # ], - # [ - # "climaticindicator.id", - # ], - # onupdate="CASCADE", - # ondelete="CASCADE", # i.e. delete a monthly measurement if its related station is deleted - # ), + sqlalchemy.ForeignKeyConstraint( + [ + "climatic_indicator_id", + ], + [ + "climaticindicator.id", + ], + onupdate="CASCADE", + ondelete="CASCADE", # i.e. delete a monthly measurement if its related climatic_indicator is deleted + ), ) id: pydantic.UUID4 = sqlmodel.Field(default_factory=uuid.uuid4, primary_key=True) station_id: pydantic.UUID4 - # variable_id: pydantic.UUID4 - # climatic_indicator_id: int + climatic_indicator_id: int station: Station = sqlmodel.Relationship( back_populates="monthly_measurements", @@ -296,24 +285,15 @@ class MonthlyMeasurement(MonthlyMeasurementBase, table=True): "lazy": "joined", }, ) - # variable: Variable = sqlmodel.Relationship( - # back_populates="monthly_measurements", - # sa_relationship_kwargs={ - # # retrieve the related resource immediately, by means of a SQL JOIN - this - # # is instead of the default lazy behavior of only retrieving related - # # records when they are accessed by the ORM - # "lazy": "joined", - # }, - # ) - # climatic_indicator: ClimaticIndicator = sqlmodel.Relationship( - # back_populates="monthly_measurements", - # sa_relationship_kwargs={ - # # retrieve the related resource immediately, by means of a SQL JOIN - this - # # is instead of the default lazy behavior of only retrieving related - # # records when they are accessed by the ORM - # "lazy": "joined", - # }, - # ) + climatic_indicator: ClimaticIndicator = sqlmodel.Relationship( + back_populates="monthly_measurements", + sa_relationship_kwargs={ + # retrieve the related resource immediately, by means of a SQL JOIN - this + # is instead of the default lazy behavior of only retrieving related + # records when they are accessed by the ORM + "lazy": "joined", + }, + ) class MonthlyMeasurementCreate(sqlmodel.SQLModel): @@ -341,31 +321,20 @@ class SeasonalMeasurement(sqlmodel.SQLModel, table=True): onupdate="CASCADE", ondelete="CASCADE", # i.e. delete a measurement if its related station is deleted ), - # sqlalchemy.ForeignKeyConstraint( - # [ - # "variable_id", - # ], - # [ - # "variable.id", - # ], - # onupdate="CASCADE", - # ondelete="CASCADE", # i.e. delete a measurement if its related station is deleted - # ), - # sqlalchemy.ForeignKeyConstraint( - # [ - # "climatic_indicator_id", - # ], - # [ - # "climaticindicator.id", - # ], - # onupdate="CASCADE", - # ondelete="CASCADE", # i.e. delete a measurement if its related station is deleted - # ), + sqlalchemy.ForeignKeyConstraint( + [ + "climatic_indicator_id", + ], + [ + "climaticindicator.id", + ], + onupdate="CASCADE", + ondelete="CASCADE", # i.e. delete a measurement if its related climatic_indicator is deleted + ), ) id: pydantic.UUID4 = sqlmodel.Field(default_factory=uuid.uuid4, primary_key=True) station_id: pydantic.UUID4 - # variable_id: pydantic.UUID4 - # climatic_indicator_id: int + climatic_indicator_id: int value: float year: int season: base.Season @@ -379,29 +348,19 @@ class SeasonalMeasurement(sqlmodel.SQLModel, table=True): "lazy": "joined", }, ) - # variable: Variable = sqlmodel.Relationship( - # back_populates="seasonal_measurements", - # sa_relationship_kwargs={ - # # retrieve the related resource immediately, by means of a SQL JOIN - this - # # is instead of the default lazy behavior of only retrieving related - # # records when they are accessed by the ORM - # "lazy": "joined", - # }, - # ) - # climatic_indicator: ClimaticIndicator = sqlmodel.Relationship( - # back_populates="seasonal_measurements", - # sa_relationship_kwargs={ - # # retrieve the related resource immediately, by means of a SQL JOIN - this - # # is instead of the default lazy behavior of only retrieving related - # # records when they are accessed by the ORM - # "lazy": "joined", - # }, - # ) + climatic_indicator: ClimaticIndicator = sqlmodel.Relationship( + back_populates="seasonal_measurements", + sa_relationship_kwargs={ + # retrieve the related resource immediately, by means of a SQL JOIN - this + # is instead of the default lazy behavior of only retrieving related + # records when they are accessed by the ORM + "lazy": "joined", + }, + ) class SeasonalMeasurementCreate(sqlmodel.SQLModel): station_id: pydantic.UUID4 - # variable_id: pydantic.UUID4 climatic_indicator_id: pydantic.UUID4 value: float year: int @@ -426,31 +385,20 @@ class YearlyMeasurement(sqlmodel.SQLModel, table=True): onupdate="CASCADE", ondelete="CASCADE", # i.e. delete a measurement if its related station is deleted ), - # sqlalchemy.ForeignKeyConstraint( - # [ - # "variable_id", - # ], - # [ - # "variable.id", - # ], - # onupdate="CASCADE", - # ondelete="CASCADE", # i.e. delete a measurement if its related station is deleted - # ), - # sqlalchemy.ForeignKeyConstraint( - # [ - # "climatic_indicator_id", - # ], - # [ - # "climaticindicator.id", - # ], - # onupdate="CASCADE", - # ondelete="CASCADE", # i.e. delete a measurement if its related station is deleted - # ), + sqlalchemy.ForeignKeyConstraint( + [ + "climatic_indicator_id", + ], + [ + "climaticindicator.id", + ], + onupdate="CASCADE", + ondelete="CASCADE", # i.e. delete a measurement if its climatic_indicator station is deleted + ), ) id: pydantic.UUID4 = sqlmodel.Field(default_factory=uuid.uuid4, primary_key=True) station_id: pydantic.UUID4 - # variable_id: pydantic.UUID4 - # climatic_indicator_id: int + climatic_indicator_id: int value: float year: int @@ -463,29 +411,19 @@ class YearlyMeasurement(sqlmodel.SQLModel, table=True): "lazy": "joined", }, ) - # variable: Variable = sqlmodel.Relationship( - # back_populates="yearly_measurements", - # sa_relationship_kwargs={ - # # retrieve the related resource immediately, by means of a SQL JOIN - this - # # is instead of the default lazy behavior of only retrieving related - # # records when they are accessed by the ORM - # "lazy": "joined", - # }, - # ) - # climatic_indicator: ClimaticIndicator = sqlmodel.Relationship( - # back_populates="yearly_measurements", - # sa_relationship_kwargs={ - # # retrieve the related resource immediately, by means of a SQL JOIN - this - # # is instead of the default lazy behavior of only retrieving related - # # records when they are accessed by the ORM - # "lazy": "joined", - # }, - # ) + climatic_indicator: ClimaticIndicator = sqlmodel.Relationship( + back_populates="yearly_measurements", + sa_relationship_kwargs={ + # retrieve the related resource immediately, by means of a SQL JOIN - this + # is instead of the default lazy behavior of only retrieving related + # records when they are accessed by the ORM + "lazy": "joined", + }, + ) class YearlyMeasurementCreate(sqlmodel.SQLModel): station_id: pydantic.UUID4 - # variable_id: pydantic.UUID4 climatic_indicator_id: int value: float year: int diff --git a/arpav_ppcv/webapp/admin/app.py b/arpav_ppcv/webapp/admin/app.py index b8172c00..1f2ae044 100644 --- a/arpav_ppcv/webapp/admin/app.py +++ b/arpav_ppcv/webapp/admin/app.py @@ -71,7 +71,6 @@ def create_admin(settings: config.ArpavPpcvSettings) -> ArpavPpcvAdmin: admin.add_view( coverage_views.CoverageConfigurationView(coverages.CoverageConfiguration) ) - admin.add_view(observations_views.VariableView(observations.Variable)) admin.add_view(observations_views.StationView(observations.Station)) admin.add_view( DropDown( diff --git a/arpav_ppcv/webapp/admin/schemas.py b/arpav_ppcv/webapp/admin/schemas.py index 2d8d6530..405e54f0 100644 --- a/arpav_ppcv/webapp/admin/schemas.py +++ b/arpav_ppcv/webapp/admin/schemas.py @@ -105,17 +105,6 @@ class CoverageConfigurationReadListItem(sqlmodel.SQLModel): name: str -class VariableRead(sqlmodel.SQLModel): - id: uuid.UUID - name: str - display_name_english: Optional[str] - display_name_italian: Optional[str] - description_english: Optional[str] - description_italian: Optional[str] - unit_english: Optional[str] - unit_italian: Optional[str] - - class StationRead(sqlmodel.SQLModel): id: uuid.UUID name: str diff --git a/arpav_ppcv/webapp/admin/views/observations.py b/arpav_ppcv/webapp/admin/views/observations.py index 323342eb..d65d3a94 100644 --- a/arpav_ppcv/webapp/admin/views/observations.py +++ b/arpav_ppcv/webapp/admin/views/observations.py @@ -198,114 +198,6 @@ async def find_all( return [self._serialize_instance(item) for item in db_measurements] -class VariableView(ModelView): - identity = "variables" - name = "Variable" - label = "Variables" - icon = "fa fa-blog" - pk_attr = "id" - - exclude_fields_from_list = ( - "id", - "display_name_english", - "display_name_italian", - "description_english", - "description_italian", - "unit_english", - "unit_italian", - ) - exclude_fields_from_detail = ("id",) - - fields = ( - fields.UuidField("id"), - starlette_admin.StringField("name", required=True), - starlette_admin.StringField("display_name_english", required=True), - starlette_admin.StringField("display_name_italian", required=True), - starlette_admin.StringField("description_english"), - starlette_admin.StringField("description_italian"), - starlette_admin.StringField("unit_english"), - starlette_admin.StringField("unit_italian"), - ) - - def __init__(self, *args, **kwargs) -> None: - super().__init__(*args, **kwargs) - self.icon = "fa-solid fa-cloud-sun-rain" - - @staticmethod - def _serialize_instance( - instance: observations.Variable, - ) -> read_schemas.VariableRead: - return read_schemas.VariableRead(**instance.model_dump()) - - async def get_pk_value(self, request: Request, obj: Any) -> str: - # note: we need to cast the value, which is a uuid.UUID, to a string - # because starlette_admin just assumes that the value of a model's - # pk attribute is always JSON serializable so it doesn't bother with - # calling the respective field's `serialize_value()` method - result = await super().get_pk_value(request, obj) - return str(result) - - async def create( - self, request: Request, data: dict[str, Any] - ) -> Optional[read_schemas.VariableRead]: - try: - data = await self._arrange_data(request, data) - await self.validate(request, data) - var_create = observations.VariableCreate(**data) - db_variable = await anyio.to_thread.run_sync( - db.create_variable, - request.state.session, - var_create, - ) - return self._serialize_instance(db_variable) - except Exception as e: - return self.handle_exception(e) - - async def edit( - self, request: Request, pk: Any, data: dict[str, Any] - ) -> Optional[read_schemas.VariableRead]: - try: - data = await self._arrange_data(request, data, True) - await self.validate(request, data) - var_update = observations.VariableUpdate(**data) - db_var = await anyio.to_thread.run_sync( - db.get_variable, request.state.session, pk - ) - db_var = await anyio.to_thread.run_sync( - db.update_variable, request.state.session, db_var, var_update - ) - return self._serialize_instance(db_var) - except Exception as e: - logger.exception("something went wrong") - self.handle_exception(e) - - async def find_by_pk(self, request: Request, pk: Any) -> read_schemas.VariableRead: - db_var = await anyio.to_thread.run_sync( - db.get_variable, request.state.session, pk - ) - return self._serialize_instance(db_var) - - async def find_all( - self, - request: Request, - skip: int = 0, - limit: int = 100, - where: Union[dict[str, Any], str, None] = None, - order_by: Optional[list[str]] = None, - ) -> Sequence[read_schemas.VariableRead]: - list_variables = functools.partial( - db.list_variables, - limit=limit, - offset=skip, - name_filter=str(where) if where not in (None, "") else None, - include_total=False, - ) - db_vars, _ = await anyio.to_thread.run_sync( - list_variables, request.state.session - ) - return [self._serialize_instance(db_var) for db_var in db_vars] - - class StationView(ModelView): identity = "stations" name = "Station" diff --git a/arpav_ppcv/webapp/api_v2/routers/coverages.py b/arpav_ppcv/webapp/api_v2/routers/coverages.py index bbe93323..1fa00b93 100644 --- a/arpav_ppcv/webapp/api_v2/routers/coverages.py +++ b/arpav_ppcv/webapp/api_v2/routers/coverages.py @@ -5,14 +5,12 @@ from typing import ( Annotated, Optional, - Sequence, ) import anyio.to_thread import httpx import pydantic import shapely.io -import sqlmodel from fastapi import ( APIRouter, Depends, @@ -34,17 +32,15 @@ palette, ) from ....config import ArpavPpcvSettings +from ....thredds import ( + crawler as thredds_crawler, + utils as thredds_utils, +) from ....schemas.base import ( CoreConfParamName, CoverageDataSmoothingStrategy, ObservationDataSmoothingStrategy, ) -from ....schemas.coverages import ConfigurationParameterValue -from ....schemas.climaticindicators import ClimaticIndicator -from ....thredds import ( - crawler as thredds_crawler, - utils as thredds_utils, -) from ... import dependencies from ..schemas import coverages as coverage_schemas from ..schemas.base import ( @@ -184,12 +180,12 @@ def get_coverage_configuration( coverage_configuration=db_coverage_configuration ) palette_colors = palette.parse_palette( - db_coverage_configuration.climatic_indicator.palette, settings.palettes_dir + db_coverage_configuration.palette, settings.palettes_dir ) applied_colors = [] if palette_colors is not None: - minimum = db_coverage_configuration.climatic_indicator.color_scale_min - maximum = db_coverage_configuration.climatic_indicator.color_scale_max + minimum = db_coverage_configuration.color_scale_min + maximum = db_coverage_configuration.color_scale_max if abs(maximum - minimum) > 0.001: applied_colors = palette.apply_palette( palette_colors, minimum, maximum, num_stops=settings.palette_num_stops @@ -201,10 +197,7 @@ def get_coverage_configuration( f"colorscale min and max values" ) else: - logger.warning( - f"Unable to parse palette " - f"{db_coverage_configuration.climatic_indicator.palette!r}" - ) + logger.warning(f"Unable to parse palette {db_coverage_configuration.palette!r}") return coverage_schemas.CoverageConfigurationReadDetail.from_db_instance( db_coverage_configuration, allowed_coverage_identifiers, applied_colors, request ) @@ -233,19 +226,25 @@ def list_coverage_identifiers( Query(), ] = None, ): - conf_param_values_filter, climatic_indicator = _retrieve_climatic_indicator_filter( - db_session, possible_value or [] - ) - logger.debug(f"{conf_param_values_filter=}") - logger.debug(f"{climatic_indicator=}") + conf_param_values_filter = [] + for possible in possible_value or []: + param_name, param_value = possible.partition(":")[::2] + db_parameter_value = db.get_configuration_parameter_value_by_names( + db_session, param_name, param_value + ) + if db_parameter_value is not None: + conf_param_values_filter.append(db_parameter_value) + else: + logger.debug( + f"ignoring unknown parameter/value pair {param_name}:{param_value}" + ) cov_internals, filtered_total = db.list_coverage_identifiers( db_session, limit=list_params.limit, offset=list_params.offset, include_total=True, name_filter=name_contains, - configuration_parameter_values_filter=conf_param_values_filter, - climatic_indicator_filter=climatic_indicator, + configuration_parameter_values_filter=conf_param_values_filter or None, ) _, unfiltered_total = db.list_coverage_identifiers( db_session, limit=1, offset=0, include_total=True diff --git a/arpav_ppcv/webapp/api_v2/routers/observations.py b/arpav_ppcv/webapp/api_v2/routers/observations.py index 68e32a39..8e31ea2f 100644 --- a/arpav_ppcv/webapp/api_v2/routers/observations.py +++ b/arpav_ppcv/webapp/api_v2/routers/observations.py @@ -26,7 +26,6 @@ database as db, operations, ) -from ....config import ArpavPpcvSettings from ...responses import GeoJsonResponse from ....schemas import base from ... import dependencies @@ -126,50 +125,6 @@ def get_station( return observations.StationReadListItem.from_db_instance(db_station, request) -@router.get("/variables", response_model=observations.VariableList) -def list_variables( - request: Request, - db_session: Annotated[Session, Depends(dependencies.get_db_session)], - settings: Annotated[ArpavPpcvSettings, Depends(dependencies.get_settings)], - list_params: Annotated[dependencies.CommonListFilterParameters, Depends()], -): - """List known variables.""" - variables, filtered_total = db.list_variables( - db_session, - limit=list_params.limit, - offset=list_params.offset, - include_total=True, - ) - _, unfiltered_total = db.list_variables( - db_session, limit=1, offset=0, include_total=True - ) - return observations.VariableList.from_items( - variables, - request, - settings, - limit=list_params.limit, - offset=list_params.offset, - filtered_total=filtered_total, - unfiltered_total=unfiltered_total, - ) - - -@router.get( - "/variables/{variable_id}", - response_model=observations.VariableReadListItem, -) -def get_variable( - request: Request, - db_session: Annotated[Session, Depends(dependencies.get_db_session)], - settings: Annotated[ArpavPpcvSettings, Depends(dependencies.get_settings)], - variable_id: pydantic.UUID4, -): - db_variable = db.get_variable(db_session, variable_id) - return observations.VariableReadListItem.from_db_instance( - db_variable, request, settings - ) - - @router.get("/monthly-measurements", response_model=observations.MonthlyMeasurementList) def list_monthly_measurements( request: Request, diff --git a/arpav_ppcv/webapp/api_v2/schemas/base.py b/arpav_ppcv/webapp/api_v2/schemas/base.py index 20ecaa3c..83a8ebab 100644 --- a/arpav_ppcv/webapp/api_v2/schemas/base.py +++ b/arpav_ppcv/webapp/api_v2/schemas/base.py @@ -15,6 +15,7 @@ from ....schemas import ( base as base_schemas, observations as observations_schemas, + climaticindicators as climaticindicators_schemas, coverages as coverages_schemas, ) from ....schemas.base import ( @@ -83,34 +84,34 @@ def from_observation_series( cls, series: pd.Series, station: observations_schemas.Station, - variable: observations_schemas.Variable, + climatic_indicator: climaticindicators_schemas.ClimaticIndicator, smoothing_strategy: base_schemas.ObservationDataSmoothingStrategy, extra_info: typing.Optional[dict[str, str | int | float | dict]] = None, derived_series: typing.Optional[base_schemas.ObservationDerivedSeries] = None, ): if derived_series is not None: series_elaboration = base_schemas.TimeSeriesElaboration.DERIVED - name = "_".join((variable.name, derived_series.value)) + name = "_".join((climatic_indicator.identifier, derived_series.value)) translated_name = { LOCALE_EN.language: " - ".join( ( - variable.display_name_english, + climatic_indicator.display_name_english, derived_series.get_display_name(LOCALE_EN), ) ), LOCALE_IT.language: " - ".join( ( - variable.display_name_italian, + climatic_indicator.display_name_italian, derived_series.get_display_name(LOCALE_IT), ) ), } else: series_elaboration = base_schemas.TimeSeriesElaboration.ORIGINAL - name = variable.name + name = climatic_indicator.identifier translated_name = { - LOCALE_EN.language: variable.display_name_english, - LOCALE_IT.language: variable.display_name_italian, + LOCALE_EN.language: climatic_indicator.display_name_english, + LOCALE_IT.language: climatic_indicator.display_name_italian, } return cls( name=name, @@ -122,7 +123,7 @@ def from_observation_series( info={ "processing_method": smoothing_strategy.value, "station": station.name, - "variable": variable.name, + "climatic_indicator": climatic_indicator.identifier, "series_elaboration": series_elaboration.value, "derived_series": ( derived_series.value if derived_series is not None else "" @@ -214,11 +215,9 @@ def from_observation_series( LOCALE_IT ), }, - "variable": { - LOCALE_EN.language: variable.display_name_english - or variable.name, - LOCALE_IT.language: variable.display_name_italian - or variable.name, + "climatic_indicator": { + LOCALE_EN.language: climatic_indicator.display_name_english, + LOCALE_IT.language: climatic_indicator.display_name_italian, }, "station": { LOCALE_EN.language: station.name, diff --git a/arpav_ppcv/webapp/api_v2/schemas/observations.py b/arpav_ppcv/webapp/api_v2/schemas/observations.py index 19bcf968..51f11c13 100644 --- a/arpav_ppcv/webapp/api_v2/schemas/observations.py +++ b/arpav_ppcv/webapp/api_v2/schemas/observations.py @@ -1,18 +1,11 @@ import logging -import typing import uuid import pydantic from fastapi import Request -from .... import operations -from ....config import ArpavPpcvSettings from ....schemas import observations from ....schemas.base import Season -from ..schemas.base import ( - get_meta, - get_list_links, -) from .base import WebResourceList logger = logging.getLogger(__name__) @@ -74,42 +67,6 @@ def from_db_instance( ) -class VariableReadListItem(observations.VariableBase): - url: pydantic.AnyHttpUrl - stations_vector_tile_layer_url_template: str - - @classmethod - def from_db_instance( - cls, - instance: observations.Variable, - request: Request, - settings: ArpavPpcvSettings, - ) -> "VariableReadListItem": - return cls( - **instance.model_dump( - exclude={ - "display_name_english", - "display_name_italian", - "unit_italian", - } - ), - display_name_english=instance.display_name_english or instance.name, - display_name_italian=instance.display_name_italian or instance.name, - unit_italian=instance.unit_italian or instance.unit_english, - url=str(request.url_for("get_variable", variable_id=instance.id)), - stations_vector_tile_layer_url_template="/".join( - ( - settings.public_url, - "vector-tiles", - operations.sanitize_observation_variable_name(instance.name), - "{z}", - "{x}", - "{y}", - ) - ), - ) - - class MonthlyMeasurementReadListItem(observations.MonthlyMeasurementBase): url: pydantic.AnyHttpUrl variable_name: str @@ -190,39 +147,6 @@ class StationList(WebResourceList): path_operation_name = "list_stations" -class VariableList(WebResourceList): - items: list[VariableReadListItem] - list_item_type = VariableReadListItem - path_operation_name = "list_variables" - - @classmethod - def from_items( - cls, - items: typing.Sequence[observations.Variable], - request: Request, - settings: ArpavPpcvSettings, - *, - limit: int, - offset: int, - filtered_total: int, - unfiltered_total: int, - ): - return cls( - meta=get_meta(len(items), unfiltered_total, filtered_total), - links=get_list_links( - request, - cls.path_operation_name, - limit, - offset, - filtered_total, - len(items), - ), - items=[ - cls.list_item_type.from_db_instance(i, request, settings) for i in items - ], - ) - - class MonthlyMeasurementList(WebResourceList): items: list[MonthlyMeasurementReadListItem] list_item_type = MonthlyMeasurementReadListItem diff --git a/arpav_ppcv/webapp/api_v3/schemas/base.py b/arpav_ppcv/webapp/api_v3/schemas/base.py index bdef8653..19417aaa 100644 --- a/arpav_ppcv/webapp/api_v3/schemas/base.py +++ b/arpav_ppcv/webapp/api_v3/schemas/base.py @@ -15,6 +15,7 @@ from ....schemas import ( base as base_schemas, observations as observations_schemas, + climaticindicators as climaticindicators_schemas, coverages as coverages_schemas, ) from ....schemas.base import ( @@ -92,34 +93,34 @@ def from_observation_series( cls, series: pd.Series, station: observations_schemas.Station, - variable: observations_schemas.Variable, + climatic_indicator: climaticindicators_schemas.ClimaticIndicator, smoothing_strategy: base_schemas.ObservationDataSmoothingStrategy, extra_info: typing.Optional[dict[str, str | int | float | dict]] = None, derived_series: typing.Optional[base_schemas.ObservationDerivedSeries] = None, ): if derived_series is not None: series_elaboration = base_schemas.TimeSeriesElaboration.DERIVED - name = "_".join((variable.name, derived_series.value)) + name = "_".join((climatic_indicator.identifier.name, derived_series.value)) translated_name = { LOCALE_EN.language: " - ".join( ( - variable.display_name_english, + climatic_indicator.display_name_english, derived_series.get_display_name(LOCALE_EN), ) ), LOCALE_IT.language: " - ".join( ( - variable.display_name_italian, + climatic_indicator.display_name_italian, derived_series.get_display_name(LOCALE_IT), ) ), } else: series_elaboration = base_schemas.TimeSeriesElaboration.ORIGINAL - name = variable.name + name = climatic_indicator.identifier translated_name = { - LOCALE_EN.language: variable.display_name_english, - LOCALE_IT.language: variable.display_name_italian, + LOCALE_EN.language: climatic_indicator.display_name_english, + LOCALE_IT.language: climatic_indicator.display_name_italian, } return cls( name=name, @@ -131,7 +132,7 @@ def from_observation_series( info={ "processing_method": smoothing_strategy.value, "station": station.name, - "variable": variable.name, + "climatic_indicator": climatic_indicator.identifier, "series_elaboration": series_elaboration.value, "derived_series": ( derived_series.value if derived_series is not None else "" @@ -223,11 +224,9 @@ def from_observation_series( LOCALE_IT ), }, - "variable": { - LOCALE_EN.language: variable.display_name_english - or variable.name, - LOCALE_IT.language: variable.display_name_italian - or variable.name, + "climatic_indicator": { + LOCALE_EN.language: climatic_indicator.display_name_english, + LOCALE_IT.language: climatic_indicator.display_name_italian, }, "station": { LOCALE_EN.language: station.name, From 638fc2bc35626ccea7df6fc4b96a7862dc5759cb Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Silva Date: Thu, 14 Nov 2024 17:58:56 +0000 Subject: [PATCH 18/22] Replacing variable with climatic_indicator (wip) --- arpav_ppcv/bootstrapper/cliapp.py | 107 +-- .../coverage_configurations/forecast/cdd.py | 161 ---- .../coverage_configurations/forecast/cdds.py | 352 -------- .../coverage_configurations/forecast/fd.py | 386 +------- .../coverage_configurations/forecast/hdds.py | 359 +------- .../coverage_configurations/forecast/hwdi.py | 162 ---- .../coverage_configurations/forecast/pr.py | 780 +---------------- .../forecast/r95ptot.py | 155 ---- .../forecast/snwdays.py | 362 -------- .../coverage_configurations/forecast/su30.py | 386 +------- .../coverage_configurations/forecast/tas.py | 822 +----------------- .../forecast/tasmax.py | 588 +------------ .../forecast/tasmin.py | 588 +------------ .../coverage_configurations/forecast/tr.py | 386 +------- .../historical/cdds.py | 64 -- .../coverage_configurations/historical/fd.py | 72 +- .../historical/hdds.py | 64 -- .../historical/prcptot.py | 129 +-- .../historical/su30.py | 72 +- .../coverage_configurations/historical/tdd.py | 149 +--- .../coverage_configurations/historical/tnd.py | 129 +-- .../coverage_configurations/historical/tr.py | 69 +- .../coverage_configurations/historical/txd.py | 129 +-- arpav_ppcv/database.py | 14 - ...added_relationship_between_measurement_.py | 41 + arpav_ppcv/schemas/climaticindicators.py | 42 + arpav_ppcv/schemas/coverages.py | 44 - arpav_ppcv/schemas/observations.py | 6 +- arpav_ppcv/webapp/api_v2/routers/coverages.py | 6 +- 29 files changed, 134 insertions(+), 6490 deletions(-) create mode 100644 arpav_ppcv/migrations/versions/7b7412888496_added_relationship_between_measurement_.py diff --git a/arpav_ppcv/bootstrapper/cliapp.py b/arpav_ppcv/bootstrapper/cliapp.py index 762707f3..2e9e93df 100644 --- a/arpav_ppcv/bootstrapper/cliapp.py +++ b/arpav_ppcv/bootstrapper/cliapp.py @@ -61,7 +61,6 @@ tr as tr_climatic_indicators, ) -# from .variables import generate_variable_configurations from .configurationparameters import generate_configuration_parameters app = typer.Typer() @@ -69,11 +68,19 @@ @app.command("municipalities") def bootstrap_municipalities( - ctx: typer.Context, municipalities_dataset: Path, force: bool = False + ctx: typer.Context, + municipalities_dataset: Annotated[ + Path, + typer.Argument( + help=( + "Path to the municipalities geoJSON dataset. Example: " + "/home/appuser/app/data/municipalities-istat-2021.geojson" + ) + ), + ], + force: bool = False, ) -> None: """Bootstrap Italian municipalities""" - # data_directory = Path(__file__).parents[2] / "data" - # municipalities_dataset = data_directory / "limits_IT_municipalities.geojson" to_create = [] should_bootstrap = False @@ -178,26 +185,6 @@ def bootstrap_station_variables( print("Done!") -# @app.command("observation-variables") -# def bootstrap_observation_variables( -# ctx: typer.Context, -# ): -# """Create initial observation variables.""" -# variables = generate_variable_configurations() -# with sqlmodel.Session(ctx.obj["engine"]) as session: -# for var_create in variables: -# try: -# db_variable = database.create_variable(session, var_create) -# print(f"Created observation variable {db_variable.name!r}") -# except IntegrityError as err: -# print( -# f"Could not create observation " -# f"variable {var_create.name!r}: {err}" -# ) -# session.rollback() -# print("Done!") - - @app.command("climatic-indicators") def bootstrap_climatic_indicators( ctx: typer.Context, name_filter: Optional[str] = None @@ -291,11 +278,9 @@ def bootstrap_coverage_configurations( ): """Create initial coverage configurations.""" with sqlmodel.Session(ctx.obj["engine"]) as session: - all_vars = database.collect_all_variables(session) all_conf_param_values = database.collect_all_configuration_parameter_values( session ) - variables = {v.name: v for v in all_vars} conf_param_values = { (pv.configuration_parameter.name, pv.name): pv for pv in all_conf_param_values @@ -307,27 +292,19 @@ def bootstrap_coverage_configurations( cdd_forecast.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( - cdds_forecast.generate_configurations( - conf_param_values, variables, clim_indicator_ids - ) + cdds_forecast.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( - fd_forecast.generate_configurations( - conf_param_values, variables, clim_indicator_ids - ) + fd_forecast.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( - hdds_forecast.generate_configurations( - conf_param_values, variables, clim_indicator_ids - ) + hdds_forecast.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( hwdi_forecast.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( - pr_forecast.generate_configurations( - conf_param_values, variables, clim_indicator_ids - ) + pr_forecast.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( r95ptot_forecast.generate_configurations(conf_param_values, clim_indicator_ids) @@ -336,74 +313,48 @@ def bootstrap_coverage_configurations( snwdays_forecast.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( - su30_forecast.generate_configurations( - conf_param_values, variables, clim_indicator_ids - ) + su30_forecast.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( - tas_forecast.generate_configurations( - conf_param_values, variables, clim_indicator_ids - ) + tas_forecast.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( - tasmax_forecast.generate_configurations( - conf_param_values, variables, clim_indicator_ids - ) + tasmax_forecast.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( - tasmin_forecast.generate_configurations( - conf_param_values, variables, clim_indicator_ids - ) + tasmin_forecast.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( - tr_forecast.generate_configurations( - conf_param_values, variables, clim_indicator_ids - ) + tr_forecast.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( - cdds_historical.generate_configurations( - conf_param_values, variables, clim_indicator_ids - ) + cdds_historical.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( - fd_historical.generate_configurations( - conf_param_values, variables, clim_indicator_ids - ) + fd_historical.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( - hdds_historical.generate_configurations( - conf_param_values, variables, clim_indicator_ids - ) + hdds_historical.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( prcptot_historical.generate_configurations( - conf_param_values, variables, clim_indicator_ids + conf_param_values, clim_indicator_ids ) ) coverage_configurations.extend( - su30_historical.generate_configurations( - conf_param_values, variables, clim_indicator_ids - ) + su30_historical.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( - tdd_historical.generate_configurations( - conf_param_values, variables, clim_indicator_ids - ) + tdd_historical.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( - tnd_historical.generate_configurations( - conf_param_values, variables, clim_indicator_ids - ) + tnd_historical.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( - tr_historical.generate_configurations( - conf_param_values, variables, clim_indicator_ids - ) + tr_historical.generate_configurations(conf_param_values, clim_indicator_ids) ) coverage_configurations.extend( - txd_historical.generate_configurations( - conf_param_values, variables, clim_indicator_ids - ) + txd_historical.generate_configurations(conf_param_values, clim_indicator_ids) ) for cov_conf_create in coverage_configurations: diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdd.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdd.py index 3e839d53..e07459d3 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdd.py @@ -4,17 +4,6 @@ ) from ....schemas.base import CoreConfParamName -# _DISPLAY_NAME_ENGLISH = "Consecutive dry days" -# _DISPLAY_NAME_ITALIAN = "Giorni secchi" -# _DESCRIPTION_ENGLISH = ( -# "Maximum number of consecutive dry days (daily precipitation less than 1 mm)" -# ) -# _DESCRIPTION_ITALIAN = ( -# "Numero massimo di giorni consecutivi asciutti (precipitazione giornaliera " -# "inferiore a 1 mm)" -# ) -# _DATA_PRECISION = 0 - def generate_configurations( conf_param_values, @@ -23,20 +12,10 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="cdd_30yr_anomaly_seasonal_agree_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdd", wms_main_layer_name="consecutive_dry_days_index_per_time_period-uncertainty_group", wms_secondary_layer_name="consecutive_dry_days_index_per_time_period", thredds_url_pattern="ensembletwbc/std/clipped/eca_cdd_an_avgagree_{time_window}_{scenario}_{year_period}_ls_VFVGTAA.nc", - # unit_english="days", - # unit_italian="gg", - # palette="uncert-stippled/div-BrBG-inv", - # color_scale_min=-40, - # color_scale_max=40, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -44,21 +23,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdd") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -113,19 +77,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdd_30yr_anomaly_seasonal_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdd", wms_main_layer_name="consecutive_dry_days_index_per_time_period", thredds_url_pattern="indici5rcm/clipped/eca_cdd_an_EC-EARTH_CCLM4-8-17_{scenario}_{year_period}_{time_window}_ls_VFVGTAA.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/div-BrBG-inv", - # color_scale_min=-40, - # color_scale_max=40, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -133,21 +87,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdd") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -205,19 +144,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdd_30yr_anomaly_seasonal_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdd", wms_main_layer_name="consecutive_dry_days_index_per_time_period", thredds_url_pattern="indici5rcm/clipped/eca_cdd_an_EC-EARTH_RACMO22E_{scenario}_{year_period}_{time_window}_ls_VFVGTAA.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/div-BrBG-inv", - # color_scale_min=-40, - # color_scale_max=40, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -225,21 +154,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdd") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -297,19 +211,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdd_30yr_anomaly_seasonal_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdd", wms_main_layer_name="consecutive_dry_days_index_per_time_period", thredds_url_pattern="indici5rcm/clipped/eca_cdd_an_EC-EARTH_RCA4_{scenario}_{year_period}_{time_window}_ls_VFVGTAA.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/div-BrBG-inv", - # color_scale_min=-40, - # color_scale_max=40, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -317,21 +221,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdd") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -386,19 +275,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdd_30yr_anomaly_seasonal_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdd", wms_main_layer_name="consecutive_dry_days_index_per_time_period", thredds_url_pattern="indici5rcm/clipped/eca_cdd_an_HadGEM2-ES_RACMO22E_{scenario}_{year_period}_{time_window}_ls_VFVGTAA.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/div-BrBG-inv", - # color_scale_min=-40, - # color_scale_max=40, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -406,21 +285,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdd") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -478,19 +342,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdd_30yr_anomaly_seasonal_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdd", wms_main_layer_name="consecutive_dry_days_index_per_time_period", thredds_url_pattern="indici5rcm/clipped/eca_cdd_an_MPI-ESM-LR_REMO2009_{scenario}_{year_period}_{time_window}_ls_VFVGTAA.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/div-BrBG-inv", - # color_scale_min=-40, - # color_scale_max=40, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -498,21 +352,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdd") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdds.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdds.py index 4c3697fd..8e862c97 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdds.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/cdds.py @@ -7,39 +7,17 @@ ConfigurationParameterPossibleValueCreate, ) -# _DISPLAY_NAME_ENGLISH = "Cooling degree days" -# _DISPLAY_NAME_ITALIAN = "Gradi giorno di raffrescamento" -# _DESCRIPTION_ENGLISH = ( -# "Sum of the average daily temperature minus 21°C if the average daily temperature " -# "is greater than 24°C" -# ) -# _DESCRIPTION_ITALIAN = ( -# "Somma della temperatura media giornaliera meno 21°C se la temperatura media " -# "giornaliera è maggiore di 24°C" -# ) -# _DATA_PRECISION = 0 - def generate_configurations( conf_param_values, - variables, climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( name="cdds_annual_absolute_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds", thredds_url_pattern="ensymbc/clipped_noppcne/cdds_21oc24oc_avg_ts19762100_{scenario}_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=1000, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -47,21 +25,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -88,25 +51,13 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("CDD_jrc")) is not None else None - ), observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="cdds_annual_absolute_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped_noppcne/cdds_21oc24oc_EC-EARTH_CCLM4-8-17_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=1000, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -114,21 +65,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -161,18 +97,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_annual_absolute_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped_noppcne/cdds_21oc24oc_EC-EARTH_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=1000, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -180,21 +107,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -227,18 +139,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_annual_absolute_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped_noppcne/cdds_21oc24oc_EC-EARTH_RCA4_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=1000, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -246,21 +149,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -290,18 +178,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_annual_absolute_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped_noppcne/cdds_21oc24oc_HadGEM2-ES_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=1000, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -309,21 +188,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -356,18 +220,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_annual_absolute_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped_noppcne/cdds_21oc24oc_MPI-ESM-LR_REMO2009_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=1000, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -375,21 +230,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -422,18 +262,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_annual_absolute_model_ensemble_upper_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds_stdup", wms_main_layer_name="cdds_stdup", thredds_url_pattern="ensymbc/std/clipped/cdds_21oc24oc_stdup_ts19762100_{scenario}_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=1000, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -441,21 +272,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -490,18 +306,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_annual_absolute_model_ensemble_lower_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds_stddown", wms_main_layer_name="cdds_stddown", thredds_url_pattern="ensymbc/std/clipped/cdds_21oc24oc_stddown_ts19762100_{scenario}_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=1000, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -509,21 +316,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -558,19 +350,10 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_30yr_anomaly_annual_agree_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds-uncertainty_group", wms_secondary_layer_name="cdds", thredds_url_pattern="ensembletwbc/std/clipped/cdds_an_21oc24oc_avgagree_{time_window}_{scenario}_ls_VFVG.nc", - # unit_english="ºC", - # palette="uncert-stippled/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=1000, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -578,21 +361,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -632,18 +400,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_30yr_anomaly_annual_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds", thredds_url_pattern="indici5rcm/clipped_noppcne/cdds_an_21oc24oc_EC-EARTH_CCLM4-8-17_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=1000, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -651,21 +410,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -708,18 +452,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_30yr_anomaly_annual_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds", thredds_url_pattern="indici5rcm/clipped_noppcne/cdds_an_21oc24oc_EC-EARTH_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=1000, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -727,21 +462,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -784,18 +504,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_30yr_anomaly_annual_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds", thredds_url_pattern="indici5rcm/clipped_noppcne/cdds_an_21oc24oc_EC-EARTH_RCA4_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=1000, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -803,21 +514,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -857,18 +553,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_30yr_anomaly_annual_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds", thredds_url_pattern="indici5rcm/clipped_noppcne/cdds_an_21oc24oc_HadGEM2-ES_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=1000, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -876,21 +563,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -933,18 +605,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_30yr_anomaly_annual_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="cdds", wms_main_layer_name="cdds", thredds_url_pattern="indici5rcm/clipped_noppcne/cdds_an_21oc24oc_MPI-ESM-LR_REMO2009_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=1000, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -952,21 +615,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "cdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/fd.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/fd.py index c40808de..a6e6c470 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/fd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/fd.py @@ -1,40 +1,20 @@ -from ....schemas.base import ( - CoreConfParamName, - ObservationAggregationType, -) +from ....schemas.base import CoreConfParamName from ....schemas.coverages import ( CoverageConfigurationCreate, ConfigurationParameterPossibleValueCreate, ) -# _DISPLAY_NAME_ENGLISH = "Frosty days" -# _DISPLAY_NAME_ITALIAN = "Giorni di gelo" -# _DESCRIPTION_ENGLISH = "Number of days with minimum temperature less than 0 °C" -# _DESCRIPTION_ITALIAN = "Numero di giorni con temperatura minima inferiore a 0 °C" -# _DATA_PRECISION = 0 - def generate_configurations( conf_param_values, - variables, climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( name="fd_annual_absolute_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd", thredds_url_pattern="ensymbc/clipped/ecafd_0_avg_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-Blues-inv", - # color_scale_min=0, - # color_scale_max=200, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -42,21 +22,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -83,26 +48,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("FD")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="fd_annual_absolute_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/ecafd_0_EC-EARTH_CCLM4-8-17_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-Blues-inv", - # color_scale_min=0, - # color_scale_max=200, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -110,21 +61,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -154,26 +90,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("FD")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="fd_annual_absolute_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/ecafd_0_EC-EARTH_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-Blues-inv", - # color_scale_min=0, - # color_scale_max=200, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -181,21 +103,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -225,26 +132,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("FD")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="fd_annual_absolute_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/ecafd_0_EC-EARTH_RCA4_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-Blues-inv", - # color_scale_min=0, - # color_scale_max=200, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -252,21 +145,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -293,26 +171,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("FD")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="fd_annual_absolute_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/ecafd_0_HadGEM2-ES_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-Blues-inv", - # color_scale_min=0, - # color_scale_max=200, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -320,21 +184,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -364,26 +213,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("FD")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="fd_annual_absolute_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/ecafd_0_MPI-ESM-LR_REMO2009_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-Blues-inv", - # color_scale_min=0, - # color_scale_max=200, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -391,21 +226,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -435,26 +255,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("FD")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="fd_annual_absolute_model_ensemble_upper_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd_stdup", wms_main_layer_name="fd_stdup", thredds_url_pattern="ensymbc/std/clipped/ecafd_0_stdup_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-Blues-inv", - # color_scale_min=0, - # color_scale_max=200, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -462,21 +268,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -511,19 +302,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="fd_annual_absolute_model_ensemble_lower_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd_stddown", wms_main_layer_name="fd_stddown", thredds_url_pattern="ensymbc/std/clipped/ecafd_0_stddown_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-Blues-inv", - # color_scale_min=0, - # color_scale_max=200, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -531,21 +312,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -580,20 +346,10 @@ def generate_configurations( ), CoverageConfigurationCreate( name="fd_30yr_anomaly_annual_agree_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd-uncertainty_group", wms_secondary_layer_name="fd", thredds_url_pattern="ensembletwbc/std/clipped/ecafdan_0_avgagree_{time_window}_{scenario}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="uncert-stippled/seq-YlOrRd-inv", - # color_scale_min=-85, - # color_scale_max=5, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -601,21 +357,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -655,19 +396,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="fd_30yr_anomaly_annual_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd", thredds_url_pattern="indici5rcm/clipped/ecafdan_0_EC-EARTH_CCLM4-8-17_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd-inv", - # color_scale_min=-85, - # color_scale_max=5, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -675,21 +406,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -732,19 +448,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="fd_30yr_anomaly_annual_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd", thredds_url_pattern="indici5rcm/clipped/ecafdan_0_EC-EARTH_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd-inv", - # color_scale_min=-85, - # color_scale_max=5, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -752,21 +458,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -809,19 +500,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="fd_30yr_anomaly_annual_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd", thredds_url_pattern="indici5rcm/clipped/ecafdan_0_EC-EARTH_RCA4_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd-inv", - # color_scale_min=-85, - # color_scale_max=5, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -829,21 +510,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -883,19 +549,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="fd_30yr_anomaly_annual_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd", thredds_url_pattern="indici5rcm/clipped/ecafdan_0_HadGEM2-ES_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd-inv", - # color_scale_min=-85, - # color_scale_max=5, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -903,21 +559,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -960,19 +601,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="fd_30yr_anomaly_annual_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="fd", wms_main_layer_name="fd", thredds_url_pattern="indici5rcm/clipped/ecafdan_0_MPI-ESM-LR_REMO2009_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd-inv", - # color_scale_min=-85, - # color_scale_max=5, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -980,21 +611,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "fd") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hdds.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hdds.py index 875b33cb..6c3be5a0 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hdds.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hdds.py @@ -1,45 +1,20 @@ -from ....schemas.base import ( - CoreConfParamName, - ObservationAggregationType, -) +from ....schemas.base import CoreConfParamName from ....schemas.coverages import ( CoverageConfigurationCreate, ConfigurationParameterPossibleValueCreate, ) -# _DISPLAY_NAME_ENGLISH = "Heating degree days" -# _DISPLAY_NAME_ITALIAN = "Gradi giorno di riscaldamento" -# _DESCRIPTION_ENGLISH = ( -# "Sum of 20°C minus the average daily temperature if the average daily temperature " -# "is less than 20°C" -# ) -# _DESCRIPTION_ITALIAN = ( -# "Somma di 20°C meno la temperatura media giornaliera se la temperatura media " -# "giornaliera è minore di 20°C" -# ) -# _DATA_PRECISION = 0 - def generate_configurations( conf_param_values, - variables, climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( name="hdds_annual_absolute_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds", thredds_url_pattern="ensymbc/clipped_noppcne/hdds_20oc_avg_ts19762100_{scenario}_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-Blues-inv", - # color_scale_min=0, - # color_scale_max=7000, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -47,21 +22,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -88,25 +48,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("HDD_it")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="hdds_annual_absolute_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped_noppcne/hdds_20oc_EC-EARTH_CCLM4-8-17_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-Blues-inv", - # color_scale_min=0, - # color_scale_max=7000, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -114,21 +61,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -161,18 +93,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_annual_absolute_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped_noppcne/hdds_20oc_EC-EARTH_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-Blues-inv", - # color_scale_min=0, - # color_scale_max=7000, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -180,21 +103,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -227,18 +135,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_annual_absolute_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped_noppcne/hdds_20oc_EC-EARTH_RCA4_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-Blues-inv", - # color_scale_min=0, - # color_scale_max=7000, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -246,21 +145,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -290,18 +174,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_annual_absolute_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped_noppcne/hdds_20oc_HadGEM2-ES_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-Blues-inv", - # color_scale_min=0, - # color_scale_max=7000, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -309,21 +184,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -356,18 +216,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_annual_absolute_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped_noppcne/hdds_20oc_MPI-ESM-LR_REMO2009_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-Blues-inv", - # color_scale_min=0, - # color_scale_max=7000, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -375,21 +226,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -422,18 +258,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_annual_absolute_model_ensemble_upper_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds_stdup", wms_main_layer_name="hdds_stdup", thredds_url_pattern="ensymbc/std/clipped/hdds_20oc_stdup_ts19762100_{scenario}_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-Blues-inv", - # color_scale_min=0, - # color_scale_max=7000, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -441,21 +268,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -490,18 +302,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_annual_absolute_model_ensemble_lower_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds_stddown", wms_main_layer_name="hdds_stddown", thredds_url_pattern="ensymbc/std/clipped/hdds_20oc_stddown_ts19762100_{scenario}_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-Blues-inv", - # color_scale_min=0, - # color_scale_max=7000, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -509,21 +312,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -556,22 +344,12 @@ def generate_configurations( ), ], ), - # --- CoverageConfigurationCreate( name="hdds_30yr_anomaly_annual_agree_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds-uncertainty_group", wms_secondary_layer_name="hdds", thredds_url_pattern="ensembletwbc/std/clipped/hdds_an_20oc_avgagree_{time_window}_{scenario}_ls_VFVG.nc", - # unit_english="ºC", - # palette="uncert-stippled/seq-YlOrRd-inv", - # color_scale_min=-2000, - # color_scale_max=0, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -579,21 +357,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -633,18 +396,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_30yr_anomaly_annual_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds", thredds_url_pattern="indici5rcm/clipped_noppcne/hdds_an_20oc_EC-EARTH_CCLM4-8-17_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd-inv", - # color_scale_min=-2000, - # color_scale_max=0, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -652,21 +406,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -709,18 +448,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_30yr_anomaly_annual_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds", thredds_url_pattern="indici5rcm/clipped_noppcne/hdds_an_20oc_EC-EARTH_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd-inv", - # color_scale_min=-2000, - # color_scale_max=0, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -728,21 +458,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -785,18 +500,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_30yr_anomaly_annual_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds", thredds_url_pattern="indici5rcm/clipped_noppcne/hdds_an_20oc_EC-EARTH_RCA4_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd-inv", - # color_scale_min=-2000, - # color_scale_max=0, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -804,21 +510,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -858,18 +549,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_30yr_anomaly_annual_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds", thredds_url_pattern="indici5rcm/clipped_noppcne/hdds_an_20oc_HadGEM2-ES_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd-inv", - # color_scale_min=-2000, - # color_scale_max=0, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -877,21 +559,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -934,18 +601,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_30yr_anomaly_annual_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="hdds", wms_main_layer_name="hdds", thredds_url_pattern="indici5rcm/clipped_noppcne/hdds_an_20oc_MPI-ESM-LR_REMO2009_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd-inv", - # color_scale_min=-2000, - # color_scale_max=0, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -953,21 +611,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hdds") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hwdi.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hwdi.py index 5dad7858..b177a43e 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hwdi.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/hwdi.py @@ -4,18 +4,6 @@ ConfigurationParameterPossibleValueCreate, ) -# _DISPLAY_NAME_ENGLISH = "Duration of heat waves" -# _DISPLAY_NAME_ITALIAN = "Durata delle ondate di calore" -# _DESCRIPTION_ENGLISH = ( -# "Sequences of 5 consecutive days in which the temperature is 5°C higher than the " -# "reference average for that day of the year" -# ) -# _DESCRIPTION_ITALIAN = ( -# "Sequenze di 5 giorni consecutivi in cui la temperatura è maggiore di 5°C rispetto " -# "alla media di riferimento per quel giorno dell'anno" -# ) -# _DATA_PRECISION = 0 - def generate_configurations( conf_param_values, @@ -24,20 +12,10 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="hwdi_30yr_anomaly_seasonal_agree_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="heat_wave_duration_index_wrt_mean_of_reference_period", wms_main_layer_name="heat_wave_duration_index_wrt_mean_of_reference_period-uncertainty_group", wms_secondary_layer_name="heat_wave_duration_index_wrt_mean_of_reference_period", thredds_url_pattern="ensembletwbc/std/clipped/heat_waves_anom_avgagree_55_{time_window}_{scenario}_{year_period}_VFVGTAA.nc", - # unit_english="days", - # unit_italian="gg", - # palette="uncert-stippled/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=50, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hwdi-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -45,21 +23,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hwdi") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -99,19 +62,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hwdi_30yr_anomaly_seasonal_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="heat_wave_duration_index_wrt_mean_of_reference_period", wms_main_layer_name="heat_wave_duration_index_wrt_mean_of_reference_period", thredds_url_pattern="indici5rcm/clipped/heat_waves_anom_EC-EARTH_CCLM4-8-17_{scenario}_{year_period}_55_{time_window}_VFVGTAA.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=50, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hwdi-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -119,21 +72,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hwdi") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -176,19 +114,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hwdi_30yr_anomaly_seasonal_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="heat_wave_duration_index_wrt_mean_of_reference_period", wms_main_layer_name="heat_wave_duration_index_wrt_mean_of_reference_period", thredds_url_pattern="indici5rcm/clipped/heat_waves_anom_EC-EARTH_RACMO22E_{scenario}_{year_period}_55_{time_window}_VFVGTAA.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=50, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hwdi-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -196,21 +124,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hwdi") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -253,19 +166,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hwdi_30yr_anomaly_seasonal_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="heat_wave_duration_index_wrt_mean_of_reference_period", wms_main_layer_name="heat_wave_duration_index_wrt_mean_of_reference_period", thredds_url_pattern="indici5rcm/clipped/heat_waves_anom_EC-EARTH_RCA4_{scenario}_{year_period}_55_{time_window}_VFVGTAA.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=50, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hwdi-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -273,21 +176,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hwdi") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -327,19 +215,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hwdi_30yr_anomaly_seasonal_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="heat_wave_duration_index_wrt_mean_of_reference_period", wms_main_layer_name="heat_wave_duration_index_wrt_mean_of_reference_period", thredds_url_pattern="indici5rcm/clipped/heat_waves_anom_HadGEM2-ES_RACMO22E_{scenario}_{year_period}_55_{time_window}_VFVGTAA.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=50, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hwdi-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -347,21 +225,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hwdi") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -404,19 +267,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hwdi_30yr_anomaly_seasonal_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="heat_wave_duration_index_wrt_mean_of_reference_period", wms_main_layer_name="heat_wave_duration_index_wrt_mean_of_reference_period", thredds_url_pattern="indici5rcm/clipped/heat_waves_anom_MPI-ESM-LR_REMO2009_{scenario}_{year_period}_55_{time_window}_VFVGTAA.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=50, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hwdi-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -424,21 +277,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "hwdi") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/pr.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/pr.py index ce6b25b1..b056ab79 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/pr.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/pr.py @@ -1,39 +1,20 @@ -from ....schemas.base import ( - CoreConfParamName, - ObservationAggregationType, -) +from ....schemas.base import CoreConfParamName from ....schemas.coverages import ( CoverageConfigurationCreate, ConfigurationParameterPossibleValueCreate, ) -# _DISPLAY_NAME_ENGLISH = "Precipiation" -# _DISPLAY_NAME_ITALIAN = "Precipitazione" -# _DESCRIPTION_ENGLISH = "Daily precipitation near the ground" -# _DESCRIPTION_ITALIAN = "Precipitazioni giornaliere in prossimità del suolo" -# _DATA_PRECISION = 0 - def generate_configurations( conf_param_values, - variables, climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( name="pr_seasonal_anomaly_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="ens5ym/clipped/pr_anom_pp_ts_{scenario}_{year_period}_VFVGTAA.nc", - # unit_english="%", - # palette="default/div-BrBG", - # color_scale_min=-40, - # color_scale_max=40, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -41,21 +22,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -100,18 +66,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_anomaly_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="EC-EARTH_CCLM4-8-17ym/clipped/pr_EC-EARTH_CCLM4-8-17_{scenario}_{year_period}_anomaly_pp_percentage_VFVGTAA.nc", - # unit_english="%", - # palette="default/div-BrBG", - # color_scale_min=-40, - # color_scale_max=40, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -119,21 +76,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -181,18 +123,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_anomaly_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="EC-EARTH_RACMO22Eym/clipped/pr_EC-EARTH_RACMO22E_{scenario}_{year_period}_anomaly_pp_percentage_VFVGTAA.nc", - # unit_english="%", - # palette="default/div-BrBG", - # color_scale_min=-40, - # color_scale_max=40, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -200,21 +133,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -262,18 +180,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_anomaly_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="EC-EARTH_RCA4ym/clipped/pr_EC-EARTH_RCA4_{scenario}_{year_period}_anomaly_pp_percentage_VFVGTAA.nc", - # unit_english="%", - # palette="default/div-BrBG", - # color_scale_min=-40, - # color_scale_max=40, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -281,21 +190,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -340,18 +234,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_anomaly_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="HadGEM2-ES_RACMO22Eym/clipped/pr_HadGEM2-ES_RACMO22E_{scenario}_{year_period}_anomaly_pp_percentage_VFVGTAA.nc", - # unit_english="%", - # palette="default/div-BrBG", - # color_scale_min=-40, - # color_scale_max=40, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -359,21 +244,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -421,18 +291,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_anomaly_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="MPI-ESM-LR_REMO2009ym/clipped/pr_MPI-ESM-LR_REMO2009_{scenario}_{year_period}_anomaly_pp_percentage_VFVGTAA.nc", - # unit_english="%", - # palette="default/div-BrBG", - # color_scale_min=-40, - # color_scale_max=40, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -440,21 +301,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -502,18 +348,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_anomaly_model_ensemble_upper_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr_stdup", wms_main_layer_name="pr_stdup", thredds_url_pattern="ens5ym/std/clipped/pr_anom_stdup_pp_ts_{scenario}_{year_period}_VFVGTAA.nc", - # unit_english="%", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=0, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -521,21 +358,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -585,18 +407,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_anomaly_model_ensemble_lower_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr_stddown", wms_main_layer_name="pr_stddown", thredds_url_pattern="ens5ym/std/clipped/pr_anom_stddown_pp_ts_{scenario}_{year_period}_VFVGTAA.nc", - # unit_english="%", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=0, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -604,21 +417,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -668,18 +466,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_absolute_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="ensymbc/clipped/pr_avg_{scenario}_{year_period}_ts19762100_ls_VFVGTAA.nc", - # unit_english="mm", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=800, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -687,21 +476,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -743,25 +517,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("PRCPTOT")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="pr_annual_absolute_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="ensymbc/clipped/pr_avg_{scenario}_ts19762100_ls_VFVGTAA.nc", - # unit_english="mm", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=3200, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -769,21 +530,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -810,25 +556,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("PRCPTOT")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="pr_seasonal_absolute_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/pr_EC-EARTH_CCLM4-8-17_{scenario}_{year_period}_ts_ls_VFVGTAA.nc", - # unit_english="%", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=800, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -836,21 +569,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -895,25 +613,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("PRCPTOT")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="pr_annual_absolute_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, wms_main_layer_name="pr", netcdf_main_dataset_name="pr", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/pr_EC-EARTH_CCLM4-8-17_{scenario}_ts_ls_VFVGTAA.nc", - # unit_english="%", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=800, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -921,21 +626,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -965,25 +655,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("PRCPTOT")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="pr_seasonal_absolute_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/pr_EC-EARTH_RACMO22E_{scenario}_{year_period}_ts_ls_VFVGTAA.nc", - # unit_english="%", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=800, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -991,21 +668,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1050,25 +712,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("PRCPTOT")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="pr_annual_absolute_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/pr_EC-EARTH_RACMO22E_{scenario}_ts_ls_VFVGTAA.nc", - # unit_english="%", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=3200, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1076,21 +725,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1120,25 +754,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("PRCPTOT")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="pr_seasonal_absolute_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/pr_EC-EARTH_RCA4_{scenario}_{year_period}_ts_ls_VFVGTAA.nc", - # unit_english="%", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=800, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1146,21 +767,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -1202,25 +808,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("PRCPTOT")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="pr_annual_absolute_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/pr_EC-EARTH_RCA4_{scenario}_ts_ls_VFVGTAA.nc", - # unit_english="%", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=3200, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1228,21 +821,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -1269,25 +847,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("PRCPTOT")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="pr_seasonal_absolute_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/pr_HadGEM2-ES_RACMO22E_{scenario}_{year_period}_ts_ls_VFVGTAA.nc", - # unit_english="%", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=800, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1295,21 +860,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1354,25 +904,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("PRCPTOT")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="pr_annual_absolute_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/pr_HadGEM2-ES_RACMO22E_{scenario}_ts_ls_VFVGTAA.nc", - # unit_english="%", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=3200, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1380,21 +917,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1424,25 +946,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("PRCPTOT")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="pr_seasonal_absolute_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/pr_MPI-ESM-LR_REMO2009_{scenario}_{year_period}_ts_ls_VFVGTAA.nc", - # unit_english="%", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=800, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1450,21 +959,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1509,25 +1003,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("PRCPTOT")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="pr_annual_absolute_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/pr_MPI-ESM-LR_REMO2009_{scenario}_ts_ls_VFVGTAA.nc", - # unit_english="%", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=3200, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1535,21 +1016,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1579,25 +1045,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("PRCPTOT")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="pr_seasonal_absolute_model_ensemble_upper_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr_stdup", wms_main_layer_name="pr_stdup", thredds_url_pattern="ensymbc/std/clipped/pr_stdup_{scenario}_{year_period}_ts19762100_ls_VFVGTAA.nc", - # unit_english="mm", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=800, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1605,21 +1058,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1669,18 +1107,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_seasonal_absolute_model_ensemble_lower_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr_stddown", wms_main_layer_name="pr_stddown", thredds_url_pattern="ensymbc/std/clipped/pr_stddown_{scenario}_{year_period}_ts19762100_ls_VFVGTAA.nc", - # unit_english="mm", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=800, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1688,21 +1117,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1752,18 +1166,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_annual_absolute_model_ensemble_upper_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr_stdup", wms_main_layer_name="pr_stdup", thredds_url_pattern="ensymbc/std/clipped/pr_stdup_{scenario}_ts19762100_ls_VFVGTAA.nc", - # unit_english="mm", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=3200, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1771,21 +1176,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1820,18 +1210,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_annual_absolute_model_ensemble_lower_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr_stddown", wms_main_layer_name="pr_stddown", thredds_url_pattern="ensymbc/std/clipped/pr_stddown_{scenario}_ts19762100_ls_VFVGTAA.nc", - # unit_english="mm", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=3200, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1839,21 +1220,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1888,19 +1254,10 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_30yr_anomaly_seasonal_agree_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr-uncertainty_group", wms_secondary_layer_name="pr", thredds_url_pattern="ensembletwbc/std/clipped/pr_avgagree_percentage_{time_window}_{scenario}_{year_period}_VFVGTAA.nc", - # unit_english="%", - # palette="uncert-stippled/div-BrBG", - # color_scale_min=-40, - # color_scale_max=40, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1908,21 +1265,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1977,18 +1319,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_30yr_anomaly_seasonal_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="taspr5rcm/clipped/pr_EC-EARTH_CCLM4-8-17_{scenario}_seas_{time_window}_percentage_{year_period}_VFVGTAA.nc", - # unit_english="%", - # palette="default/div-BrBG", - # color_scale_min=-40, - # color_scale_max=40, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1996,21 +1329,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -2068,18 +1386,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_30yr_anomaly_seasonal_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="taspr5rcm/clipped/pr_EC-EARTH_RACMO22E_{scenario}_seas_{time_window}_percentage_{year_period}_VFVGTAA.nc", - # unit_english="%", - # palette="default/div-BrBG", - # color_scale_min=-40, - # color_scale_max=40, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -2087,21 +1396,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -2159,18 +1453,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_30yr_anomaly_seasonal_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="taspr5rcm/clipped/pr_EC-EARTH_RCA4_{scenario}_seas_{time_window}_percentage_{year_period}_VFVGTAA.nc", - # unit_english="%", - # palette="default/div-BrBG", - # color_scale_min=-40, - # color_scale_max=40, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -2178,21 +1463,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -2247,18 +1517,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_30yr_anomaly_seasonal_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="taspr5rcm/clipped/pr_HadGEM2-ES_RACMO22E_{scenario}_seas_{time_window}_percentage_{year_period}_VFVGTAA.nc", - # unit_english="%", - # palette="default/div-BrBG", - # color_scale_min=-40, - # color_scale_max=40, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -2266,21 +1527,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -2338,18 +1584,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="pr_30yr_anomaly_seasonal_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="pr", wms_main_layer_name="pr", thredds_url_pattern="taspr5rcm/clipped/pr_MPI-ESM-LR_REMO2009_{scenario}_seas_{time_window}_percentage_{year_period}_VFVGTAA.nc", - # unit_english="%", - # palette="default/div-BrBG", - # color_scale_min=-40, - # color_scale_max=40, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -2357,21 +1594,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "pr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/r95ptot.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/r95ptot.py index 281d3f91..40634e48 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/r95ptot.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/r95ptot.py @@ -4,17 +4,6 @@ ConfigurationParameterPossibleValueCreate, ) -# _DISPLAY_NAME_ENGLISH = "Extreme rainfall" -# _DISPLAY_NAME_ITALIAN = "Precipitazione estrema" -# _DESCRIPTION_ENGLISH = ( -# "Total cumulative precipitation above the 95th percentile of the reference period" -# ) -# _DESCRIPTION_ITALIAN = ( -# "Precipitazioni cumulative totali superiori al 95° percentile del periodo di " -# "riferimento" -# ) -# _DATA_PRECISION = 0 - def generate_configurations( conf_param_values, @@ -23,19 +12,10 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="r95ptot_30yr_anomaly_seasonal_agree_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="r95ptot", wms_main_layer_name="r95ptot-uncertainty_group", wms_secondary_layer_name="r95ptot", thredds_url_pattern="ensembletwbc/std/clipped/pr_change_cumulative_check_avgagree_{time_window}_{scenario}_{year_period}_VFVGTAA.nc", - # unit_english="%", - # palette="uncert-stippled/div-BrBG", - # color_scale_min=-160, - # color_scale_max=160, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["r95ptot-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -43,21 +23,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "r95ptot") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -112,18 +77,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="r95ptot_30yr_anomaly_seasonal_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="r95ptot", wms_main_layer_name="r95ptot", thredds_url_pattern="indici5rcm/clipped/pr_change_cumulative_EC-EARTH_CCLM4-8-17_{year_period}_{scenario}_{time_window}_VFVGTAA.nc", - # unit_english="%", - # palette="default/div-BrBG", - # color_scale_min=-160, - # color_scale_max=160, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["r95ptot-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -131,21 +87,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "r95ptot") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -203,18 +144,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="r95ptot_30yr_anomaly_seasonal_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="r95ptot", wms_main_layer_name="r95ptot", thredds_url_pattern="indici5rcm/clipped/pr_change_cumulative_EC-EARTH_RACMO22E_{year_period}_{scenario}_{time_window}_VFVGTAA.nc", - # unit_english="%", - # palette="default/div-BrBG", - # color_scale_min=-160, - # color_scale_max=160, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["r95ptot-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -222,21 +154,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "r95ptot") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -294,18 +211,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="r95ptot_30yr_anomaly_seasonal_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="r95ptot", wms_main_layer_name="r95ptot", thredds_url_pattern="indici5rcm/clipped/pr_change_cumulative_EC-EARTH_RCA4_{year_period}_{scenario}_{time_window}_VFVGTAA.nc", - # unit_english="%", - # palette="default/div-BrBG", - # color_scale_min=-160, - # color_scale_max=160, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["r95ptot-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -313,21 +221,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "r95ptot") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -382,18 +275,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="r95ptot_30yr_anomaly_seasonal_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="r95ptot", wms_main_layer_name="r95ptot", thredds_url_pattern="indici5rcm/clipped/pr_change_cumulative_HadGEM2-ES_RACMO22E_{year_period}_{scenario}_{time_window}_VFVGTAA.nc", - # unit_english="%", - # palette="default/div-BrBG", - # color_scale_min=-160, - # color_scale_max=160, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["r95ptot-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -401,21 +285,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "r95ptot") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -473,18 +342,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="r95ptot_30yr_anomaly_seasonal_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="r95ptot", wms_main_layer_name="r95ptot", thredds_url_pattern="indici5rcm/clipped/pr_change_cumulative_MPI-ESM-LR_REMO2009_{year_period}_{scenario}_{time_window}_VFVGTAA.nc", - # unit_english="%", - # palette="default/div-BrBG", - # color_scale_min=-160, - # color_scale_max=160, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["r95ptot-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -492,21 +352,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "r95ptot") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/snwdays.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/snwdays.py index 0ac4ef50..68df1d08 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/snwdays.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/snwdays.py @@ -4,17 +4,6 @@ ConfigurationParameterPossibleValueCreate, ) -# _DISPLAY_NAME_ENGLISH = "Days with new snow" -# _DISPLAY_NAME_ITALIAN = "Giorni di gelo" -# _DESCRIPTION_ENGLISH = ( -# "Maximum number of consecutive dry days (daily precipitation less than 1 mm)" -# ) -# _DESCRIPTION_ITALIAN = ( -# "Numero massimo di giorni asciutti consecutivi (precipitazioni giornaliere " -# "inferiori a 1 mm)" -# ) -# _DATA_PRECISION = 0 - def generate_configurations( conf_param_values, @@ -23,19 +12,9 @@ def generate_configurations( return [ CoverageConfigurationCreate( name="snwdays_annual_absolute_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays", thredds_url_pattern="ensymbc/clipped/snwdays_1mm_2oc_avg_ts19762100_{scenario}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=100, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -43,21 +22,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -87,19 +51,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_annual_absolute_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/snwdays_1mm_2oc_EC-EARTH_CCLM4-8-17_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=100, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -107,21 +61,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -154,19 +93,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_annual_absolute_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/snwdays_1mm_2oc_EC-EARTH_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=100, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -174,21 +103,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -221,19 +135,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_annual_absolute_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/snwdays_1mm_2oc_EC-EARTH_RCA4_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=100, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -241,21 +145,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -285,19 +174,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_annual_absolute_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/snwdays_1mm_2oc_HadGEM2-ES_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=100, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -305,21 +184,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -352,19 +216,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_annual_absolute_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/snwdays_1mm_2oc_MPI-ESM-LR_REMO2009_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=100, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -372,21 +226,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -419,19 +258,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_annual_absolute_model_ensemble_upper_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays_stdup", wms_main_layer_name="snwdays_stdup", thredds_url_pattern="ensymbc/std/clipped/snwdays_1mm_2oc_stdup_ts19762100_{scenario}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=100, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -439,21 +268,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -488,19 +302,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_annual_absolute_model_ensemble_lower_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays_stddown", wms_main_layer_name="snwdays_stddown", thredds_url_pattern="ensymbc/std/clipped/snwdays_1mm_2oc_stddown_ts19762100_{scenario}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-BuYl-inv", - # color_scale_min=0, - # color_scale_max=100, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -508,21 +312,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -555,23 +344,12 @@ def generate_configurations( ), ], ), - # --- CoverageConfigurationCreate( name="snwdays_30yr_anomaly_annual_agree_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays-uncertainty_group", wms_secondary_layer_name="snwdays", thredds_url_pattern="ensembletwbc/std/clipped/snwdays_an_1mm_2oc_avgagree_{time_window}_{scenario}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="uncert-stippled/seq-YlOrBr-inv", - # color_scale_min=-50, - # color_scale_max=0, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -579,21 +357,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -633,19 +396,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_30yr_anomaly_annual_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays", thredds_url_pattern="indici5rcm/clipped/snwdays_an_1mm_2oc_EC-EARTH_CCLM4-8-17_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrBr-inv", - # color_scale_min=-50, - # color_scale_max=0, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -653,21 +406,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -710,19 +448,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_30yr_anomaly_annual_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays", thredds_url_pattern="indici5rcm/clipped/snwdays_an_1mm_2oc_EC-EARTH_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrBr-inv", - # color_scale_min=-50, - # color_scale_max=0, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -730,21 +458,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -787,19 +500,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_30yr_anomaly_annual_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays", thredds_url_pattern="indici5rcm/clipped/snwdays_an_1mm_2oc_EC-EARTH_RCA4_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrBr-inv", - # color_scale_min=-50, - # color_scale_max=0, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -807,21 +510,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -861,19 +549,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_30yr_anomaly_annual_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays", thredds_url_pattern="indici5rcm/clipped/snwdays_an_1mm_2oc_HadGEM2-ES_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrBr-inv", - # color_scale_min=-50, - # color_scale_max=0, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -881,21 +559,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -938,19 +601,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="snwdays_30yr_anomaly_annual_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="snwdays", wms_main_layer_name="snwdays", thredds_url_pattern="indici5rcm/clipped/snwdays_an_1mm_2oc_MPI-ESM-LR_REMO2009_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrBr-inv", - # color_scale_min=-50, - # color_scale_max=0, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["snwdays-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -958,21 +611,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "snwdays") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/su30.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/su30.py index af4f0534..d38eb7dd 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/su30.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/su30.py @@ -1,40 +1,20 @@ -from ....schemas.base import ( - CoreConfParamName, - ObservationAggregationType, -) +from ....schemas.base import CoreConfParamName from ....schemas.coverages import ( CoverageConfigurationCreate, ConfigurationParameterPossibleValueCreate, ) -# _DISPLAY_NAME_ENGLISH = "Hot days" -# _DISPLAY_NAME_ITALIAN = "Giorni caldi" -# _DESCRIPTION_ENGLISH = "Number of days with maximum temperature greater than 30 °C" -# _DESCRIPTION_ITALIAN = "Numero di giorni con temperatura massima superiore a 30 °C" -# _DATA_PRECISION = 0 - def generate_configurations( conf_param_values, - variables, climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( name="su30_annual_absolute_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30", thredds_url_pattern="ensymbc/clipped/ecasu_30_avg_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=100, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -42,21 +22,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -83,26 +48,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("SU30")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="su30_annual_absolute_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/ecasu_30_EC-EARTH_CCLM4-8-17_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=100, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -110,21 +61,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -154,26 +90,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("SU30")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="su30_annual_absolute_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/ecasu_30_EC-EARTH_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=100, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -181,21 +103,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -225,26 +132,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("SU30")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="su30_annual_absolute_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/ecasu_30_EC-EARTH_RCA4_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=100, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -252,21 +145,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -293,26 +171,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("SU30")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="su30_annual_absolute_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/ecasu_30_HadGEM2-ES_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=100, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -320,21 +184,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -364,26 +213,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("SU30")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="su30_annual_absolute_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/ecasu_30_MPI-ESM-LR_REMO2009_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=100, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -391,21 +226,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -435,26 +255,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("SU30")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="su30_annual_absolute_model_ensemble_upper_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30_stdup", wms_main_layer_name="su30_stdup", thredds_url_pattern="ensymbc/std/clipped/ecasu_30_stdup_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=100, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -462,21 +268,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -511,19 +302,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="su30_annual_absolute_model_ensemble_lower_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30_stddown", wms_main_layer_name="su30_stddown", thredds_url_pattern="ensymbc/std/clipped/ecasu_30_stddown_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=100, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -531,21 +312,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -580,20 +346,10 @@ def generate_configurations( ), CoverageConfigurationCreate( name="su30_30yr_anomaly_annual_agree_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30-uncertainty_group", wms_secondary_layer_name="su30", thredds_url_pattern="ensembletwbc/std/clipped/ecasuan_30_avgagree_{time_window}_{scenario}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="uncert-stippled/seq-YlOrRd", - # color_scale_min=-5, - # color_scale_max=75, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -601,21 +357,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -655,19 +396,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="su30_30yr_anomaly_annual_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30", thredds_url_pattern="indici5rcm/clipped/ecasuan_30_EC-EARTH_CCLM4-8-17_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=-5, - # color_scale_max=75, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -675,21 +406,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -732,19 +448,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="su30_30yr_anomaly_annual_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30", thredds_url_pattern="indici5rcm/clipped/ecasuan_30_EC-EARTH_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=-5, - # color_scale_max=75, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -752,21 +458,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -809,19 +500,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="su30_30yr_anomaly_annual_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30", thredds_url_pattern="indici5rcm/clipped/ecasuan_30_EC-EARTH_RCA4_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=-5, - # color_scale_max=75, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -829,21 +510,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -883,19 +549,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="su30_30yr_anomaly_annual_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30", thredds_url_pattern="indici5rcm/clipped/ecasuan_30_HadGEM2-ES_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=-5, - # color_scale_max=75, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -903,21 +559,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -960,19 +601,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="su30_30yr_anomaly_annual_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="su30", wms_main_layer_name="su30", thredds_url_pattern="indici5rcm/clipped/ecasuan_30_MPI-ESM-LR_REMO2009_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=-5, - # color_scale_max=75, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -980,21 +611,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "su30") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tas.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tas.py index 1922f4b1..34508053 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tas.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tas.py @@ -1,39 +1,20 @@ -from ....schemas.base import ( - CoreConfParamName, - ObservationAggregationType, -) +from ....schemas.base import CoreConfParamName from ....schemas.coverages import ( CoverageConfigurationCreate, ConfigurationParameterPossibleValueCreate, ) -# _DISPLAY_NAME_ENGLISH = "Average temperature" -# _DISPLAY_NAME_ITALIAN = "Temperatura media" -# _DESCRIPTION_ENGLISH = "Average daily air temperature near the ground" -# _DESCRIPTION_ITALIAN = "Temperatura media giornaliera dell'aria vicino al suolo" -# _DATA_PRECISION = 1 - def generate_configurations( conf_param_values, - variables, climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( name="tas_seasonal_anomaly_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="ens5ym/clipped/tas_anom_pp_ts_{scenario}_{year_period}_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -41,21 +22,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -100,18 +66,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_anomaly_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="EC-EARTH_CCLM4-8-17ym/clipped/tas_EC-EARTH_CCLM4-8-17_{scenario}_{year_period}_anomaly_pp_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -119,21 +76,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -181,18 +123,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_anomaly_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="EC-EARTH_RACMO22Eym/clipped/tas_EC-EARTH_RACMO22E_{scenario}_{year_period}_anomaly_pp_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -200,21 +133,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -262,18 +180,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_anomaly_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="EC-EARTH_RCA4ym/clipped/tas_EC-EARTH_RCA4_{scenario}_{year_period}_anomaly_pp_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -281,21 +190,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -340,18 +234,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_anomaly_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="HadGEM2-ES_RACMO22Eym/clipped/tas_HadGEM2-ES_RACMO22E_{scenario}_{year_period}_anomaly_pp_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -359,21 +244,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -421,18 +291,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_anomaly_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="MPI-ESM-LR_REMO2009ym/clipped/tas_MPI-ESM-LR_REMO2009_{scenario}_{year_period}_anomaly_pp_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -440,21 +301,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -502,18 +348,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_anomaly_model_ensemble_upper_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas_stdup", wms_main_layer_name="tas_stdup", thredds_url_pattern="ens5ym/std/clipped/tas_anom_stdup_pp_ts_{scenario}_{year_period}_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=0, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -521,21 +358,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -585,18 +407,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_anomaly_model_ensemble_lower_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas_stddown", wms_main_layer_name="tas_stddown", thredds_url_pattern="ens5ym/std/clipped/tas_anom_stddown_pp_ts_{scenario}_{year_period}_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=0, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -604,21 +417,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -668,18 +466,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_absolute_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="ensymbc/clipped/tas_avg_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -687,21 +476,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -743,25 +517,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TDd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tas_annual_absolute_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="ensymbc/clipped/tas_avg_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -769,21 +530,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -810,25 +556,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TDd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="tas_seasonal_absolute_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/tas_EC-EARTH_CCLM4-8-17_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -836,21 +569,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -895,25 +613,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TDd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tas_annual_absolute_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/tas_EC-EARTH_CCLM4-8-17_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -921,21 +626,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -965,25 +655,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TDd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="tas_seasonal_absolute_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/tas_EC-EARTH_RACMO22E_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -991,21 +668,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1050,25 +712,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TDd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tas_annual_absolute_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/tas_EC-EARTH_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1076,21 +725,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1120,25 +754,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TDd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="tas_seasonal_absolute_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/tas_EC-EARTH_RCA4_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1146,21 +767,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -1202,25 +808,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TDd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tas_annual_absolute_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/tas_EC-EARTH_RCA4_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1228,21 +821,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -1269,25 +847,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TDd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="tas_seasonal_absolute_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/tas_HadGEM2-ES_RACMO22E_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1295,21 +860,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1354,25 +904,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TDd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tas_annual_absolute_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/tas_HadGEM2-ES_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1380,21 +917,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1424,25 +946,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TDd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="tas_seasonal_absolute_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/tas_MPI-ESM-LR_REMO2009_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1450,21 +959,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1509,25 +1003,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TDd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tas_annual_absolute_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/tas_MPI-ESM-LR_REMO2009_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1535,21 +1016,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1579,25 +1045,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TDd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="tas_seasonal_absolute_model_ensemble_upper_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas_stdup", wms_main_layer_name="tas_stdup", thredds_url_pattern="ensymbc/std/clipped/tas_stdup_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1605,21 +1058,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1669,18 +1107,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_seasonal_absolute_model_ensemble_lower_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas_stddown", wms_main_layer_name="tas_stddown", thredds_url_pattern="ensymbc/std/clipped/tas_stddown_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1688,21 +1117,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1752,18 +1166,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_annual_absolute_model_ensemble_upper_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas_stdup", wms_main_layer_name="tas_stdup", thredds_url_pattern="ensymbc/std/clipped/tas_stdup_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1771,21 +1176,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1820,18 +1210,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_annual_absolute_model_ensemble_lower_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas_stddown", wms_main_layer_name="tas_stddown", thredds_url_pattern="ensymbc/std/clipped/tas_stddown_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1839,21 +1220,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1888,19 +1254,10 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_30yr_anomaly_seasonal_agree_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas-uncertainty_group", wms_secondary_layer_name="tas", thredds_url_pattern="ensembletwbc/std/clipped/tas_avgagree_anom_{time_window}_{scenario}_{year_period}_VFVGTAA.nc", - # unit_english="ºC", - # palette="uncert-stippled/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1908,21 +1265,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1977,18 +1319,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_30yr_anomaly_seasonal_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="taspr5rcm/clipped/tas_EC-EARTH_CCLM4-8-17_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1996,21 +1329,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -2068,18 +1386,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_30yr_anomaly_seasonal_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="taspr5rcm/clipped/tas_EC-EARTH_RACMO22E_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -2087,21 +1396,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -2159,18 +1453,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_30yr_anomaly_seasonal_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="taspr5rcm/clipped/tas_EC-EARTH_RCA4_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -2178,21 +1463,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -2247,18 +1517,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_30yr_anomaly_seasonal_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="taspr5rcm/clipped/tas_HadGEM2-ES_RACMO22E_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -2266,21 +1527,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -2338,18 +1584,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_30yr_anomaly_seasonal_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="taspr5rcm/clipped/tas_MPI-ESM-LR_REMO2009_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -2357,21 +1594,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -2429,18 +1651,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_barometro_climatico", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas", wms_main_layer_name="tas", thredds_url_pattern="ensymbc/std/clipped/fldmean/tas_avg_{scenario}_ts19762100_ls_VFVG_fldmean.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -2448,11 +1661,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "barometro_climatico") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.SCENARIO.value, "rcp26") @@ -2472,18 +1680,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_barometro_climatico_lower_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas_stddown", wms_main_layer_name="tas_stddown", thredds_url_pattern="ensymbc/std/clipped/fldmean/tas_stddown_{scenario}_ts19762100_ls_VFVG_fldmean.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -2491,11 +1690,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "barometro_climatico") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.UNCERTAINTY_TYPE.value, "lower_bound") @@ -2520,18 +1714,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tas_barometro_climatico_upper_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tas_stdup", wms_main_layer_name="tas_stdup", thredds_url_pattern="ensymbc/std/clipped/fldmean/tas_stdup_{scenario}_ts19762100_ls_VFVG_fldmean.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -2539,11 +1724,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "barometro_climatico") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tas") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.UNCERTAINTY_TYPE.value, "upper_bound") diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmax.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmax.py index 627bb11b..efe03f00 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmax.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmax.py @@ -1,39 +1,20 @@ -from ....schemas.base import ( - CoreConfParamName, - ObservationAggregationType, -) +from ....schemas.base import CoreConfParamName from ....schemas.coverages import ( CoverageConfigurationCreate, ConfigurationParameterPossibleValueCreate, ) -# _DISPLAY_NAME_ENGLISH = "Maximum temperature" -# _DISPLAY_NAME_ITALIAN = "Temperatura massima" -# _DESCRIPTION_ENGLISH = "Maximum daily air temperature near the ground" -# _DESCRIPTION_ITALIAN = "Temperatura massima giornaliera dell'aria vicino al suolo" -# _DATA_PRECISION = 1 - def generate_configurations( conf_param_values, - variables, climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( name="tasmax_seasonal_absolute_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="ensymbc/clipped/tasmax_avg_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # # unit_english="ºC", - # # palette="default/seq-YlOrRd", - # # color_scale_min=-3, - # # color_scale_max=32, - # # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -41,21 +22,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -97,25 +63,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TXd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tasmax_annual_absolute_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="ensymbc/clipped/tasmax_avg_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -123,21 +76,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -164,25 +102,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TXd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="tasmax_seasonal_absolute_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/tasmax_EC-EARTH_CCLM4-8-17_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -190,21 +115,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -249,25 +159,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TXd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tasmax_annual_absolute_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/tasmax_EC-EARTH_CCLM4-8-17_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=7, - # color_scale_max=37, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -275,21 +172,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -319,25 +201,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TXd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="tasmax_seasonal_absolute_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/tasmax_EC-EARTH_RACMO22E_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -345,21 +214,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -404,25 +258,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TXd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tasmax_annual_absolute_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/tasmax_EC-EARTH_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=7, - # color_scale_max=37, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -430,21 +271,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -474,25 +300,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TXd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="tasmax_seasonal_absolute_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/tasmax_EC-EARTH_RCA4_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -500,21 +313,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -556,25 +354,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TXd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tasmax_annual_absolute_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/tasmax_EC-EARTH_RCA4_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=7, - # color_scale_max=37, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -582,21 +367,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -623,25 +393,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TXd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="tasmax_seasonal_absolute_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/tasmax_HadGEM2-ES_RACMO22E_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -649,21 +406,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -708,25 +450,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TXd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tasmax_annual_absolute_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/tasmax_HadGEM2-ES_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=7, - # color_scale_max=37, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -734,21 +463,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -778,25 +492,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TXd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="tasmax_seasonal_absolute_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/tasmax_MPI-ESM-LR_REMO2009_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -804,21 +505,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -863,25 +549,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TXd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tasmax_annual_absolute_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/tasmax_MPI-ESM-LR_REMO2009_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=7, - # color_scale_max=37, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -889,21 +562,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -933,25 +591,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TXd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="tasmax_seasonal_absolute_model_ensemble_upper_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax_stdup", wms_main_layer_name="tasmax_stdup", thredds_url_pattern="ensymbc/std/clipped/tasmax_stdup_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=7, - # color_scale_max=37, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -959,21 +604,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1023,18 +653,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_seasonal_absolute_model_ensemble_lower_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax_stddown", wms_main_layer_name="tasmax_stddown", thredds_url_pattern="ensymbc/std/clipped/tasmax_stddown_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=7, - # color_scale_max=37, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1042,21 +663,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1106,18 +712,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_annual_absolute_model_ensemble_upper_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax_stdup", wms_main_layer_name="tasmax_stdup", thredds_url_pattern="ensymbc/std/clipped/tasmax_stdup_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=7, - # color_scale_max=37, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1125,21 +722,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1174,18 +756,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_annual_absolute_model_ensemble_lower_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax_stddown", wms_main_layer_name="tasmax_stddown", thredds_url_pattern="ensymbc/std/clipped/tasmax_stddown_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=7, - # color_scale_max=37, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1193,21 +766,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1242,19 +800,10 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_30yr_anomaly_seasonal_agree_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax-uncertainty_group", wms_secondary_layer_name="tasmax", thredds_url_pattern="ensembletwbc/std/clipped/tasmax_avgagree_anom_{time_window}_{scenario}_{year_period}_VFVGTAA.nc", - # unit_english="ºC", - # palette="uncert-stippled/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1262,21 +811,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1331,18 +865,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_30yr_anomaly_seasonal_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="taspr5rcm/clipped/tasmax_EC-EARTH_CCLM4-8-17_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1350,21 +875,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1422,18 +932,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_30yr_anomaly_seasonal_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="taspr5rcm/clipped/tasmax_EC-EARTH_RACMO22E_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1441,21 +942,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1513,18 +999,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_30yr_anomaly_seasonal_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="taspr5rcm/clipped/tasmax_EC-EARTH_RCA4_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1532,21 +1009,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -1601,18 +1063,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_30yr_anomaly_seasonal_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="taspr5rcm/clipped/tasmax_HadGEM2-ES_RACMO22E_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1620,21 +1073,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1692,18 +1130,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmax_30yr_anomaly_seasonal_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmax", wms_main_layer_name="tasmax", thredds_url_pattern="taspr5rcm/clipped/tasmax_MPI-ESM-LR_REMO2009_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1711,21 +1140,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmax") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmin.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmin.py index c3334a12..21871e9c 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmin.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tasmin.py @@ -1,39 +1,20 @@ -from ....schemas.base import ( - CoreConfParamName, - ObservationAggregationType, -) +from ....schemas.base import CoreConfParamName from ....schemas.coverages import ( CoverageConfigurationCreate, ConfigurationParameterPossibleValueCreate, ) -# _DISPLAY_NAME_ENGLISH = "Minimum temperature" -# _DISPLAY_NAME_ITALIAN = "Temperatura minima" -# _DESCRIPTION_ENGLISH = "Minimum daily air temperature near the ground" -# _DESCRIPTION_ITALIAN = "Temperatura minima giornaliera dell'aria vicino al suolo" -# _DATA_PRECISION = 1 - def generate_configurations( conf_param_values, - variables, climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( name="tasmin_seasonal_absolute_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="ensymbc/clipped/tasmin_avg_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -41,21 +22,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -97,25 +63,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TNd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tasmin_annual_absolute_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="ensymbc/clipped/tasmin_avg_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -123,21 +76,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -164,25 +102,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TNd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="tasmin_seasonal_absolute_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/tasmin_EC-EARTH_CCLM4-8-17_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -190,21 +115,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -249,25 +159,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TNd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tasmin_annual_absolute_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/tasmin_EC-EARTH_CCLM4-8-17_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-13, - # color_scale_max=27, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -275,21 +172,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -319,25 +201,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TNd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="tasmin_seasonal_absolute_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/tasmin_EC-EARTH_RACMO22E_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -345,21 +214,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -404,25 +258,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TNd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tasmin_annual_absolute_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/tasmin_EC-EARTH_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-13, - # color_scale_max=27, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -430,21 +271,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -474,25 +300,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TNd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="tasmin_seasonal_absolute_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/tasmin_EC-EARTH_RCA4_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -500,21 +313,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -556,25 +354,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TNd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tasmin_annual_absolute_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/tasmin_EC-EARTH_RCA4_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-13, - # color_scale_max=27, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -582,21 +367,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -623,25 +393,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TNd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="tasmin_seasonal_absolute_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/tasmin_HadGEM2-ES_RACMO22E_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -649,21 +406,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -708,25 +450,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TNd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tasmin_annual_absolute_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/tasmin_HadGEM2-ES_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-13, - # color_scale_max=27, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -734,21 +463,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -778,25 +492,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TNd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="tasmin_seasonal_absolute_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/tasmin_MPI-ESM-LR_REMO2009_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-3, - # color_scale_max=32, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -804,21 +505,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -863,25 +549,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TNd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tasmin_annual_absolute_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/tasmin_MPI-ESM-LR_REMO2009_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-13, - # color_scale_max=27, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -889,21 +562,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -933,25 +591,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TNd")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="tasmin_seasonal_absolute_model_ensemble_upper_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin_stdup", wms_main_layer_name="tasmin_stdup", thredds_url_pattern="ensymbc/std/clipped/tasmin_stdup_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-13, - # color_scale_max=27, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -959,21 +604,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1023,18 +653,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_seasonal_absolute_model_ensemble_lower_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin_stddown", wms_main_layer_name="tasmin_stddown", thredds_url_pattern="ensymbc/std/clipped/tasmin_stddown_{scenario}_{year_period}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-13, - # color_scale_max=27, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1042,21 +663,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1106,18 +712,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_annual_absolute_model_ensemble_upper_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin_stdup", wms_main_layer_name="tasmin_stdup", thredds_url_pattern="ensymbc/std/clipped/tasmin_stdup_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-13, - # color_scale_max=27, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1125,21 +722,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1174,18 +756,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_annual_absolute_model_ensemble_lower_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin_stddown", wms_main_layer_name="tasmin_stddown", thredds_url_pattern="ensymbc/std/clipped/tasmin_stddown_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=-13, - # color_scale_max=27, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1193,21 +766,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1242,19 +800,10 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_30yr_anomaly_seasonal_agree_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin-uncertainty_group", wms_secondary_layer_name="tasmin", thredds_url_pattern="ensembletwbc/std/clipped/tasmin_avgagree_anom_{time_window}_{scenario}_{year_period}_VFVGTAA.nc", - # unit_english="ºC", - # palette="uncert-stippled/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1262,21 +811,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -1331,18 +865,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_30yr_anomaly_seasonal_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="taspr5rcm/clipped/tasmin_EC-EARTH_CCLM4-8-17_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1350,21 +875,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1422,18 +932,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_30yr_anomaly_seasonal_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="taspr5rcm/clipped/tasmin_EC-EARTH_RACMO22E_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1441,21 +942,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1513,18 +999,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_30yr_anomaly_seasonal_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="taspr5rcm/clipped/tasmin_EC-EARTH_RCA4_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1532,21 +1009,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -1601,18 +1063,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_30yr_anomaly_seasonal_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="taspr5rcm/clipped/tasmin_HadGEM2-ES_RACMO22E_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1620,21 +1073,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -1692,18 +1130,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tasmin_30yr_anomaly_seasonal_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tasmin", wms_main_layer_name="tasmin", thredds_url_pattern="taspr5rcm/clipped/tasmin_MPI-ESM-LR_REMO2009_{scenario}_seas_{time_window}{year_period}_VFVGTAA.nc", - # unit_english="ºC", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=6, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -1711,21 +1140,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tasmin") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tr.py b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tr.py index 3022eb4c..fea5eef3 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tr.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/forecast/tr.py @@ -1,40 +1,20 @@ -from ....schemas.base import ( - CoreConfParamName, - ObservationAggregationType, -) +from ....schemas.base import CoreConfParamName from ....schemas.coverages import ( CoverageConfigurationCreate, ConfigurationParameterPossibleValueCreate, ) -# _DISPLAY_NAME_ENGLISH = "Tropical nights" -# _DISPLAY_NAME_ITALIAN = "Notti tropicali" -# _DESCRIPTION_ENGLISH = "Number of days with minimum temperature greater than 20 °C" -# _DESCRIPTION_ITALIAN = "Numero di giorni con temperatura minima superiore a 20 °C" -# _DATA_PRECISION = 0 - def generate_configurations( conf_param_values, - variables, climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( name="tr_annual_absolute_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr", thredds_url_pattern="ensymbc/clipped/ecatr_20_avg_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=120, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -42,21 +22,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -83,26 +48,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TR")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tr_annual_absolute_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr", thredds_url_pattern="EC-EARTH_CCLM4-8-17ymbc/clipped/ecatr_20_EC-EARTH_CCLM4-8-17_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=120, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -110,21 +61,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -154,26 +90,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TR")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tr_annual_absolute_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr", thredds_url_pattern="EC-EARTH_RACMO22Eymbc/clipped/ecatr_20_EC-EARTH_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=120, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -181,21 +103,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -225,26 +132,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TR")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tr_annual_absolute_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr", thredds_url_pattern="EC-EARTH_RCA4ymbc/clipped/ecatr_20_EC-EARTH_RCA4_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=120, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -252,21 +145,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -293,26 +171,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TR")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tr_annual_absolute_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr", thredds_url_pattern="HadGEM2-ES_RACMO22Eymbc/clipped/ecatr_20_HadGEM2-ES_RACMO22E_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=120, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -320,21 +184,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -364,26 +213,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TR")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tr_annual_absolute_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr", thredds_url_pattern="MPI-ESM-LR_REMO2009ymbc/clipped/ecatr_20_MPI-ESM-LR_REMO2009_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=120, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -391,21 +226,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -435,26 +255,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id if (v := variables.get("TR")) is not None else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tr_annual_absolute_model_ensemble_upper_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr_stdup", wms_main_layer_name="tr_stdup", thredds_url_pattern="ensymbc/std/clipped/ecatr_20_stdup_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=100, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -462,21 +268,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -511,19 +302,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tr_annual_absolute_model_ensemble_lower_uncertainty", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr_stddown", wms_main_layer_name="tr_stddown", thredds_url_pattern="ensymbc/std/clipped/ecatr_20_stddown_{scenario}_ts19762100_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=0, - # color_scale_max=100, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -531,21 +312,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -580,20 +346,10 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tr_30yr_anomaly_annual_agree_model_ensemble", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr-uncertainty_group", wms_secondary_layer_name="tr", thredds_url_pattern="ensembletwbc/std/clipped/ecatran_20_avgagree_{time_window}_{scenario}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="uncert-stippled/seq-YlOrRd", - # color_scale_min=-5, - # color_scale_max=75, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -601,21 +357,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "model_ensemble") @@ -655,19 +396,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tr_30yr_anomaly_annual_model_ec_earth_cclm4_8_17", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr", thredds_url_pattern="indici5rcm/clipped/ecatran_20_EC-EARTH_CCLM4-8-17_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=-5, - # color_scale_max=75, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -675,21 +406,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -732,19 +448,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tr_30yr_anomaly_annual_model_ec_earth_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr", thredds_url_pattern="indici5rcm/clipped/ecatran_20_EC-EARTH_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=-5, - # color_scale_max=75, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -752,21 +458,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -809,19 +500,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tr_30yr_anomaly_annual_model_ec_earth_rca4", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr", thredds_url_pattern="indici5rcm/clipped/ecatran_20_EC-EARTH_RCA4_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=-5, - # color_scale_max=75, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -829,21 +510,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.CLIMATOLOGICAL_MODEL.value, "ec_earth_rca4") @@ -883,19 +549,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tr_30yr_anomaly_annual_model_hadgem2_es_racmo22e", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr", thredds_url_pattern="indici5rcm/clipped/ecatran_20_HadGEM2-ES_RACMO22E_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=-5, - # color_scale_max=75, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -903,21 +559,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( @@ -960,19 +601,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tr_30yr_anomaly_annual_model_mpi_esm_lr_remo2009", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="tr", wms_main_layer_name="tr", thredds_url_pattern="indici5rcm/clipped/ecatran_20_MPI-ESM-LR_REMO2009_{scenario}_{time_window}_ls_VFVG.nc", - # unit_english="days", - # unit_italian="gg", - # palette="default/seq-YlOrRd", - # color_scale_min=-5, - # color_scale_max=75, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-anomaly-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -980,21 +611,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "forecast") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, "tr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "anomaly") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ( diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/cdds.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/cdds.py index d34e71b3..640450e7 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/cdds.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/cdds.py @@ -4,44 +4,19 @@ ConfigurationParameterPossibleValueCreate, ) -# _DISPLAY_NAME_ENGLISH = "Cooling degree days" -# _DISPLAY_NAME_ITALIAN = "Gradi giorno di raffrescamento" -# _DESCRIPTION_ENGLISH = ( -# "Sum of the average daily temperature minus 21°C if the average " -# "daily temperature is greater than 24°C." -# ) -# _DESCRIPTION_ITALIAN = ( -# "Somma della temperatura media giornaliera meno 21°C se la " -# "temperatura media giornaliera è maggiore di 24°C." -# ) -# # _VARIABLE = "cdds" -# _UNIT = "ºC" -# _COLOR_SCALE_MIN = 0 -# _COLOR_SCALE_MAX = 320 -# _DATA_PRECISION = 0 _ARCHIVE = "historical" def generate_configurations( conf_param_values, - variables, climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: cov_confs = [ CoverageConfigurationCreate( name="cdds_30yr", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="{historical_year_period}_avg", wms_main_layer_name="{historical_year_period}_avg", thredds_url_pattern="cline_30yr/CDD_jrc_{climatological_standard_normal}.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -49,21 +24,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ("climatological_standard_normal", "1991_2020") @@ -78,18 +38,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="cdds_annual_yearly", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="CDD_jrc", wms_main_layer_name="CDD_jrc", thredds_url_pattern="cline_yr/CDD_jrc_{historical_year_period}_*.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["cdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -97,21 +48,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/fd.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/fd.py index 1f834ba2..7e9f76b2 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/fd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/fd.py @@ -1,47 +1,23 @@ -from ....schemas.base import ( - CoreConfParamName, - ObservationAggregationType, -) +from ....schemas.base import CoreConfParamName from ....schemas.coverages import ( CoverageConfigurationCreate, ConfigurationParameterPossibleValueCreate, ) -# _DISPLAY_NAME_ENGLISH = "Frosty days" -# _DISPLAY_NAME_ITALIAN = "Giorni di gelo" -# _DESCRIPTION_ENGLISH = "Number of days with minimum temperature below 0°C" -# _DESCRIPTION_ITALIAN = "Numero di giorni con temperatura minima minore di 0°C" -# # _VARIABLE = "fd" -# _UNIT_ENGLISH = "days" -# _UNIT_ITALIAN = "gg" -# _COLOR_SCALE_MIN = 0 -# _COLOR_SCALE_MAX = 260 -# _DATA_PRECISION = 0 _RELATED_OBSERVATION_VARIABLE_NAME = "FD" _ARCHIVE = "historical" def generate_configurations( conf_param_values, - variables, climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( name="fd_30yr", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="{historical_year_period}_avg", wms_main_layer_name="{historical_year_period}_avg", thredds_url_pattern="cline_30yr/FD_{climatological_standard_normal}.nc", - # unit_english=_UNIT_ENGLISH, - # unit_italian=_UNIT_ITALIAN, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -49,21 +25,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ("climatological_standard_normal", "1991_2020") @@ -78,19 +39,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="fd_annual_yearly", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="FD", wms_main_layer_name="FD", thredds_url_pattern="cline_yr/FD_{historical_year_period}_*.nc", - # unit_english=_UNIT_ENGLISH, - # unit_italian=_UNIT_ITALIAN, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["fd-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -98,32 +49,11 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") ].id ), ], - observation_variable_id=( - v.id - if (v := variables.get(_RELATED_OBSERVATION_VARIABLE_NAME)) is not None - else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), ] diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/hdds.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/hdds.py index af807746..71074566 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/hdds.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/hdds.py @@ -4,44 +4,19 @@ ConfigurationParameterPossibleValueCreate, ) -# _DISPLAY_NAME_ENGLISH = "Heating degree days" -# _DISPLAY_NAME_ITALIAN = "Gradi giorno di riscaldamento" -# _DESCRIPTION_ENGLISH = ( -# "Sum of 20°C minus the average daily temperature if the " -# "average daily temperature is less than 20°C." -# ) -# _DESCRIPTION_ITALIAN = ( -# "Somma di 20°C meno la temperatura media giornaliera se la " -# "temperatura media giornaliera è minore di 20°C." -# ) -# # _VARIABLE = "hdds" -# _UNIT = "ºC" -# _COLOR_SCALE_MIN = 2130 -# _COLOR_SCALE_MAX = 7800 -# _DATA_PRECISION = 0 _ARCHIVE = "historical" def generate_configurations( conf_param_values, - variables, climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: cov_confs = [ CoverageConfigurationCreate( name="hdds_30yr", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="{historical_year_period}_avg", wms_main_layer_name="{historical_year_period}_avg", thredds_url_pattern="cline_30yr/HDD_it_{climatological_standard_normal}.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -49,21 +24,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ("climatological_standard_normal", "1991_2020") @@ -78,18 +38,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="hdds_annual_yearly", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="HDD_it", wms_main_layer_name="HDD_it", thredds_url_pattern="cline_yr/HDD_it_{historical_year_period}_*.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["hdds-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -97,21 +48,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/prcptot.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/prcptot.py index 7bdff1cd..12634a93 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/prcptot.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/prcptot.py @@ -1,45 +1,23 @@ -from ....schemas.base import ( - CoreConfParamName, - ObservationAggregationType, -) +from ....schemas.base import CoreConfParamName from ....schemas.coverages import ( CoverageConfigurationCreate, ConfigurationParameterPossibleValueCreate, ) -# _DISPLAY_NAME_ENGLISH = "Precipitation" -# _DISPLAY_NAME_ITALIAN = "Precipitazione" -# _DESCRIPTION_ENGLISH = "Daily precipitation near the ground" -# _DESCRIPTION_ITALIAN = "Precipitazione giornaliera vicino al suolo" -# # _VARIABLE = "prcptot" -# _UNIT = "mm" -# _COLOR_SCALE_MIN = 300 -# _COLOR_SCALE_MAX = 1300 -# _DATA_PRECISION = 0 _RELATED_OBSERVATION_VARIABLE_NAME = "PRCPTOT" _ARCHIVE = "historical" def generate_configurations( conf_param_values, - variables, climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( name="prcptot_30yr", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="{historical_year_period}_avg", wms_main_layer_name="{historical_year_period}_avg", thredds_url_pattern="cline_30yr/PRCPTOT_{climatological_standard_normal}.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -47,21 +25,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ("climatological_standard_normal", "1991_2020") @@ -156,18 +119,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="prcptot_annual_yearly", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="PRCPTOT", wms_main_layer_name="PRCPTOT", thredds_url_pattern="cline_yr/PRCPTOT_{historical_year_period}_*.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -175,48 +129,18 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") ].id ), ], - observation_variable_id=( - v.id - if (v := variables.get(_RELATED_OBSERVATION_VARIABLE_NAME)) is not None - else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="prcptot_annual_seasonal", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="PRCPTOT", wms_main_layer_name="PRCPTOT", thredds_url_pattern="cline_yr/PRCPTOT_{historical_year_period}_*.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -224,21 +148,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "winter") @@ -260,27 +169,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id - if (v := variables.get(_RELATED_OBSERVATION_VARIABLE_NAME)) is not None - else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="prcptot_annual_monthly", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="PRCPTOT", wms_main_layer_name="PRCPTOT", thredds_url_pattern="cline_yr/PRCPTOT_{historical_year_period}_*.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["pr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -288,21 +182,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "january") @@ -364,11 +243,5 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id - if (v := variables.get(_RELATED_OBSERVATION_VARIABLE_NAME)) is not None - else None - ), - observation_variable_aggregation_type=ObservationAggregationType.MONTHLY, ), ] diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/su30.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/su30.py index 055880d8..d83276cf 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/su30.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/su30.py @@ -1,47 +1,23 @@ -from ....schemas.base import ( - CoreConfParamName, - ObservationAggregationType, -) +from ....schemas.base import CoreConfParamName from ....schemas.coverages import ( CoverageConfigurationCreate, ConfigurationParameterPossibleValueCreate, ) -# _DISPLAY_NAME_ENGLISH = "Hot days" -# _DISPLAY_NAME_ITALIAN = "Giorni caldi" -# _DESCRIPTION_ENGLISH = "Number of days with maximum temperature above 30°C" -# _DESCRIPTION_ITALIAN = "Numero di giorni con temperatura massima maggiore di 30°C" -# # _VARIABLE = "su30" -# _UNIT_ENGLISH = "days" -# _UNIT_ITALIAN = "gg" -# _COLOR_SCALE_MIN = 0 -# _COLOR_SCALE_MAX = 80 -# _DATA_PRECISION = 0 _RELATED_OBSERVATION_VARIABLE_NAME = "SU30" _ARCHIVE = "historical" def generate_configurations( conf_param_values, - variables, climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( name="su30_30yr", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="{historical_year_period}_avg", wms_main_layer_name="{historical_year_period}_avg", thredds_url_pattern="cline_30yr/SU30_{climatological_standard_normal}.nc", - # unit_english=_UNIT_ENGLISH, - # unit_italian=_UNIT_ITALIAN, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -49,21 +25,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ("climatological_standard_normal", "1991_2020") @@ -78,19 +39,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="su30_annual_yearly", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="SU30", wms_main_layer_name="SU30", thredds_url_pattern="cline_yr/SU30_{historical_year_period}_*.nc", - # unit_english=_UNIT_ENGLISH, - # unit_italian=_UNIT_ITALIAN, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["su30-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -98,32 +49,11 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") ].id ), ], - observation_variable_id=( - v.id - if (v := variables.get(_RELATED_OBSERVATION_VARIABLE_NAME)) is not None - else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), ] diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tdd.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tdd.py index fa6de938..bdbbad13 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tdd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tdd.py @@ -1,45 +1,23 @@ -from ....schemas.base import ( - CoreConfParamName, - ObservationAggregationType, -) +from ....schemas.base import CoreConfParamName from ....schemas.coverages import ( CoverageConfigurationCreate, ConfigurationParameterPossibleValueCreate, ) -# _DISPLAY_NAME_ENGLISH = "Average temperature" -# _DISPLAY_NAME_ITALIAN = "Temperatura media" -# _DESCRIPTION_ENGLISH = "Average of average temperatures" -# _DESCRIPTION_ITALIAN = "Media delle temperature medie" -# # _VARIABLE = "tdd" -# _UNIT = "ºC" -# _COLOR_SCALE_MIN = -5 -# _COLOR_SCALE_MAX = 20 -# _DATA_PRECISION = 1 _RELATED_OBSERVATION_VARIABLE_NAME = "TDd" _ARCHIVE = "historical" def generate_configurations( conf_param_values, - variables, climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( name="tdd_30yr", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="{historical_year_period}_avg", wms_main_layer_name="{historical_year_period}_avg", thredds_url_pattern="cline_30yr/TDd_{climatological_standard_normal}.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -47,21 +25,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ("climatological_standard_normal", "1991_2020") @@ -156,18 +119,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tdd_annual_yearly", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="TDd", wms_main_layer_name="TDd", thredds_url_pattern="cline_yr/TDd_{historical_year_period}_*.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -175,48 +129,18 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") ].id ), ], - observation_variable_id=( - v.id - if (v := variables.get(_RELATED_OBSERVATION_VARIABLE_NAME)) is not None - else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="tdd_annual_seasonal", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="TDd", wms_main_layer_name="TDd", thredds_url_pattern="cline_yr/TDd_{historical_year_period}_*.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -224,21 +148,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "winter") @@ -260,27 +169,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id - if (v := variables.get(_RELATED_OBSERVATION_VARIABLE_NAME)) is not None - else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tdd_annual_monthly", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="TDd", wms_main_layer_name="TDd", thredds_url_pattern="cline_yr/TDd_{historical_year_period}_*.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -288,21 +182,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "january") @@ -364,27 +243,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id - if (v := variables.get(_RELATED_OBSERVATION_VARIABLE_NAME)) is not None - else None - ), - observation_variable_aggregation_type=ObservationAggregationType.MONTHLY, ), CoverageConfigurationCreate( name="tdd_barometro_climatico", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="TDd", wms_main_layer_name="TDd", thredds_url_pattern="cline_yr/fldmean/TDd_A00_*.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tas-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -392,17 +256,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, "barometro_climatico") ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), ], - observation_variable_id=( - v.id - if (v := variables.get(_RELATED_OBSERVATION_VARIABLE_NAME)) is not None - else None - ), - observation_variable_aggregation_type=ObservationAggregationType.MONTHLY, ), ] diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tnd.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tnd.py index 0f4e4686..bd5b4eb5 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tnd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tnd.py @@ -1,45 +1,23 @@ -from ....schemas.base import ( - CoreConfParamName, - ObservationAggregationType, -) +from ....schemas.base import CoreConfParamName from ....schemas.coverages import ( CoverageConfigurationCreate, ConfigurationParameterPossibleValueCreate, ) -# _DISPLAY_NAME_ENGLISH = "Minimum temperature" -# _DISPLAY_NAME_ITALIAN = "Temperatura minima" -# _DESCRIPTION_ENGLISH = "Average of minimum temperatures" -# _DESCRIPTION_ITALIAN = "Media delle temperature minime" -# # _VARIABLE = "tnd" -# _UNIT = "ºC" -# _COLOR_SCALE_MIN = -5 -# _COLOR_SCALE_MAX = 20 -# _DATA_PRECISION = 1 _RELATED_OBSERVATION_VARIABLE_NAME = "TNd" _ARCHIVE = "historical" def generate_configurations( conf_param_values, - variables, climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( name="tnd_30yr", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="{historical_year_period}_avg", wms_main_layer_name="{historical_year_period}_avg", thredds_url_pattern="cline_30yr/TNd_{climatological_standard_normal}.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -47,21 +25,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ("climatological_standard_normal", "1991_2020") @@ -156,18 +119,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tnd_annual_yearly", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="TNd", wms_main_layer_name="TNd", thredds_url_pattern="cline_yr/TNd_{historical_year_period}_*.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -175,48 +129,18 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") ].id ), ], - observation_variable_id=( - v.id - if (v := variables.get(_RELATED_OBSERVATION_VARIABLE_NAME)) is not None - else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="tnd_annual_seasonal", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="TNd", wms_main_layer_name="TNd", thredds_url_pattern="cline_yr/TNd_{historical_year_period}_*.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -224,21 +148,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "winter") @@ -260,27 +169,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id - if (v := variables.get(_RELATED_OBSERVATION_VARIABLE_NAME)) is not None - else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="tnd_annual_monthly", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="TNd", wms_main_layer_name="TNd", thredds_url_pattern="cline_yr/TNd_{historical_year_period}_*.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmin-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -288,21 +182,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "february") @@ -359,11 +238,5 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id - if (v := variables.get(_RELATED_OBSERVATION_VARIABLE_NAME)) is not None - else None - ), - observation_variable_aggregation_type=ObservationAggregationType.MONTHLY, ), ] diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tr.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tr.py index 01f297aa..92c61844 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/tr.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/tr.py @@ -1,45 +1,23 @@ -from ....schemas.base import ( - CoreConfParamName, - ObservationAggregationType, -) +from ....schemas.base import CoreConfParamName from ....schemas.coverages import ( CoverageConfigurationCreate, ConfigurationParameterPossibleValueCreate, ) -# _DISPLAY_NAME_ENGLISH = "Tropical nights" -# _DISPLAY_NAME_ITALIAN = "Notti tropicali" -# _DESCRIPTION_ENGLISH = "Number of days with minimum temperature higher than 20°C" -# _DESCRIPTION_ITALIAN = "Numero di giorni con temperatura minima maggiore di 20°C" -# # _VARIABLE = "tr" -# _UNIT = "gg" -# _COLOR_SCALE_MIN = 0 -# _COLOR_SCALE_MAX = 50 -# _DATA_PRECISION = 0 _RELATED_OBSERVATION_VARIABLE_NAME = "TR" _ARCHIVE = "historical" def generate_configurations( conf_param_values, - variables, climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( name="tr_30yr", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="{historical_year_period}_avg", wms_main_layer_name="{historical_year_period}_avg", thredds_url_pattern="cline_30yr/TR_{climatological_standard_normal}.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -47,21 +25,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ("climatological_standard_normal", "1991_2020") @@ -76,18 +39,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="tr_annual_yearly", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="TR", wms_main_layer_name="TR", thredds_url_pattern="cline_yr/TR_{historical_year_period}_*.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tr-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -95,32 +49,11 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") ].id ), ], - observation_variable_id=( - v.id - if (v := variables.get(_RELATED_OBSERVATION_VARIABLE_NAME)) is not None - else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), ] diff --git a/arpav_ppcv/bootstrapper/coverage_configurations/historical/txd.py b/arpav_ppcv/bootstrapper/coverage_configurations/historical/txd.py index e43b9389..a5b1fad2 100644 --- a/arpav_ppcv/bootstrapper/coverage_configurations/historical/txd.py +++ b/arpav_ppcv/bootstrapper/coverage_configurations/historical/txd.py @@ -1,45 +1,23 @@ -from ....schemas.base import ( - CoreConfParamName, - ObservationAggregationType, -) +from ....schemas.base import CoreConfParamName from ....schemas.coverages import ( CoverageConfigurationCreate, ConfigurationParameterPossibleValueCreate, ) -# _DISPLAY_NAME_ENGLISH = "Maximum temperature" -# _DISPLAY_NAME_ITALIAN = "Temperatura massima" -# _DESCRIPTION_ENGLISH = "Average of maximum temperatures" -# _DESCRIPTION_ITALIAN = "Media delle temperature massime" -# # _VARIABLE = "txd" -# _UNIT = "ºC" -# _COLOR_SCALE_MIN = -5 -# _COLOR_SCALE_MAX = 20 -# _DATA_PRECISION = 1 _RELATED_OBSERVATION_VARIABLE_NAME = "TXd" _ARCHIVE = "historical" def generate_configurations( conf_param_values, - variables, climatic_indicators: dict[str, int], ) -> list[CoverageConfigurationCreate]: return [ CoverageConfigurationCreate( name="txd_30yr", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="{historical_year_period}_avg", wms_main_layer_name="{historical_year_period}_avg", thredds_url_pattern="cline_30yr/TXd_{climatological_standard_normal}.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-thirty_year"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -47,21 +25,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "30yr") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ ("climatological_standard_normal", "1991_2020") @@ -156,18 +119,9 @@ def generate_configurations( ), CoverageConfigurationCreate( name="txd_annual_yearly", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="TXd", wms_main_layer_name="TXd", thredds_url_pattern="cline_yr/TXd_{historical_year_period}_*.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -175,48 +129,18 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "all_year") ].id ), ], - observation_variable_id=( - v.id - if (v := variables.get(_RELATED_OBSERVATION_VARIABLE_NAME)) is not None - else None - ), - observation_variable_aggregation_type=ObservationAggregationType.YEARLY, ), CoverageConfigurationCreate( name="txd_annual_seasonal", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="TXd", wms_main_layer_name="TXd", thredds_url_pattern="cline_yr/TXd_{historical_year_period}_*.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -224,21 +148,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "winter") @@ -260,27 +169,12 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id - if (v := variables.get(_RELATED_OBSERVATION_VARIABLE_NAME)) is not None - else None - ), - observation_variable_aggregation_type=ObservationAggregationType.SEASONAL, ), CoverageConfigurationCreate( name="txd_annual_monthly", - # display_name_english=_DISPLAY_NAME_ENGLISH, - # display_name_italian=_DISPLAY_NAME_ITALIAN, - # description_english=_DESCRIPTION_ENGLISH, - # description_italian=_DESCRIPTION_ITALIAN, netcdf_main_dataset_name="TXd", wms_main_layer_name="TXd", thredds_url_pattern="cline_yr/TXd_{historical_year_period}_*.nc", - # unit_english=_UNIT, - # palette="default/seq-YlOrRd", - # color_scale_min=_COLOR_SCALE_MIN, - # color_scale_max=_COLOR_SCALE_MAX, - # data_precision=_DATA_PRECISION, climatic_indicator_id=climatic_indicators["tasmax-absolute-annual"], possible_values=[ ConfigurationParameterPossibleValueCreate( @@ -288,21 +182,6 @@ def generate_configurations( (CoreConfParamName.ARCHIVE.value, _ARCHIVE) ].id ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.HISTORICAL_VARIABLE.value, _VARIABLE) - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.AGGREGATION_PERIOD.value, "annual") - # ].id - # ), - # ConfigurationParameterPossibleValueCreate( - # configuration_parameter_value_id=conf_param_values[ - # (CoreConfParamName.MEASURE.value, "absolute") - # ].id - # ), ConfigurationParameterPossibleValueCreate( configuration_parameter_value_id=conf_param_values[ (CoreConfParamName.HISTORICAL_YEAR_PERIOD.value, "january") @@ -364,11 +243,5 @@ def generate_configurations( ].id ), ], - observation_variable_id=( - v.id - if (v := variables.get(_RELATED_OBSERVATION_VARIABLE_NAME)) is not None - else None - ), - observation_variable_aggregation_type=ObservationAggregationType.MONTHLY, ), ] diff --git a/arpav_ppcv/database.py b/arpav_ppcv/database.py index 45a8ae73..4d978c8b 100644 --- a/arpav_ppcv/database.py +++ b/arpav_ppcv/database.py @@ -1069,25 +1069,11 @@ def create_coverage_configuration( to_refresh = [] db_coverage_configuration = coverages.CoverageConfiguration( name=coverage_configuration_create.name, - # display_name_english=coverage_configuration_create.display_name_english, - # display_name_italian=coverage_configuration_create.display_name_italian, - # description_english=coverage_configuration_create.description_english, - # description_italian=coverage_configuration_create.description_italian, netcdf_main_dataset_name=coverage_configuration_create.netcdf_main_dataset_name, wms_main_layer_name=coverage_configuration_create.wms_main_layer_name, wms_secondary_layer_name=coverage_configuration_create.wms_secondary_layer_name, thredds_url_pattern=coverage_configuration_create.thredds_url_pattern, - # unit_english=coverage_configuration_create.unit_english, - # unit_italian=( - # coverage_configuration_create.unit_italian - # or coverage_configuration_create.unit_english - # ), - # palette=coverage_configuration_create.palette, - # color_scale_min=coverage_configuration_create.color_scale_min, - # color_scale_max=coverage_configuration_create.color_scale_max, climatic_indicator_id=coverage_configuration_create.climatic_indicator_id, - observation_variable_id=coverage_configuration_create.observation_variable_id, - observation_variable_aggregation_type=coverage_configuration_create.observation_variable_aggregation_type, uncertainty_lower_bounds_coverage_configuration_id=( coverage_configuration_create.uncertainty_lower_bounds_coverage_configuration_id ), diff --git a/arpav_ppcv/migrations/versions/7b7412888496_added_relationship_between_measurement_.py b/arpav_ppcv/migrations/versions/7b7412888496_added_relationship_between_measurement_.py new file mode 100644 index 00000000..dbe556ba --- /dev/null +++ b/arpav_ppcv/migrations/versions/7b7412888496_added_relationship_between_measurement_.py @@ -0,0 +1,41 @@ +"""added relationship between measurement and climatic_indicator + +Revision ID: 7b7412888496 +Revises: e20d856daca4 +Create Date: 2024-11-14 17:00:26.871034 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa +import sqlmodel + + +# revision identifiers, used by Alembic. +revision: str = '7b7412888496' +down_revision: Union[str, None] = 'e20d856daca4' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('monthlymeasurement', sa.Column('climatic_indicator_id', sa.Integer(), nullable=False)) + op.create_foreign_key(None, 'monthlymeasurement', 'climaticindicator', ['climatic_indicator_id'], ['id'], onupdate='CASCADE', ondelete='CASCADE') + op.add_column('seasonalmeasurement', sa.Column('climatic_indicator_id', sa.Integer(), nullable=False)) + op.create_foreign_key(None, 'seasonalmeasurement', 'climaticindicator', ['climatic_indicator_id'], ['id'], onupdate='CASCADE', ondelete='CASCADE') + op.add_column('yearlymeasurement', sa.Column('climatic_indicator_id', sa.Integer(), nullable=False)) + op.create_foreign_key(None, 'yearlymeasurement', 'climaticindicator', ['climatic_indicator_id'], ['id'], onupdate='CASCADE', ondelete='CASCADE') + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.drop_constraint(None, 'yearlymeasurement', type_='foreignkey') + op.drop_column('yearlymeasurement', 'climatic_indicator_id') + op.drop_constraint(None, 'seasonalmeasurement', type_='foreignkey') + op.drop_column('seasonalmeasurement', 'climatic_indicator_id') + op.drop_constraint(None, 'monthlymeasurement', type_='foreignkey') + op.drop_column('monthlymeasurement', 'climatic_indicator_id') + # ### end Alembic commands ### diff --git a/arpav_ppcv/schemas/climaticindicators.py b/arpav_ppcv/schemas/climaticindicators.py index f81903ee..9c986365 100644 --- a/arpav_ppcv/schemas/climaticindicators.py +++ b/arpav_ppcv/schemas/climaticindicators.py @@ -15,6 +15,11 @@ if TYPE_CHECKING: from . import coverages + from .observations import ( + MonthlyMeasurement, + SeasonalMeasurement, + YearlyMeasurement, + ) _name_description_text: Final[str] = ( "Parameter name. Only alphanumeric characters and the underscore are allowed. " @@ -45,6 +50,43 @@ class ClimaticIndicator(sqlmodel.SQLModel, table=True): "coverages.CoverageConfiguration" ] = sqlmodel.Relationship(back_populates="climatic_indicator") + monthly_measurements: list["MonthlyMeasurement"] = sqlmodel.Relationship( + back_populates="climatic_indicator", + sa_relationship_kwargs={ + # ORM relationship config, which explicitly includes the + # `delete` and `delete-orphan` options because we want the ORM + # to try to delete monthly measurements when their related + # climatic_indicator is deleted + "cascade": "all, delete-orphan", + # expect that the RDBMS handles cascading deletes + "passive_deletes": True, + }, + ) + seasonal_measurements: list["SeasonalMeasurement"] = sqlmodel.Relationship( + back_populates="climatic_indicator", + sa_relationship_kwargs={ + # ORM relationship config, which explicitly includes the + # `delete` and `delete-orphan` options because we want the ORM + # to try to delete seasonal measurements when their related + # climatic_indicator is deleted + "cascade": "all, delete-orphan", + # expect that the RDBMS handles cascading deletes + "passive_deletes": True, + }, + ) + yearly_measurements: list["YearlyMeasurement"] = sqlmodel.Relationship( + back_populates="climatic_indicator", + sa_relationship_kwargs={ + # ORM relationship config, which explicitly includes the + # `delete` and `delete-orphan` options because we want the ORM + # to try to delete yearly measurements when their related + # climatic_indicator is deleted + "cascade": "all, delete-orphan", + # expect that the RDBMS handles cascading deletes + "passive_deletes": True, + }, + ) + @pydantic.computed_field @property def identifier(self) -> str: diff --git a/arpav_ppcv/schemas/coverages.py b/arpav_ppcv/schemas/coverages.py index 276b1234..97612116 100644 --- a/arpav_ppcv/schemas/coverages.py +++ b/arpav_ppcv/schemas/coverages.py @@ -176,29 +176,13 @@ class CoverageConfiguration(sqlmodel.SQLModel, table=True): id: uuid.UUID = sqlmodel.Field(default_factory=uuid.uuid4, primary_key=True) name: str = sqlmodel.Field(unique=True, index=True) - # display_name_english: Optional[str] = None - # display_name_italian: Optional[str] = None - # description_english: Optional[str] = None - # description_italian: Optional[str] = None netcdf_main_dataset_name: str thredds_url_pattern: str wms_main_layer_name: Optional[str] = None wms_secondary_layer_name: Optional[str] = None - # unit_english: str = "" - # unit_italian: Optional[str] = None - # palette: str - # color_scale_min: float = 0.0 - # color_scale_max: float = 1.0 - # data_precision: int = 3 climatic_indicator_id: Optional[int] = sqlmodel.Field( default=None, foreign_key="climaticindicator.id" ) - # observation_variable_id: Optional[uuid.UUID] = sqlmodel.Field( - # default=None, foreign_key="variable.id" - # ) - # observation_variable_aggregation_type: Optional[ - # base.ObservationAggregationType - # ] = None uncertainty_lower_bounds_coverage_configuration_id: Optional[ uuid.UUID ] = sqlmodel.Field(default=None, foreign_key="coverageconfiguration.id") @@ -444,28 +428,14 @@ class CoverageConfigurationCreate(sqlmodel.SQLModel): ), ), ] - # display_name_english: Optional[str] = None - # display_name_italian: Optional[str] = None - # description_english: Optional[str] = None - # description_italian: Optional[str] = None netcdf_main_dataset_name: str # the point in having a wms_main_layer_name and wms_secondary_layer_name is to let # the frontend toggle between them wms_main_layer_name: Optional[str] = None wms_secondary_layer_name: Optional[str] = None thredds_url_pattern: str - # unit_english: str - # unit_italian: Optional[str] = None - # palette: str - # color_scale_min: float - # color_scale_max: float - # data_precision: int = 3 possible_values: list["ConfigurationParameterPossibleValueCreate"] climatic_indicator_id: int - observation_variable_id: Optional[uuid.UUID] = None - observation_variable_aggregation_type: Optional[ - base.ObservationAggregationType - ] = None uncertainty_lower_bounds_coverage_configuration_id: Optional[uuid.UUID] = None uncertainty_upper_bounds_coverage_configuration_id: Optional[uuid.UUID] = None secondary_coverage_configurations_ids: Annotated[ @@ -483,25 +453,11 @@ def validate_thredds_url_pattern(cls, v: str) -> str: class CoverageConfigurationUpdate(sqlmodel.SQLModel): name: Annotated[Optional[str], pydantic.Field(pattern=_NAME_PATTERN)] = None - # display_name_english: Optional[str] = None - # display_name_italian: Optional[str] = None - # description_english: Optional[str] = None - # description_italian: Optional[str] = None netcdf_main_dataset_name: Optional[str] = None wms_main_layer_name: Optional[str] = None wms_secondary_layer_name: Optional[str] = None thredds_url_pattern: Optional[str] = None - # unit_english: Optional[str] = None - # unit_italian: Optional[str] = None - # palette: Optional[str] = None - # color_scale_min: Optional[float] = None - # color_scale_max: Optional[float] = None - # data_precision: Optional[int] = None - observation_variable_id: Optional[uuid.UUID] = None climatic_indicator_id: Optional[int] = None - observation_variable_aggregation_type: Optional[ - base.ObservationAggregationType - ] = None possible_values: list["ConfigurationParameterPossibleValueUpdate"] uncertainty_lower_bounds_coverage_configuration_id: Optional[uuid.UUID] = None uncertainty_upper_bounds_coverage_configuration_id: Optional[uuid.UUID] = None diff --git a/arpav_ppcv/schemas/observations.py b/arpav_ppcv/schemas/observations.py index e3c54ec8..d9f64853 100644 --- a/arpav_ppcv/schemas/observations.py +++ b/arpav_ppcv/schemas/observations.py @@ -285,7 +285,7 @@ class MonthlyMeasurement(MonthlyMeasurementBase, table=True): "lazy": "joined", }, ) - climatic_indicator: ClimaticIndicator = sqlmodel.Relationship( + climatic_indicator: "ClimaticIndicator" = sqlmodel.Relationship( back_populates="monthly_measurements", sa_relationship_kwargs={ # retrieve the related resource immediately, by means of a SQL JOIN - this @@ -348,7 +348,7 @@ class SeasonalMeasurement(sqlmodel.SQLModel, table=True): "lazy": "joined", }, ) - climatic_indicator: ClimaticIndicator = sqlmodel.Relationship( + climatic_indicator: "ClimaticIndicator" = sqlmodel.Relationship( back_populates="seasonal_measurements", sa_relationship_kwargs={ # retrieve the related resource immediately, by means of a SQL JOIN - this @@ -411,7 +411,7 @@ class YearlyMeasurement(sqlmodel.SQLModel, table=True): "lazy": "joined", }, ) - climatic_indicator: ClimaticIndicator = sqlmodel.Relationship( + climatic_indicator: "ClimaticIndicator" = sqlmodel.Relationship( back_populates="yearly_measurements", sa_relationship_kwargs={ # retrieve the related resource immediately, by means of a SQL JOIN - this diff --git a/arpav_ppcv/webapp/api_v2/routers/coverages.py b/arpav_ppcv/webapp/api_v2/routers/coverages.py index 1fa00b93..51757e33 100644 --- a/arpav_ppcv/webapp/api_v2/routers/coverages.py +++ b/arpav_ppcv/webapp/api_v2/routers/coverages.py @@ -5,6 +5,7 @@ from typing import ( Annotated, Optional, + Sequence, ) import anyio.to_thread @@ -37,10 +38,11 @@ utils as thredds_utils, ) from ....schemas.base import ( - CoreConfParamName, CoverageDataSmoothingStrategy, ObservationDataSmoothingStrategy, ) +from ....schemas.coverages import ConfigurationParameterValue +from ....schemas.climaticindicators import ClimaticIndicator from ... import dependencies from ..schemas import coverages as coverage_schemas from ..schemas.base import ( @@ -685,7 +687,7 @@ def get_forecast_variable_combinations( def _retrieve_climatic_indicator_filter( - session: sqlmodel.Session, configuration_parameter_values: Sequence[str] + session: Session, configuration_parameter_values: Sequence[str] ) -> tuple[Optional[list[ConfigurationParameterValue]], Optional[ClimaticIndicator]]: conf_param_values_filter = [] climatic_indicator_parts = {} From cde3c283931ba4ad04557de4f2abdf73fab6e877 Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Silva Date: Fri, 15 Nov 2024 18:08:17 +0000 Subject: [PATCH 19/22] Fixing tests --- arpav_ppcv/cliapp/app.py | 41 --- arpav_ppcv/operations.py | 65 ++--- arpav_ppcv/prefect/flows/observations.py | 25 +- arpav_ppcv/schemas/observations.py | 3 +- arpav_ppcv/webapp/api_v2/routers/coverages.py | 18 +- .../webapp/api_v2/routers/observations.py | 18 +- .../webapp/api_v2/schemas/observations.py | 12 +- tests/conftest.py | 72 ++---- tests/test_cliapp.py | 75 ------ tests/test_database.py | 22 +- .../test_observations_harvester_operations.py | 4 +- tests/test_operations.py | 236 ++++++++---------- tests/test_prefect_flows_observations.py | 37 +-- ...st_webapp_v2_routers_climaticindicators.py | 30 +++ tests/test_webapp_v2_routers_observations.py | 32 +-- 15 files changed, 274 insertions(+), 416 deletions(-) delete mode 100644 tests/test_cliapp.py create mode 100644 tests/test_webapp_v2_routers_climaticindicators.py diff --git a/arpav_ppcv/cliapp/app.py b/arpav_ppcv/cliapp/app.py index 59456cfc..a5fc4513 100644 --- a/arpav_ppcv/cliapp/app.py +++ b/arpav_ppcv/cliapp/app.py @@ -71,47 +71,6 @@ def delete_station( database.delete_station(session, station_id) -@app.command(name="list-variables") -def list_variables(ctx: typer.Context) -> None: - """List variables.""" - with sqlmodel.Session(ctx.obj["engine"]) as session: - result = [ - schemas.VariableRead(**v.model_dump()) - for v in database.collect_all_variables(session) - ] - print(pydantic_core.to_json(result, indent=_JSON_INDENTATION).decode("utf-8")) - - -@app.command(name="create-variable") -def create_variable( - ctx: typer.Context, - name: str, - description: str, - unit: Optional[str] = "", -) -> None: - variable_create = schemas.VariableCreate( - name=name, description=description, unit=unit - ) - """Create a new variable.""" - with sqlmodel.Session(ctx.obj["engine"]) as session: - db_variable = database.create_variable(session, variable_create) - print( - schemas.VariableRead(**db_variable.model_dump()).model_dump_json( - indent=_JSON_INDENTATION - ) - ) - - -@app.command(name="delete-variable") -def delete_variable( - ctx: typer.Context, - variable_id: uuid.UUID, -) -> None: - """Delete a variable.""" - with sqlmodel.Session(ctx.obj["engine"]) as session: - database.delete_variable(session, variable_id) - - @app.command(name="list-monthly-measurements") def list_monthly_measurements(ctx: typer.Context) -> None: """List monthly measurements.""" diff --git a/arpav_ppcv/operations.py b/arpav_ppcv/operations.py index 968b6fa7..fbe9b035 100644 --- a/arpav_ppcv/operations.py +++ b/arpav_ppcv/operations.py @@ -23,7 +23,7 @@ import shapely.io import sqlmodel from anyio.from_thread import start_blocking_portal -from arpav_ppcv.schemas.base import CoreConfParamName + from dateutil.parser import isoparse from geoalchemy2.shape import to_shape from pandas.core.indexes.datetimes import DatetimeIndex @@ -40,6 +40,7 @@ coverages, observations, ) +from .schemas.base import CoreConfParamName from .thredds import ( crawler, ncss, @@ -1018,27 +1019,21 @@ def list_coverage_identifiers_by_param_values( limit: int = 20, offset: int = 0, ) -> list[str]: - valid_variables = _filter_configuration_parameter_values( + valid_climatic_indicators = _list_possible_climatic_indicators( session, climatological_variable_filter or [], - CoreConfParamName.CLIMATOLOGICAL_VARIABLE.value, + measure_filter or [], + aggregation_period_filter or [], ) + logger.debug(f"{locals()=}") valid_climatological_models = _filter_configuration_parameter_values( session, climatological_model_filter or [], CoreConfParamName.CLIMATOLOGICAL_MODEL.value, ) - valid_aggregation_periods = _filter_configuration_parameter_values( - session, - aggregation_period_filter or [], - CoreConfParamName.AGGREGATION_PERIOD.value, - ) valid_scenarios = _filter_configuration_parameter_values( session, scenario_filter or [], CoreConfParamName.SCENARIO.value ) - valid_measures = _filter_configuration_parameter_values( - session, measure_filter or [], CoreConfParamName.MEASURE.value - ) valid_year_periods = _filter_configuration_parameter_values( session, year_period_filter or [], CoreConfParamName.YEAR_PERIOD.value ) @@ -1053,28 +1048,16 @@ def list_coverage_identifiers_by_param_values( valid_time_window_names = [tw.name for tw in valid_time_windows if tw is not None] coverage_identifiers = set() for combination in itertools.product( - valid_variables, - valid_aggregation_periods, + valid_climatic_indicators, valid_climatological_models, valid_scenarios, - valid_measures, valid_year_periods, valid_time_windows, ): - ( - variable, - aggregation_period, - model, - scenario, - measure, - year_period, - time_window, - ) = combination + climatic_indicator, model, scenario, year_period, time_window = combination logger.debug( - f"getting links for variable: {variable.name!r}, " - f"aggregation_period: {aggregation_period.name!r}, " + f"getting links for climatic_indicator: {climatic_indicator.identifier!r}, " f"model: {model.name!r}, scenario: {scenario.name!r}, " - f"measure: {measure.name!r}, " f"year_period: {year_period.name!r}, " f"time_window: {time_window.name if time_window else time_window!r}..." ) @@ -1082,11 +1065,8 @@ def list_coverage_identifiers_by_param_values( database.get_configuration_parameter_value_by_names( session, CoreConfParamName.ARCHIVE.value, "forecast" ), - variable, - aggregation_period, model, scenario, - measure, year_period, time_window, ] @@ -1096,6 +1076,7 @@ def list_coverage_identifiers_by_param_values( limit=limit, offset=offset, configuration_parameter_values_filter=filter_, + climatic_indicator_filter=climatic_indicator, ) for cov_conf in cov_confs: identifiers = database.generate_coverage_identifiers( @@ -1119,3 +1100,29 @@ def list_coverage_identifiers_by_param_values( if len(coverage_identifiers) > (offset + limit): break return sorted(coverage_identifiers)[offset : offset + limit] + + +def _list_possible_climatic_indicators( + session: sqlmodel.Session, + variable_names: Sequence[str], + measure_types: Sequence[str], + aggregation_periods: Sequence[str], +) -> list[climaticindicators.ClimaticIndicator]: + filtered = database.collect_all_climatic_indicators(session) + if len(variable_names) > 0: + filtered = [i for i in filtered if i.name in variable_names] + if len(measure_types) > 0: + filtered = [ + i for i in filtered if i.measure_type.value.lower() in measure_types + ] + if len(aggregation_periods) > 0: + periods = [] + for p in aggregation_periods: + if p == "30yr": + periods.append("thirty_year") + else: + periods.append(p) + filtered = [ + i for i in filtered if i.aggregation_period.value.lower() in periods + ] + return filtered diff --git a/arpav_ppcv/prefect/flows/observations.py b/arpav_ppcv/prefect/flows/observations.py index 6818b4d3..5ac411e1 100644 --- a/arpav_ppcv/prefect/flows/observations.py +++ b/arpav_ppcv/prefect/flows/observations.py @@ -1,5 +1,8 @@ import datetime as dt -from typing import Sequence +from typing import ( + Sequence, + Union, +) import httpx import sqlmodel @@ -552,26 +555,28 @@ def _build_created_measurements_table( def build_monthly_measurement_id( - measurement: observations.MonthlyMeasurement - | observations.MonthlyMeasurementCreate, + measurement: Union[ + observations.MonthlyMeasurement, observations.MonthlyMeasurementCreate + ], ) -> str: return "-".join( ( str(measurement.station_id), - str(measurement.variable_id), + str(measurement.climatic_indicator_id), measurement.date.strftime("%Y%m"), ) ) def build_seasonal_measurement_id( - measurement: observations.SeasonalMeasurement - | observations.SeasonalMeasurementCreate, + measurement: Union[ + observations.SeasonalMeasurement, observations.SeasonalMeasurementCreate + ], ) -> str: return "-".join( ( str(measurement.station_id), - str(measurement.variable_id), + str(measurement.climatic_indicator_id), str(measurement.year), measurement.season.value, ) @@ -579,12 +584,14 @@ def build_seasonal_measurement_id( def build_yearly_measurement_id( - measurement: observations.YearlyMeasurement | observations.YearlyMeasurementCreate, + measurement: Union[ + observations.YearlyMeasurement, observations.YearlyMeasurementCreate + ], ) -> str: return "-".join( ( str(measurement.station_id), - str(measurement.variable_id), + str(measurement.climatic_indicator_id), str(measurement.year), ) ) diff --git a/arpav_ppcv/schemas/observations.py b/arpav_ppcv/schemas/observations.py index d9f64853..4936100d 100644 --- a/arpav_ppcv/schemas/observations.py +++ b/arpav_ppcv/schemas/observations.py @@ -298,7 +298,6 @@ class MonthlyMeasurement(MonthlyMeasurementBase, table=True): class MonthlyMeasurementCreate(sqlmodel.SQLModel): station_id: pydantic.UUID4 - # variable_id: pydantic.UUID4 climatic_indicator_id: int value: float date: dt.date @@ -361,7 +360,7 @@ class SeasonalMeasurement(sqlmodel.SQLModel, table=True): class SeasonalMeasurementCreate(sqlmodel.SQLModel): station_id: pydantic.UUID4 - climatic_indicator_id: pydantic.UUID4 + climatic_indicator_id: int value: float year: int season: base.Season diff --git a/arpav_ppcv/webapp/api_v2/routers/coverages.py b/arpav_ppcv/webapp/api_v2/routers/coverages.py index 51757e33..7cde1ecd 100644 --- a/arpav_ppcv/webapp/api_v2/routers/coverages.py +++ b/arpav_ppcv/webapp/api_v2/routers/coverages.py @@ -228,25 +228,17 @@ def list_coverage_identifiers( Query(), ] = None, ): - conf_param_values_filter = [] - for possible in possible_value or []: - param_name, param_value = possible.partition(":")[::2] - db_parameter_value = db.get_configuration_parameter_value_by_names( - db_session, param_name, param_value - ) - if db_parameter_value is not None: - conf_param_values_filter.append(db_parameter_value) - else: - logger.debug( - f"ignoring unknown parameter/value pair {param_name}:{param_value}" - ) + conf_param_values_filter, climatic_indicator = _retrieve_climatic_indicator_filter( + db_session, possible_value or [] + ) cov_internals, filtered_total = db.list_coverage_identifiers( db_session, limit=list_params.limit, offset=list_params.offset, include_total=True, name_filter=name_contains, - configuration_parameter_values_filter=conf_param_values_filter or None, + configuration_parameter_values_filter=conf_param_values_filter, + climatic_indicator_filter=climatic_indicator, ) _, unfiltered_total = db.list_coverage_identifiers( db_session, limit=1, offset=0, include_total=True diff --git a/arpav_ppcv/webapp/api_v2/routers/observations.py b/arpav_ppcv/webapp/api_v2/routers/observations.py index 8e31ea2f..f3447c27 100644 --- a/arpav_ppcv/webapp/api_v2/routers/observations.py +++ b/arpav_ppcv/webapp/api_v2/routers/observations.py @@ -131,7 +131,7 @@ def list_monthly_measurements( db_session: Annotated[Session, Depends(dependencies.get_db_session)], list_params: Annotated[dependencies.CommonListFilterParameters, Depends()], station_code: str | None = None, - variable_name: str | None = None, + climatic_indicator_identifier: str | None = None, month: Annotated[int | None, fastapi.Query(le=1, ge=12)] = None, ): """List known monthly measurements.""" @@ -143,20 +143,22 @@ def list_monthly_measurements( raise ValueError("Invalid station code") else: station_id = None - if variable_name is not None: - db_variable = db.get_variable_by_name(db_session, variable_name) - if db_variable is not None: - variable_id = db_variable.id + if climatic_indicator_identifier is not None: + db_climatic_indicator = db.get_climatic_indicator_by_identifier( + db_session, climatic_indicator_identifier + ) + if db_climatic_indicator is not None: + climatic_indicator_id = db_climatic_indicator.id else: - raise ValueError("Invalid variable name") + raise ValueError("Invalid climatic indicator identifier") else: - variable_id = None + climatic_indicator_id = None monthly_measurements, filtered_total = db.list_monthly_measurements( db_session, limit=list_params.limit, offset=list_params.offset, station_id_filter=station_id, - variable_id_filter=variable_id, + climatic_indicator_id_filter=climatic_indicator_id, month_filter=month, include_total=True, ) diff --git a/arpav_ppcv/webapp/api_v2/schemas/observations.py b/arpav_ppcv/webapp/api_v2/schemas/observations.py index 51f11c13..51b839d7 100644 --- a/arpav_ppcv/webapp/api_v2/schemas/observations.py +++ b/arpav_ppcv/webapp/api_v2/schemas/observations.py @@ -69,7 +69,7 @@ def from_db_instance( class MonthlyMeasurementReadListItem(observations.MonthlyMeasurementBase): url: pydantic.AnyHttpUrl - variable_name: str + climatic_indicator_identifier: str station_code: str @classmethod @@ -80,7 +80,7 @@ def from_db_instance( ) -> "MonthlyMeasurementReadListItem": return cls( **instance.model_dump(), - variable_name=instance.variable.name, + climatic_indicator_identifier=instance.climatic_indicator.identifier, station_code=instance.station.code, url=str( request.url_for( @@ -92,7 +92,7 @@ def from_db_instance( class SeasonalMeasurementReadListItem(pydantic.BaseModel): url: pydantic.AnyHttpUrl - variable_name: str + climatic_indicator_identifier: str station_code: str year: int season: Season @@ -106,7 +106,7 @@ def from_db_instance( ) -> "SeasonalMeasurementReadListItem": return cls( **instance.model_dump(), - variable_name=instance.variable.name, + climatic_indicator_identifier=instance.climatic_indicator.identifier, station_code=instance.station.code, url=str( request.url_for( @@ -118,7 +118,7 @@ def from_db_instance( class YearlyMeasurementReadListItem(pydantic.BaseModel): url: pydantic.AnyHttpUrl - variable_name: str + climatic_indicator_identifier: str station_code: str year: int value: float @@ -131,7 +131,7 @@ def from_db_instance( ) -> "YearlyMeasurementReadListItem": return cls( **instance.model_dump(), - variable_name=instance.variable.name, + climatic_indicator_identifier=instance.climatic_indicator.identifier, station_code=instance.station.code, url=str( request.url_for( diff --git a/tests/conftest.py b/tests/conftest.py index 840b288b..c5bf948a 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -20,6 +20,7 @@ main, ) from arpav_ppcv.schemas import ( + climaticindicators, coverages, observations, ) @@ -29,15 +30,12 @@ from arpav_ppcv.bootstrapper.configurationparameters import ( generate_configuration_parameters as bootstrappable_configuration_parameters, ) -from arpav_ppcv.bootstrapper.climaticindicators import ( - tas as tas_climatic_indicators_bootstrappable_configurations, +from arpav_ppcv.bootstrapper.climaticindicators.tas import ( + generate_climatic_indicators as generate_tas_climatic_indicators, ) from arpav_ppcv.bootstrapper.coverage_configurations.forecast import ( tas as tas_forecast_bootstrappable_configurations, ) -from arpav_ppcv.bootstrapper.variables import ( - generate_variable_configurations as bootstrappable_variables, -) @pytest.fixture @@ -166,52 +164,42 @@ def sample_stations(arpav_db_session) -> list[observations.Station]: @pytest.fixture() -def sample_variables(arpav_db_session) -> list[observations.Variable]: - db_variables = [] - for i in range(20): - db_variables.append( - observations.Variable( - name=f"testvariable{i}", - description=f"Description for test variable {i}", - ) - ) - for db_variable in db_variables: - arpav_db_session.add(db_variable) - arpav_db_session.commit() - for db_station in db_variables: - arpav_db_session.refresh(db_station) - return db_variables - - -@pytest.fixture() -def sample_real_variables(arpav_db_session) -> list[observations.Variable]: +def sample_real_climatic_indicators( + arpav_db_session, +) -> list[climaticindicators.ClimaticIndicator]: created = [] - for var_to_create in bootstrappable_variables(): - created.append(database.create_variable(arpav_db_session, var_to_create)) + for indicator_to_create in generate_tas_climatic_indicators(): + created.append( + database.create_climatic_indicator(arpav_db_session, indicator_to_create) + ) return created @pytest.fixture() def sample_monthly_measurements( - arpav_db_session, sample_variables, sample_stations + arpav_db_session, + sample_real_climatic_indicators, + sample_stations, ) -> list[observations.MonthlyMeasurement]: db_monthly_measurements = [] unique_measurement_instances = set() while len(unique_measurement_instances) < 200: sampled_date = dt.date(random.randrange(1920, 2020), random.randrange(1, 13), 1) sampled_station_id = random.choice(sample_stations).id - sampled_variable_id = random.choice(sample_variables).id + sampled_climatic_indicator_id = random.choice( + sample_real_climatic_indicators + ).id unique_measurement_instances.add( - (sampled_date, sampled_station_id, sampled_variable_id) + (sampled_date, sampled_station_id, sampled_climatic_indicator_id) ) - for date_, station_id, variable_id in unique_measurement_instances: + for date_, station_id, climatic_indicator_id in unique_measurement_instances: db_monthly_measurements.append( observations.MonthlyMeasurement( value=random.random() * 20 - 10, date=date_, station_id=station_id, - variable_id=variable_id, + climatic_indicator_id=climatic_indicator_id, ) ) for db_monthly_measurement in db_monthly_measurements: @@ -298,27 +286,12 @@ def sample_coverage_configurations( return db_cov_confs -@pytest.fixture() -def sample_real_climatic_indicators( - arpav_db_session, -): - to_create = tas_climatic_indicators_bootstrappable_configurations.generate_climatic_indicators() - created = [] - for clim_ind_to_create in to_create: - created.append( - database.create_climatic_indicator(arpav_db_session, clim_ind_to_create) - ) - return created - - @pytest.fixture() def sample_real_coverage_configurations( arpav_db_session, sample_real_configuration_parameters, sample_real_climatic_indicators, - sample_real_variables, ): - all_vars = database.collect_all_variables(arpav_db_session) all_conf_param_values = database.collect_all_configuration_parameter_values( arpav_db_session ) @@ -329,7 +302,6 @@ def sample_real_coverage_configurations( (pv.configuration_parameter.name, pv.name): pv for pv in all_conf_param_values }, - variables={v.name: v for v in all_vars}, climatic_indicators={i.identifier: i.id for i in all_climatic_indicators}, ) ) @@ -463,7 +435,7 @@ def sample_tas_csv_data(): @pytest.fixture() def sample_real_monthly_measurements( arpav_db_session, - sample_real_variables, + sample_real_climatic_indicators, sample_real_station, ) -> observations.MonthlyMeasurement: raw_measurements = io.StringIO( @@ -918,7 +890,7 @@ def sample_real_monthly_measurements( """.strip() ) reader = csv.reader(raw_measurements, delimiter=",") - vars = {v.name: v for v in sample_real_variables} + indicators = {i.identifier: i.id for i in sample_real_climatic_indicators} measurements = [] for idx, row in enumerate(reader): if idx == 0: # skip the header @@ -927,7 +899,7 @@ def sample_real_monthly_measurements( measurements.append( observations.MonthlyMeasurement( station_id=sample_real_station.id, - variable_id=vars["TDd"].id, + climatic_indicator_id=indicators["tas-absolute-annual"], value=float(value), date=dt.datetime.strptime(raw_date, "%Y-%m-%d"), ) diff --git a/tests/test_cliapp.py b/tests/test_cliapp.py deleted file mode 100644 index 388415bd..00000000 --- a/tests/test_cliapp.py +++ /dev/null @@ -1,75 +0,0 @@ -import pytest - - -@pytest.mark.parametrize( - "code, lon, lat, altitude, name, type_", - [ - pytest.param("fakecode1", "-10.44", "39.45", "5", "fakename1", "faketype1"), - pytest.param("fakecode2", "-10.44", "39.45", None, None, None), - ], -) -def test_create_station(cli_runner, cli_app, code, lon, lat, altitude, name, type_): - execution_args = [ - "app", - "create-station", - code, - lon, - lat, - ] - if altitude is not None: - execution_args.extend(["--altitude", altitude]) - if name is not None: - execution_args.extend(["--name", name]) - if type_ is not None: - execution_args.extend(["--type", type_]) - result = cli_runner.invoke(cli_app, execution_args) - assert result.exit_code == 0 - - -@pytest.mark.parametrize( - "name, description, unit", - [ - pytest.param("fakevar1", "Some fake var 1", "ºC"), - pytest.param("fakevar2", "Some fake var 2", None), - ], -) -def test_create_variable( - cli_runner, - cli_app, - name, - description, - unit, -): - execution_args = [ - "app", - "create-variable", - name, - description, - ] - if unit is not None: - execution_args.extend(["--unit", unit]) - result = cli_runner.invoke(cli_app, execution_args) - assert result.exit_code == 0 - - -@pytest.mark.parametrize( - "date, value", - [ - pytest.param("2020-01-01", "-34.23"), - ], -) -def test_create_monthly_measurement( - cli_runner, cli_app, sample_stations, sample_variables, date, value -): - target_station = sample_stations[0] - target_variable = sample_variables[0] - execution_args = [ - "app", - "create-monthly-measurement", - target_station.code, - target_variable.name, - "2020-01-01", - "23.33", - ] - result = cli_runner.invoke(cli_app, execution_args) - assert result.exit_code == 0 diff --git a/tests/test_database.py b/tests/test_database.py index da338d4b..b6caf678 100644 --- a/tests/test_database.py +++ b/tests/test_database.py @@ -1,5 +1,6 @@ import random from contextlib import nullcontext as does_not_raise +from operator import attrgetter import pydantic import pytest @@ -121,20 +122,25 @@ def test_generate_coverage_identifiers( pytest.param(5, 2, True), ], ) -def test_list_variables( - arpav_db_session, sample_variables, limit, offset, include_total +def test_list_climatic_indicators( + arpav_db_session, sample_real_climatic_indicators, limit, offset, include_total ): - ordered_variables = sorted(sample_variables, key=lambda variable: variable.name) - expected_names = [v.name for v in ordered_variables][offset : offset + limit] - db_variables, total = database.list_variables( + ordered_indicators = sorted( + sample_real_climatic_indicators, + key=attrgetter("sort_order", "name", "aggregation_period", "measure_type"), + ) + expected_identifiers = [i.identifier for i in ordered_indicators][ + offset : offset + limit + ] + db_climatic_indicators, total = database.list_climatic_indicators( arpav_db_session, limit=limit, offset=offset, include_total=include_total ) if include_total: - assert total == len(sample_variables) + assert total == len(sample_real_climatic_indicators) else: assert total is None - for index, db_variable in enumerate(db_variables): - assert db_variable.name == expected_names[index] + for index, db_climatic_indicator in enumerate(db_climatic_indicators): + assert db_climatic_indicator.identifier == expected_identifiers[index] @pytest.mark.parametrize( diff --git a/tests/test_observations_harvester_operations.py b/tests/test_observations_harvester_operations.py index 2bd37660..75e19561 100644 --- a/tests/test_observations_harvester_operations.py +++ b/tests/test_observations_harvester_operations.py @@ -13,7 +13,7 @@ def test_fetch_remote_stations( httpx_mock, arpav_db_session, - sample_real_variables, + sample_real_climatic_indicators, ): httpx_mock.add_response( url=re.compile(r"https://api.arpa.veneto.it/REST/v1/.*"), @@ -37,7 +37,7 @@ def test_fetch_remote_stations( fetched = list( operations.fetch_remote_stations( client, - sample_real_variables[0:1], + climatic_indicators=sample_real_climatic_indicators[0:1], fetch_stations_with_months=True, fetch_stations_with_seasons=False, fetch_stations_with_yearly_measurements=False, diff --git a/tests/test_operations.py b/tests/test_operations.py index bbf5c69c..10699f22 100644 --- a/tests/test_operations.py +++ b/tests/test_operations.py @@ -195,160 +195,80 @@ def test_get_related_coverage_configurations( ], [ pytest.param( + ["tas"], + ["30yr"], + ["model_ensemble"], + ["rcp85"], + ["anomaly"], + ["winter"], + ["tw1"], [ - "tas", - ], - [ - "30yr", - ], - [ - "model_ensemble", - ], - [ - "rcp85", - ], - [ - "anomaly", - ], - [ - "winter", - ], - [ - "tw1", - ], - [ - "tas_30yr_anomaly_seasonal_agree_model_ensemble-30yr-forecast-model_ensemble-tas-anomaly-rcp85-tw1-winter" + "tas_30yr_anomaly_seasonal_agree_model_ensemble-tas-anomaly-thirty_year-forecast-model_ensemble-rcp85-tw1-winter" ], ), pytest.param( - [ - "tas", - ], - [ - "30yr", - ], - [ - "model_ensemble", - ], - [ - "rcp85", - ], - [ - "anomaly", - ], - [ - "winter", - ], + ["tas"], + ["30yr"], + ["model_ensemble"], + ["rcp85"], + ["anomaly"], + ["winter"], None, [ - "tas_30yr_anomaly_seasonal_agree_model_ensemble-30yr-forecast-model_ensemble-tas-anomaly-rcp85-tw1-winter", - "tas_30yr_anomaly_seasonal_agree_model_ensemble-30yr-forecast-model_ensemble-tas-anomaly-rcp85-tw2-winter", + "tas_30yr_anomaly_seasonal_agree_model_ensemble-tas-anomaly-thirty_year-forecast-model_ensemble-rcp85-tw1-winter", + "tas_30yr_anomaly_seasonal_agree_model_ensemble-tas-anomaly-thirty_year-forecast-model_ensemble-rcp85-tw2-winter", ], ), pytest.param( - [ - "tas", - ], - [ - "annual", - ], - [ - "model_ensemble", - ], - [ - "rcp85", - ], - [ - "anomaly", - ], - [ - "winter", - ], + ["tas"], + ["annual"], + ["model_ensemble"], + ["rcp85"], + ["anomaly"], + ["winter"], None, [ - "tas_seasonal_anomaly_model_ensemble-annual-forecast-model_ensemble-tas-anomaly-rcp85-winter", - "tas_seasonal_anomaly_model_ensemble_lower_uncertainty-annual-forecast-model_ensemble-tas-anomaly-rcp85-lower_bound-winter", - "tas_seasonal_anomaly_model_ensemble_upper_uncertainty-annual-forecast-model_ensemble-tas-anomaly-rcp85-upper_bound-winter", + "tas_seasonal_anomaly_model_ensemble-tas-anomaly-annual-forecast-model_ensemble-rcp85-winter", + "tas_seasonal_anomaly_model_ensemble_lower_uncertainty-tas-anomaly-annual-forecast-model_ensemble-rcp85-lower_bound-winter", + "tas_seasonal_anomaly_model_ensemble_upper_uncertainty-tas-anomaly-annual-forecast-model_ensemble-rcp85-upper_bound-winter", ], ), pytest.param( - [ - "tas", - ], - [ - "annual", - ], - [ - "model_ensemble", - ], - [ - "rcp85", - ], - [ - "anomaly", - ], - [ - "winter", - ], - [ - "tw1", - ], + ["tas"], + ["annual"], + ["model_ensemble"], + ["rcp85"], + ["anomaly"], + ["winter"], + ["tw1"], [], ), pytest.param( + ["tas"], + ["annual", "30yr"], + ["model_ensemble"], + ["rcp85"], + ["anomaly"], + ["winter"], + ["tw1"], [ - "tas", - ], - [ - "annual", - "30yr", - ], - [ - "model_ensemble", - ], - [ - "rcp85", - ], - [ - "anomaly", - ], - [ - "winter", - ], - [ - "tw1", - ], - [ - "tas_30yr_anomaly_seasonal_agree_model_ensemble-30yr-forecast-model_ensemble-tas-anomaly-rcp85-tw1-winter", + "tas_30yr_anomaly_seasonal_agree_model_ensemble-tas-anomaly-thirty_year-forecast-model_ensemble-rcp85-tw1-winter", ], ), pytest.param( - [ - "tas", - ], - [ - "annual", - "30yr", - ], - [ - "model_ensemble", - ], - [ - "rcp85", - ], - [ - "anomaly", - ], - [ - "winter", - ], + ["tas"], + ["annual", "30yr"], + ["model_ensemble"], + ["rcp85"], + ["anomaly"], + ["winter"], None, [ - "tas_seasonal_anomaly_model_ensemble-annual-forecast-model_ensemble-tas-anomaly-rcp85-winter", - "tas_seasonal_anomaly_model_ensemble_lower_uncertainty-annual-forecast-model_ensemble-tas-anomaly-rcp85-lower_bound-winter", - "tas_seasonal_anomaly_model_ensemble_upper_uncertainty-annual-forecast-model_ensemble-tas-anomaly-rcp85-upper_bound-winter", - "tas_30yr_anomaly_seasonal_agree_model_ensemble-30yr-forecast-model_ensemble-tas-anomaly-rcp85-tw1-winter", - "tas_30yr_anomaly_seasonal_agree_model_ensemble-30yr-forecast-model_ensemble-tas-anomaly-rcp85-tw2-winter", + "tas_seasonal_anomaly_model_ensemble-tas-anomaly-annual-forecast-model_ensemble-rcp85-winter", + "tas_seasonal_anomaly_model_ensemble_lower_uncertainty-tas-anomaly-annual-forecast-model_ensemble-rcp85-lower_bound-winter", + "tas_seasonal_anomaly_model_ensemble_upper_uncertainty-tas-anomaly-annual-forecast-model_ensemble-rcp85-upper_bound-winter", + "tas_30yr_anomaly_seasonal_agree_model_ensemble-tas-anomaly-thirty_year-forecast-model_ensemble-rcp85-tw1-winter", + "tas_30yr_anomaly_seasonal_agree_model_ensemble-tas-anomaly-thirty_year-forecast-model_ensemble-rcp85-tw2-winter", ], ), ], @@ -382,3 +302,57 @@ def test_list_coverage_identifiers_by_param_values( assert result_item in expected for expected_item in expected: assert expected_item in result + + +@pytest.mark.parametrize( + "variables, measures, aggregation_periods, expected_identifiers", + [ + pytest.param( + [], + [], + [], + [ + "tas-absolute-annual", + "tas-absolute-thirty_year", + "tas-anomaly-annual", + "tas-anomaly-thirty_year", + ], + ), + pytest.param(["fake"], [], [], []), + pytest.param( + [ + "tas", + ], + [ + "absolute", + ], + [], + ["tas-absolute-annual", "tas-absolute-thirty_year"], + ), + pytest.param( + [], + [], + ["annual"], + [ + "tas-absolute-annual", + "tas-anomaly-annual", + ], + ), + pytest.param(["tas"], ["absolute"], ["annual"], ["tas-absolute-annual"]), + ], +) +def test_list_possible_climatic_indicators( + arpav_db_session, + sample_real_climatic_indicators, + variables, + measures, + aggregation_periods, + expected_identifiers, +): + result = operations._list_possible_climatic_indicators( + arpav_db_session, variables, measures, aggregation_periods + ) + for result_climatic_indicator in result: + assert result_climatic_indicator.identifier in expected_identifiers + for expected_identifier in expected_identifiers: + assert expected_identifier in [i.identifier for i in result] diff --git a/tests/test_prefect_flows_observations.py b/tests/test_prefect_flows_observations.py index 02d587f1..578f2eae 100644 --- a/tests/test_prefect_flows_observations.py +++ b/tests/test_prefect_flows_observations.py @@ -9,46 +9,51 @@ @pytest.mark.parametrize( - "station_id, variable_id, value, date, expected", + "station_id, climatic_indicator_id, value, date, expected", [ pytest.param( uuid.UUID("65af54f0-1df2-423b-994f-03fa1195dd7b"), - uuid.UUID("2a20f72f-2e0f-4a0c-9cd4-d3215aa9b8fc"), + 1, 10.23, dt.date(2020, 1, 1), - "65af54f0-1df2-423b-994f-03fa1195dd7b-2a20f72f-2e0f-4a0c-9cd4-d3215aa9b8fc-202001", + "65af54f0-1df2-423b-994f-03fa1195dd7b-1-202001", ), ], ) -def test_build_monthly_measurement_id(station_id, variable_id, value, date, expected): +def test_build_monthly_measurement_id( + station_id, climatic_indicator_id, value, date, expected +): result = observations.build_monthly_measurement_id( observation_schemas.MonthlyMeasurementCreate( - station_id=station_id, variable_id=variable_id, value=value, date=date + station_id=station_id, + climatic_indicator_id=climatic_indicator_id, + value=value, + date=date, ) ) assert result == expected @pytest.mark.parametrize( - "station_id, variable_id, value, year, season, expected", + "station_id, climatic_indicator_id, value, year, season, expected", [ pytest.param( uuid.UUID("65af54f0-1df2-423b-994f-03fa1195dd7b"), - uuid.UUID("2a20f72f-2e0f-4a0c-9cd4-d3215aa9b8fc"), + 2, 10.23, 2020, Season.SUMMER, - "65af54f0-1df2-423b-994f-03fa1195dd7b-2a20f72f-2e0f-4a0c-9cd4-d3215aa9b8fc-2020-SUMMER", + "65af54f0-1df2-423b-994f-03fa1195dd7b-2-2020-SUMMER", ), ], ) def test_build_seasonal_measurement_id( - station_id, variable_id, value, year, season, expected + station_id, climatic_indicator_id, value, year, season, expected ): result = observations.build_seasonal_measurement_id( observation_schemas.SeasonalMeasurementCreate( station_id=station_id, - variable_id=variable_id, + climatic_indicator_id=climatic_indicator_id, value=value, year=year, season=season, @@ -58,22 +63,24 @@ def test_build_seasonal_measurement_id( @pytest.mark.parametrize( - "station_id, variable_id, value, year, expected", + "station_id, climatic_indicator_id, value, year, expected", [ pytest.param( uuid.UUID("65af54f0-1df2-423b-994f-03fa1195dd7b"), - uuid.UUID("2a20f72f-2e0f-4a0c-9cd4-d3215aa9b8fc"), + 3, 10.23, 2020, - "65af54f0-1df2-423b-994f-03fa1195dd7b-2a20f72f-2e0f-4a0c-9cd4-d3215aa9b8fc-2020", + "65af54f0-1df2-423b-994f-03fa1195dd7b-3-2020", ), ], ) -def test_build_yearly_measurement_id(station_id, variable_id, value, year, expected): +def test_build_yearly_measurement_id( + station_id, climatic_indicator_id, value, year, expected +): result = observations.build_yearly_measurement_id( observation_schemas.YearlyMeasurementCreate( station_id=station_id, - variable_id=variable_id, + climatic_indicator_id=climatic_indicator_id, value=value, year=year, ) diff --git a/tests/test_webapp_v2_routers_climaticindicators.py b/tests/test_webapp_v2_routers_climaticindicators.py new file mode 100644 index 00000000..4d1b820f --- /dev/null +++ b/tests/test_webapp_v2_routers_climaticindicators.py @@ -0,0 +1,30 @@ +import httpx + +from arpav_ppcv.schemas.climaticindicators import ClimaticIndicator + + +def test_climatic_indicator_list( + test_client_v2_app: httpx.Client, + sample_real_climatic_indicators: list[ClimaticIndicator], +): + list_response = test_client_v2_app.get( + test_client_v2_app.app.url_path_for("list_climatic_indicators") + ) + assert list_response.status_code == 200 + assert len(list_response.json()["items"]) == 4 + + +def test_climatic_indicator_detail( + test_client_v2_app: httpx.Client, + sample_real_climatic_indicators: list[ClimaticIndicator], +): + target_indicator = sample_real_climatic_indicators[0] + detail_response = test_client_v2_app.get( + test_client_v2_app.app.url_path_for( + "get_climatic_indicator", + climatic_indicator_identifier=target_indicator.identifier, + ) + ) + assert detail_response.status_code == 200 + payload = detail_response.json() + assert payload["identifier"] == target_indicator.identifier diff --git a/tests/test_webapp_v2_routers_observations.py b/tests/test_webapp_v2_routers_observations.py index 9d5eb799..9f9b825a 100644 --- a/tests/test_webapp_v2_routers_observations.py +++ b/tests/test_webapp_v2_routers_observations.py @@ -38,30 +38,6 @@ def test_station_detail( assert uuid.UUID(payload["id"]) == target_station.id -def test_variable_list( - test_client_v2_app: httpx.Client, sample_variables: list[observations.Variable] -): - list_response = test_client_v2_app.get( - test_client_v2_app.app.url_path_for("list_variables") - ) - assert list_response.status_code == 200 - assert len(list_response.json()["items"]) == 20 - - -def test_variable_detail( - test_client_v2_app: httpx.Client, sample_variables: list[observations.Variable] -): - target_variable = sample_variables[0] - detail_response = test_client_v2_app.get( - test_client_v2_app.app.url_path_for( - "get_variable", variable_id=target_variable.id - ) - ) - assert detail_response.status_code == 200 - payload = detail_response.json() - assert uuid.UUID(payload["id"]) == target_variable.id - - def test_monthly_measurement_list( test_client_v2_app: httpx.Client, sample_monthly_measurements: list[observations.MonthlyMeasurement], @@ -93,16 +69,18 @@ def test_monthly_measurement_list_filter_by_variable_name( test_client_v2_app: httpx.Client, sample_monthly_measurements: list[observations.MonthlyMeasurement], ): - target_variable = sample_monthly_measurements[0].variable + target_climatic_indicator = sample_monthly_measurements[0].climatic_indicator list_response = test_client_v2_app.get( test_client_v2_app.app.url_path_for("list_monthly_measurements"), - params={"variable_name": target_variable.name}, + params={"climatic_indicator_identifier": target_climatic_indicator.identifier}, ) assert list_response.status_code == 200 payload = list_response.json() assert len(payload["items"]) > 0 for returned_item in payload["items"]: - assert returned_item["variable_name"] == target_variable.name + assert ( + returned_item["climatic_identifier"] == target_climatic_indicator.identifier + ) def test_monthly_measurement_detail( From cbd68d1f8f1ac6aee233184ef32f5efa75dc1494 Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Silva Date: Fri, 13 Dec 2024 15:38:57 +0000 Subject: [PATCH 20/22] Introducing observation refreshes things --- arpav_ppcv/cliapp/app.py | 62 +- arpav_ppcv/cliapp/climaticindicators.py | 32 + arpav_ppcv/cliapp/observations.py | 64 + arpav_ppcv/cliapp/schemas.py | 51 +- arpav_ppcv/database.py | 1420 ++-- arpav_ppcv/exceptions.py | 4 + ...65677d9_changed_names_of_station_owners.py | 35 + .../9c278ecdeb38_added_observationstation.py | 71 + arpav_ppcv/observations_harvester/cliapp.py | 45 +- .../observations_harvester/operations.py | 51 +- arpav_ppcv/prefect/flows/observations.py | 86 +- arpav_ppcv/schemas/climaticindicators.py | 19 + arpav_ppcv/schemas/observations.py | 242 +- arpav_ppcv/schemas/static.py | 82 + arpav_ppcv/webapp/admin/app.py | 8 + arpav_ppcv/webapp/admin/schemas.py | 23 + arpav_ppcv/webapp/admin/views/observations.py | 256 +- .../webapp/api_v2/routers/observations.py | 590 +- .../api_v2/schemas/geojson/observations.py | 15 +- .../webapp/api_v2/schemas/observations.py | 33 +- poetry.lock | 5908 ++++++++++------- 21 files changed, 5499 insertions(+), 3598 deletions(-) create mode 100644 arpav_ppcv/cliapp/climaticindicators.py create mode 100644 arpav_ppcv/cliapp/observations.py create mode 100644 arpav_ppcv/migrations/versions/8df4e65677d9_changed_names_of_station_owners.py create mode 100644 arpav_ppcv/migrations/versions/9c278ecdeb38_added_observationstation.py diff --git a/arpav_ppcv/cliapp/app.py b/arpav_ppcv/cliapp/app.py index a5fc4513..97849ce1 100644 --- a/arpav_ppcv/cliapp/app.py +++ b/arpav_ppcv/cliapp/app.py @@ -1,11 +1,7 @@ import datetime as dt import uuid -from typing import ( - Annotated, - Optional, -) +from typing import Optional -import geojson_pydantic import pydantic_core import sqlmodel import typer @@ -17,60 +13,20 @@ observations, ) from . import schemas +from .climaticindicators import app as climatic_indicators_app +from .observations import ( + series_configurations_app, + stations_app, +) app = typer.Typer() +app.add_typer(climatic_indicators_app, name="climatic-indicators") +app.add_typer(stations_app, name="observation-stations") +app.add_typer(series_configurations_app, name="observation-series-configurations") _JSON_INDENTATION = 2 -@app.command(name="list-stations") -def list_stations(ctx: typer.Context) -> None: - """List stations.""" - with sqlmodel.Session(ctx.obj["engine"]) as session: - result = [ - schemas.StationRead(**s.model_dump()) - for s in database.collect_all_stations(session) - ] - print(pydantic_core.to_json(result, indent=_JSON_INDENTATION).decode("utf-8")) - - -@app.command(name="create-station", context_settings={"ignore_unknown_options": True}) -def create_station( - ctx: typer.Context, - code: str, - longitude: Annotated[float, typer.Argument(min=-180, max=180)], - latitude: Annotated[float, typer.Argument(min=-90, max=90)], - altitude: Annotated[float, typer.Option(min=-50, max=10_000)] = None, - name: Annotated[str, typer.Option(help="Station name")] = "", - type: Annotated[str, typer.Option(help="Station type")] = "", -) -> None: - station_create = schemas.StationCreate( - geom=geojson_pydantic.Point(type="Point", coordinates=(longitude, latitude)), - code=code, - altitude_m=altitude, - name=name, - type_=type.lower().replace(" ", "_"), - ) - """Create a new station.""" - with sqlmodel.Session(ctx.obj["engine"]) as session: - db_station = database.create_station(session, station_create) - print( - schemas.StationRead(**db_station.model_dump()).model_dump_json( - indent=_JSON_INDENTATION - ) - ) - - -@app.command(name="delete-station") -def delete_station( - ctx: typer.Context, - station_id: uuid.UUID, -) -> None: - """Delete a station.""" - with sqlmodel.Session(ctx.obj["engine"]) as session: - database.delete_station(session, station_id) - - @app.command(name="list-monthly-measurements") def list_monthly_measurements(ctx: typer.Context) -> None: """List monthly measurements.""" diff --git a/arpav_ppcv/cliapp/climaticindicators.py b/arpav_ppcv/cliapp/climaticindicators.py new file mode 100644 index 00000000..85ec4a3a --- /dev/null +++ b/arpav_ppcv/cliapp/climaticindicators.py @@ -0,0 +1,32 @@ +import sqlmodel +import typer +from operator import attrgetter +from rich import print + +from . import schemas +from .. import database + +app = typer.Typer() + + +@app.command(name="list") +def list_climatic_indicators(ctx: typer.Context) -> None: + """List climatic indicators.""" + with sqlmodel.Session(ctx.obj["engine"]) as session: + all_indicators = list(database.collect_all_climatic_indicators(session)) + all_indicators.sort(key=attrgetter("sort_order")) + for db_climatic_indicator in all_indicators: + item = schemas.ClimaticIndicatorItem(**db_climatic_indicator.model_dump()) + print(item.identifier) + + +@app.command(name="get") +def get_climatic_indicator(ctx: typer.Context, identifier: str) -> None: + with sqlmodel.Session(ctx.obj["engine"]) as session: + if ( + db_climatic_indicator := database.get_climatic_indicator_by_identifier( + session, identifier + ) + ) is not None: + item = schemas.ClimaticIndicatorDetail(**db_climatic_indicator.model_dump()) + print(item) diff --git a/arpav_ppcv/cliapp/observations.py b/arpav_ppcv/cliapp/observations.py new file mode 100644 index 00000000..66c40fd4 --- /dev/null +++ b/arpav_ppcv/cliapp/observations.py @@ -0,0 +1,64 @@ +import sqlmodel +import typer +from operator import attrgetter +from rich import print + +from . import schemas +from .. import database + +stations_app = typer.Typer() +series_configurations_app = typer.Typer() + + +@stations_app.command(name="list") +def list_observation_stations(ctx: typer.Context) -> None: + """List observation stations.""" + with sqlmodel.Session(ctx.obj["engine"]) as session: + all_stations = list(database.collect_all_observation_stations(session)) + all_stations.sort(key=attrgetter("code")) + for db_station in all_stations: + item = schemas.ObservationStationItem(**db_station.model_dump()) + print(f"{item.code} - {item.name}") + + +@stations_app.command(name="get") +def get_observation_station(ctx: typer.Context, code: str) -> None: + with sqlmodel.Session(ctx.obj["engine"]) as session: + if ( + db_station := database.get_observation_station_by_code(session, code) + ) is not None: + item = schemas.ObservationStationDetail(**db_station.model_dump()) + print(item) + + +@series_configurations_app.command(name="list") +def list_observation_series_configurations(ctx: typer.Context) -> None: + """List observation series configurations.""" + with sqlmodel.Session(ctx.obj["engine"]) as session: + all_series_configurations = list( + database.collect_all_observation_series_configurations(session) + ) + for db_series_configuration in all_series_configurations: + item = schemas.ObservationSeriesConfigurationItem( + **db_series_configuration.model_dump() + ) + print(item.identifier) + + +@series_configurations_app.command(name="get") +def get_observation_series_configuration(ctx: typer.Context, identifier: str) -> None: + with sqlmodel.Session(ctx.obj["engine"]) as session: + if ( + db_series_configuration := ( + database.get_observation_series_configuration_by_identifier( + session, identifier + ) + ) + ) is not None: + item = schemas.ObservationSeriesConfigurationDetail( + **db_series_configuration.model_dump(exclude={"climatic_indicator_id"}), + climatic_indicator=schemas.ClimaticIndicatorItem( + **db_series_configuration.climatic_indicator.model_dump() + ), + ) + print(item) diff --git a/arpav_ppcv/cliapp/schemas.py b/arpav_ppcv/cliapp/schemas.py index d84d731a..a417ecde 100644 --- a/arpav_ppcv/cliapp/schemas.py +++ b/arpav_ppcv/cliapp/schemas.py @@ -1,15 +1,56 @@ -from ..schemas import observations +import pydantic +from ..schemas import ( + observations, + static, +) -class StationRead(observations.StationBase): - ... + +class ClimaticIndicatorItem(pydantic.BaseModel): + identifier: str + + +class ClimaticIndicatorDetail(pydantic.BaseModel): + identifier: str + name: str + measure_type: static.MeasureType + aggregation_period: static.AggregationPeriod + display_name_english: str + description_english: str + unit_english: str + palette: str + color_scale_min: float + color_scale_max: float + data_precision: float + + +class ObservationStationItem(pydantic.BaseModel): + code: str + name: str + + +class ObservationStationDetail(observations.StationBase): + code: str + name: str + + +class ObservationSeriesConfigurationItem(pydantic.BaseModel): + identifier: str + + +class ObservationSeriesConfigurationDetail(pydantic.BaseModel): + identifier: str + climatic_indicator: ClimaticIndicatorItem + indicator_internal_name: str + measurement_aggregation_type: static.MeasurementAggregationType + station_owners: list[static.ObservationStationOwner] -class StationCreate(observations.StationCreate): +class ObservationStationCreate(observations.StationCreate): ... -class StationUpdate(observations.StationUpdate): +class ObservationStationUpdate(observations.StationUpdate): ... diff --git a/arpav_ppcv/database.py b/arpav_ppcv/database.py index 4d978c8b..894bc900 100644 --- a/arpav_ppcv/database.py +++ b/arpav_ppcv/database.py @@ -172,521 +172,521 @@ def get_engine(settings: config.ArpavPpcvSettings, use_test_db: Optional[bool] = # return result -def create_station( - session: sqlmodel.Session, station_create: observations.StationCreate -) -> observations.Station: - """Create a new station.""" - geom = shapely.io.from_geojson(station_create.geom.model_dump_json()) - wkbelement = from_shape(geom) - db_station = observations.Station( - **station_create.model_dump(exclude={"geom"}), - geom=wkbelement, - ) - session.add(db_station) - try: - session.commit() - except sqlalchemy.exc.DBAPIError: - raise - else: - session.refresh(db_station) - return db_station - - -def create_many_stations( - session: sqlmodel.Session, - stations_to_create: Sequence[observations.StationCreate], -) -> list[observations.Station]: - """Create several stations.""" - db_records = [] - for station_create in stations_to_create: - geom = shapely.io.from_geojson(station_create.geom.model_dump_json()) - wkbelement = from_shape(geom) - db_station = observations.Station( - **station_create.model_dump(exclude={"geom"}), - geom=wkbelement, - ) - db_records.append(db_station) - session.add(db_station) - try: - session.commit() - except sqlalchemy.exc.DBAPIError: - raise - else: - for db_record in db_records: - session.refresh(db_record) - return db_records - - -def get_station( - session: sqlmodel.Session, station_id: uuid.UUID -) -> Optional[observations.Station]: - return session.get(observations.Station, station_id) - - -def get_station_by_code( - session: sqlmodel.Session, station_code: str -) -> Optional[observations.Station]: - """Get a station by its code. - - Since a station code is unique, it can be used to uniquely identify a station. - """ - return session.exec( - sqlmodel.select(observations.Station).where( - observations.Station.code == station_code - ) - ).first() - - -def update_station( - session: sqlmodel.Session, - db_station: observations.Station, - station_update: observations.StationUpdate, -) -> observations.Station: - """Update a station.""" - geom = from_shape(shapely.io.from_geojson(station_update.geom.model_dump_json())) - other_data = station_update.model_dump(exclude={"geom"}, exclude_unset=True) - data = {**other_data, "geom": geom} - for key, value in data.items(): - setattr(db_station, key, value) - session.add(db_station) - session.commit() - session.refresh(db_station) - return db_station - - -def delete_station(session: sqlmodel.Session, station_id: uuid.UUID) -> None: - """Delete a station.""" - db_station = get_station(session, station_id) - if db_station is not None: - session.delete(db_station) - session.commit() - else: - raise RuntimeError("Station not found") - - -def list_stations( - session: sqlmodel.Session, - *, - limit: int = 20, - offset: int = 0, - include_total: bool = False, - name_filter: Optional[str] = None, - polygon_intersection_filter: shapely.Polygon = None, - variable_id_filter: Optional[uuid.UUID] = None, - variable_aggregation_type: Optional[ - base.ObservationAggregationType - ] = base.ObservationAggregationType.SEASONAL, -) -> tuple[Sequence[observations.Station], Optional[int]]: - """List existing stations. - - The ``polygon_intersection_filter`` parameter is expected to be a polygon - geometry in the EPSG:4326 CRS. - """ - statement = sqlmodel.select(observations.Station).order_by( - observations.Station.code - ) - if name_filter is not None: - statement = _add_substring_filter( - statement, name_filter, observations.Station.name - ) - if polygon_intersection_filter is not None: - statement = statement.where( - func.ST_Intersects( - observations.Station.geom, - func.ST_GeomFromWKB( - shapely.io.to_wkb(polygon_intersection_filter), 4326 - ), - ) - ) - if all((variable_id_filter, variable_aggregation_type)): - if variable_aggregation_type == base.ObservationAggregationType.MONTHLY: - instance_class = observations.MonthlyMeasurement - elif variable_aggregation_type == base.ObservationAggregationType.SEASONAL: - instance_class = observations.SeasonalMeasurement - elif variable_aggregation_type == base.ObservationAggregationType.YEARLY: - instance_class = observations.YearlyMeasurement - else: - raise RuntimeError( - f"variable filtering for {variable_aggregation_type} is not supported" - ) - statement = ( - statement.join(instance_class) - .join(observations.Variable) - .where(observations.Variable.id == variable_id_filter) - .distinct() - ) - - else: - logger.warning( - "Did not perform variable filter as not all related parameters have been " - "provided" - ) - items = session.exec(statement.offset(offset).limit(limit)).all() - num_items = _get_total_num_records(session, statement) if include_total else None - return items, num_items - - -def collect_all_stations( - session: sqlmodel.Session, - polygon_intersection_filter: shapely.Polygon = None, -) -> Sequence[observations.Station]: - """Collect all stations. - - The ``polygon_intersetion_filter`` parameter is expected to be a polygon - geometry in the EPSG:4326 CRS. - """ - _, num_total = list_stations( - session, - limit=1, - include_total=True, - polygon_intersection_filter=polygon_intersection_filter, - ) - result, _ = list_stations( - session, - limit=num_total, - include_total=False, - polygon_intersection_filter=polygon_intersection_filter, - ) - return result - - -def create_monthly_measurement( - session: sqlmodel.Session, - monthly_measurement_create: observations.MonthlyMeasurementCreate, -) -> observations.MonthlyMeasurement: - """Create a new monthly measurement.""" - db_monthly_measurement = observations.MonthlyMeasurement( - **monthly_measurement_create.model_dump() - ) - session.add(db_monthly_measurement) - try: - session.commit() - except sqlalchemy.exc.DBAPIError: - raise - else: - session.refresh(db_monthly_measurement) - return db_monthly_measurement - - -def create_many_monthly_measurements( - session: sqlmodel.Session, - monthly_measurements_to_create: Sequence[observations.MonthlyMeasurementCreate], -) -> list[observations.MonthlyMeasurement]: - """Create several monthly measurements.""" - db_records = [] - for monthly_measurement_create in monthly_measurements_to_create: - db_monthly_measurement = observations.MonthlyMeasurement( - station_id=monthly_measurement_create.station_id, - variable_id=monthly_measurement_create.variable_id, - value=monthly_measurement_create.value, - date=monthly_measurement_create.date, - ) - db_records.append(db_monthly_measurement) - session.add(db_monthly_measurement) - try: - session.commit() - except sqlalchemy.exc.DBAPIError: - raise - else: - for db_record in db_records: - session.refresh(db_record) - return db_records - - -def get_monthly_measurement( - session: sqlmodel.Session, monthly_measurement_id: uuid.UUID -) -> Optional[observations.MonthlyMeasurement]: - return session.get(observations.MonthlyMeasurement, monthly_measurement_id) - - -def delete_monthly_measurement( - session: sqlmodel.Session, monthly_measurement_id: uuid.UUID -) -> None: - """Delete a monthly_measurement.""" - db_monthly_measurement = get_monthly_measurement(session, monthly_measurement_id) - if db_monthly_measurement is not None: - session.delete(db_monthly_measurement) - session.commit() - else: - raise RuntimeError("Monthly measurement not found") - - -def list_monthly_measurements( - session: sqlmodel.Session, - *, - limit: int = 20, - offset: int = 0, - station_id_filter: Optional[uuid.UUID] = None, - climatic_indicator_id_filter: Optional[int] = None, - month_filter: Optional[int] = None, - include_total: bool = False, -) -> tuple[Sequence[observations.MonthlyMeasurement], Optional[int]]: - """List existing monthly measurements.""" - statement = sqlmodel.select(observations.MonthlyMeasurement).order_by( - observations.MonthlyMeasurement.date - ) - if station_id_filter is not None: - statement = statement.where( - observations.MonthlyMeasurement.station_id == station_id_filter - ) - if climatic_indicator_id_filter is not None: - statement = statement.where( - observations.MonthlyMeasurement.climatic_indicator_id - == climatic_indicator_id_filter - ) - if month_filter is not None: - statement = statement.where( - sqlmodel.func.extract("MONTH", observations.MonthlyMeasurement.date) - == month_filter - ) - items = session.exec(statement.offset(offset).limit(limit)).all() - num_items = _get_total_num_records(session, statement) if include_total else None - return items, num_items - - -def collect_all_monthly_measurements( - session: sqlmodel.Session, - *, - station_id_filter: Optional[uuid.UUID] = None, - climatic_indicator_id_filter: Optional[int] = None, - month_filter: Optional[int] = None, -) -> Sequence[observations.MonthlyMeasurement]: - _, num_total = list_monthly_measurements( - session, - limit=1, - station_id_filter=station_id_filter, - climatic_indicator_id_filter=climatic_indicator_id_filter, - month_filter=month_filter, - include_total=True, - ) - result, _ = list_monthly_measurements( - session, - limit=num_total, - station_id_filter=station_id_filter, - climatic_indicator_id_filter=climatic_indicator_id_filter, - month_filter=month_filter, - include_total=False, - ) - return result - - -def create_seasonal_measurement( - session: sqlmodel.Session, - measurement_create: observations.SeasonalMeasurementCreate, -) -> observations.SeasonalMeasurement: - """Create a new seasonal measurement.""" - db_measurement = observations.SeasonalMeasurement(**measurement_create.model_dump()) - session.add(db_measurement) - try: - session.commit() - except sqlalchemy.exc.DBAPIError: - raise - else: - session.refresh(db_measurement) - return db_measurement - - -def create_many_seasonal_measurements( - session: sqlmodel.Session, - measurements_to_create: Sequence[observations.SeasonalMeasurementCreate], -) -> list[observations.SeasonalMeasurement]: - """Create several seasonal measurements.""" - db_records = [] - for measurement_create in measurements_to_create: - db_measurement = observations.SeasonalMeasurement( - **measurement_create.model_dump() - ) - db_records.append(db_measurement) - session.add(db_measurement) - try: - session.commit() - except sqlalchemy.exc.DBAPIError: - raise - else: - for db_record in db_records: - session.refresh(db_record) - return db_records - - -def get_seasonal_measurement( - session: sqlmodel.Session, measurement_id: uuid.UUID -) -> Optional[observations.SeasonalMeasurement]: - return session.get(observations.SeasonalMeasurement, measurement_id) - - -def delete_seasonal_measurement( - session: sqlmodel.Session, measurement_id: uuid.UUID -) -> None: - """Delete a seasonal measurement.""" - db_measurement = get_seasonal_measurement(session, measurement_id) - if db_measurement is not None: - session.delete(db_measurement) - session.commit() - else: - raise RuntimeError("Seasonal measurement not found") - - -def list_seasonal_measurements( - session: sqlmodel.Session, - *, - limit: int = 20, - offset: int = 0, - station_id_filter: Optional[uuid.UUID] = None, - climatic_indicator_id_filter: Optional[int] = None, - season_filter: Optional[base.Season] = None, - include_total: bool = False, -) -> tuple[Sequence[observations.SeasonalMeasurement], Optional[int]]: - """List existing seasonal measurements.""" - statement = sqlmodel.select(observations.SeasonalMeasurement).order_by( - observations.SeasonalMeasurement.year - ) - if station_id_filter is not None: - statement = statement.where( - observations.SeasonalMeasurement.station_id == station_id_filter - ) - if climatic_indicator_id_filter is not None: - statement = statement.where( - observations.SeasonalMeasurement.climatic_indicator_id - == climatic_indicator_id_filter - ) - if season_filter is not None: - statement = statement.where( - observations.SeasonalMeasurement.season == season_filter - ) - items = session.exec(statement.offset(offset).limit(limit)).all() - num_items = _get_total_num_records(session, statement) if include_total else None - return items, num_items - - -def collect_all_seasonal_measurements( - session: sqlmodel.Session, - *, - station_id_filter: Optional[uuid.UUID] = None, - climatic_indicator_id_filter: Optional[int] = None, - season_filter: Optional[base.Season] = None, -) -> Sequence[observations.SeasonalMeasurement]: - _, num_total = list_seasonal_measurements( - session, - limit=1, - station_id_filter=station_id_filter, - climatic_indicator_id_filter=climatic_indicator_id_filter, - season_filter=season_filter, - include_total=True, - ) - result, _ = list_seasonal_measurements( - session, - limit=num_total, - station_id_filter=station_id_filter, - climatic_indicator_id_filter=climatic_indicator_id_filter, - season_filter=season_filter, - include_total=False, - ) - return result - - -def create_yearly_measurement( - session: sqlmodel.Session, measurement_create: observations.YearlyMeasurementCreate -) -> observations.YearlyMeasurement: - """Create a new yearly measurement.""" - db_measurement = observations.YearlyMeasurement(**measurement_create.model_dump()) - session.add(db_measurement) - try: - session.commit() - except sqlalchemy.exc.DBAPIError: - raise - else: - session.refresh(db_measurement) - return db_measurement - - -def create_many_yearly_measurements( - session: sqlmodel.Session, - measurements_to_create: Sequence[observations.YearlyMeasurementCreate], -) -> list[observations.YearlyMeasurement]: - """Create several yearly measurements.""" - db_records = [] - for measurement_create in measurements_to_create: - db_measurement = observations.YearlyMeasurement( - **measurement_create.model_dump() - ) - db_records.append(db_measurement) - session.add(db_measurement) - try: - session.commit() - except sqlalchemy.exc.DBAPIError: - raise - else: - for db_record in db_records: - session.refresh(db_record) - return db_records - - -def get_yearly_measurement( - session: sqlmodel.Session, measurement_id: uuid.UUID -) -> Optional[observations.YearlyMeasurement]: - return session.get(observations.YearlyMeasurement, measurement_id) - - -def delete_yearly_measurement( - session: sqlmodel.Session, measurement_id: uuid.UUID -) -> None: - """Delete a yearly measurement.""" - db_measurement = get_yearly_measurement(session, measurement_id) - if db_measurement is not None: - session.delete(db_measurement) - session.commit() - else: - raise RuntimeError("Yearly measurement not found") - - -def list_yearly_measurements( - session: sqlmodel.Session, - *, - limit: int = 20, - offset: int = 0, - station_id_filter: Optional[uuid.UUID] = None, - climatic_indicator_id_filter: Optional[int] = None, - include_total: bool = False, -) -> tuple[Sequence[observations.YearlyMeasurement], Optional[int]]: - """List existing yearly measurements.""" - statement = sqlmodel.select(observations.YearlyMeasurement).order_by( - observations.YearlyMeasurement.year - ) - if station_id_filter is not None: - statement = statement.where( - observations.YearlyMeasurement.station_id == station_id_filter - ) - if climatic_indicator_id_filter is not None: - statement = statement.where( - observations.YearlyMeasurement.climatic_indicator_id - == climatic_indicator_id_filter - ) - items = session.exec(statement.offset(offset).limit(limit)).all() - num_items = _get_total_num_records(session, statement) if include_total else None - return items, num_items +# def create_station( +# session: sqlmodel.Session, station_create: observations.StationCreate +# ) -> observations.Station: +# """Create a new station.""" +# geom = shapely.io.from_geojson(station_create.geom.model_dump_json()) +# wkbelement = from_shape(geom) +# db_station = observations.Station( +# **station_create.model_dump(exclude={"geom"}), +# geom=wkbelement, +# ) +# session.add(db_station) +# try: +# session.commit() +# except sqlalchemy.exc.DBAPIError: +# raise +# else: +# session.refresh(db_station) +# return db_station +# +# +# def create_many_stations( +# session: sqlmodel.Session, +# stations_to_create: Sequence[observations.StationCreate], +# ) -> list[observations.Station]: +# """Create several stations.""" +# db_records = [] +# for station_create in stations_to_create: +# geom = shapely.io.from_geojson(station_create.geom.model_dump_json()) +# wkbelement = from_shape(geom) +# db_station = observations.Station( +# **station_create.model_dump(exclude={"geom"}), +# geom=wkbelement, +# ) +# db_records.append(db_station) +# session.add(db_station) +# try: +# session.commit() +# except sqlalchemy.exc.DBAPIError: +# raise +# else: +# for db_record in db_records: +# session.refresh(db_record) +# return db_records +# +# +# def get_station( +# session: sqlmodel.Session, station_id: uuid.UUID +# ) -> Optional[observations.Station]: +# return session.get(observations.Station, station_id) +# +# +# def get_station_by_code( +# session: sqlmodel.Session, station_code: str +# ) -> Optional[observations.Station]: +# """Get a station by its code. +# +# Since a station code is unique, it can be used to uniquely identify a station. +# """ +# return session.exec( +# sqlmodel.select(observations.Station).where( +# observations.Station.code == station_code +# ) +# ).first() +# +# +# def update_station( +# session: sqlmodel.Session, +# db_station: observations.Station, +# station_update: observations.StationUpdate, +# ) -> observations.Station: +# """Update a station.""" +# geom = from_shape(shapely.io.from_geojson(station_update.geom.model_dump_json())) +# other_data = station_update.model_dump(exclude={"geom"}, exclude_unset=True) +# data = {**other_data, "geom": geom} +# for key, value in data.items(): +# setattr(db_station, key, value) +# session.add(db_station) +# session.commit() +# session.refresh(db_station) +# return db_station +# +# +# def delete_station(session: sqlmodel.Session, station_id: uuid.UUID) -> None: +# """Delete a station.""" +# db_station = get_station(session, station_id) +# if db_station is not None: +# session.delete(db_station) +# session.commit() +# else: +# raise RuntimeError("Station not found") +# +# +# def list_stations( +# session: sqlmodel.Session, +# *, +# limit: int = 20, +# offset: int = 0, +# include_total: bool = False, +# name_filter: Optional[str] = None, +# polygon_intersection_filter: shapely.Polygon = None, +# variable_id_filter: Optional[uuid.UUID] = None, +# variable_aggregation_type: Optional[ +# base.ObservationAggregationType +# ] = base.ObservationAggregationType.SEASONAL, +# ) -> tuple[Sequence[observations.Station], Optional[int]]: +# """List existing stations. +# +# The ``polygon_intersection_filter`` parameter is expected to be a polygon +# geometry in the EPSG:4326 CRS. +# """ +# statement = sqlmodel.select(observations.Station).order_by( +# observations.Station.code +# ) +# if name_filter is not None: +# statement = _add_substring_filter( +# statement, name_filter, observations.Station.name +# ) +# if polygon_intersection_filter is not None: +# statement = statement.where( +# func.ST_Intersects( +# observations.Station.geom, +# func.ST_GeomFromWKB( +# shapely.io.to_wkb(polygon_intersection_filter), 4326 +# ), +# ) +# ) +# if all((variable_id_filter, variable_aggregation_type)): +# if variable_aggregation_type == base.ObservationAggregationType.MONTHLY: +# instance_class = observations.MonthlyMeasurement +# elif variable_aggregation_type == base.ObservationAggregationType.SEASONAL: +# instance_class = observations.SeasonalMeasurement +# elif variable_aggregation_type == base.ObservationAggregationType.YEARLY: +# instance_class = observations.YearlyMeasurement +# else: +# raise RuntimeError( +# f"variable filtering for {variable_aggregation_type} is not supported" +# ) +# statement = ( +# statement.join(instance_class) +# .join(observations.Variable) +# .where(observations.Variable.id == variable_id_filter) +# .distinct() +# ) +# +# else: +# logger.warning( +# "Did not perform variable filter as not all related parameters have been " +# "provided" +# ) +# items = session.exec(statement.offset(offset).limit(limit)).all() +# num_items = _get_total_num_records(session, statement) if include_total else None +# return items, num_items +# +# +# def collect_all_stations( +# session: sqlmodel.Session, +# polygon_intersection_filter: shapely.Polygon = None, +# ) -> Sequence[observations.Station]: +# """Collect all stations. +# +# The ``polygon_intersetion_filter`` parameter is expected to be a polygon +# geometry in the EPSG:4326 CRS. +# """ +# _, num_total = list_stations( +# session, +# limit=1, +# include_total=True, +# polygon_intersection_filter=polygon_intersection_filter, +# ) +# result, _ = list_stations( +# session, +# limit=num_total, +# include_total=False, +# polygon_intersection_filter=polygon_intersection_filter, +# ) +# return result -def collect_all_yearly_measurements( - session: sqlmodel.Session, - *, - station_id_filter: Optional[uuid.UUID] = None, - climatic_indicator_id_filter: Optional[int] = None, -) -> Sequence[observations.YearlyMeasurement]: - _, num_total = list_yearly_measurements( - session, - limit=1, - station_id_filter=station_id_filter, - climatic_indicator_id_filter=climatic_indicator_id_filter, - include_total=True, - ) - result, _ = list_yearly_measurements( - session, - limit=num_total, - station_id_filter=station_id_filter, - climatic_indicator_id_filter=climatic_indicator_id_filter, - include_total=False, - ) - return result +# def create_monthly_measurement( +# session: sqlmodel.Session, +# monthly_measurement_create: observations.MonthlyMeasurementCreate, +# ) -> observations.MonthlyMeasurement: +# """Create a new monthly measurement.""" +# db_monthly_measurement = observations.MonthlyMeasurement( +# **monthly_measurement_create.model_dump() +# ) +# session.add(db_monthly_measurement) +# try: +# session.commit() +# except sqlalchemy.exc.DBAPIError: +# raise +# else: +# session.refresh(db_monthly_measurement) +# return db_monthly_measurement +# +# +# def create_many_monthly_measurements( +# session: sqlmodel.Session, +# monthly_measurements_to_create: Sequence[observations.MonthlyMeasurementCreate], +# ) -> list[observations.MonthlyMeasurement]: +# """Create several monthly measurements.""" +# db_records = [] +# for monthly_measurement_create in monthly_measurements_to_create: +# db_monthly_measurement = observations.MonthlyMeasurement( +# station_id=monthly_measurement_create.station_id, +# variable_id=monthly_measurement_create.variable_id, +# value=monthly_measurement_create.value, +# date=monthly_measurement_create.date, +# ) +# db_records.append(db_monthly_measurement) +# session.add(db_monthly_measurement) +# try: +# session.commit() +# except sqlalchemy.exc.DBAPIError: +# raise +# else: +# for db_record in db_records: +# session.refresh(db_record) +# return db_records +# +# +# def get_monthly_measurement( +# session: sqlmodel.Session, monthly_measurement_id: uuid.UUID +# ) -> Optional[observations.MonthlyMeasurement]: +# return session.get(observations.MonthlyMeasurement, monthly_measurement_id) +# +# +# def delete_monthly_measurement( +# session: sqlmodel.Session, monthly_measurement_id: uuid.UUID +# ) -> None: +# """Delete a monthly_measurement.""" +# db_monthly_measurement = get_monthly_measurement(session, monthly_measurement_id) +# if db_monthly_measurement is not None: +# session.delete(db_monthly_measurement) +# session.commit() +# else: +# raise RuntimeError("Monthly measurement not found") +# +# +# def list_monthly_measurements( +# session: sqlmodel.Session, +# *, +# limit: int = 20, +# offset: int = 0, +# station_id_filter: Optional[uuid.UUID] = None, +# climatic_indicator_id_filter: Optional[int] = None, +# month_filter: Optional[int] = None, +# include_total: bool = False, +# ) -> tuple[Sequence[observations.MonthlyMeasurement], Optional[int]]: +# """List existing monthly measurements.""" +# statement = sqlmodel.select(observations.MonthlyMeasurement).order_by( +# observations.MonthlyMeasurement.date +# ) +# if station_id_filter is not None: +# statement = statement.where( +# observations.MonthlyMeasurement.station_id == station_id_filter +# ) +# if climatic_indicator_id_filter is not None: +# statement = statement.where( +# observations.MonthlyMeasurement.climatic_indicator_id +# == climatic_indicator_id_filter +# ) +# if month_filter is not None: +# statement = statement.where( +# sqlmodel.func.extract("MONTH", observations.MonthlyMeasurement.date) +# == month_filter +# ) +# items = session.exec(statement.offset(offset).limit(limit)).all() +# num_items = _get_total_num_records(session, statement) if include_total else None +# return items, num_items +# +# +# def collect_all_monthly_measurements( +# session: sqlmodel.Session, +# *, +# station_id_filter: Optional[uuid.UUID] = None, +# climatic_indicator_id_filter: Optional[int] = None, +# month_filter: Optional[int] = None, +# ) -> Sequence[observations.MonthlyMeasurement]: +# _, num_total = list_monthly_measurements( +# session, +# limit=1, +# station_id_filter=station_id_filter, +# climatic_indicator_id_filter=climatic_indicator_id_filter, +# month_filter=month_filter, +# include_total=True, +# ) +# result, _ = list_monthly_measurements( +# session, +# limit=num_total, +# station_id_filter=station_id_filter, +# climatic_indicator_id_filter=climatic_indicator_id_filter, +# month_filter=month_filter, +# include_total=False, +# ) +# return result +# +# +# def create_seasonal_measurement( +# session: sqlmodel.Session, +# measurement_create: observations.SeasonalMeasurementCreate, +# ) -> observations.SeasonalMeasurement: +# """Create a new seasonal measurement.""" +# db_measurement = observations.SeasonalMeasurement(**measurement_create.model_dump()) +# session.add(db_measurement) +# try: +# session.commit() +# except sqlalchemy.exc.DBAPIError: +# raise +# else: +# session.refresh(db_measurement) +# return db_measurement +# +# +# def create_many_seasonal_measurements( +# session: sqlmodel.Session, +# measurements_to_create: Sequence[observations.SeasonalMeasurementCreate], +# ) -> list[observations.SeasonalMeasurement]: +# """Create several seasonal measurements.""" +# db_records = [] +# for measurement_create in measurements_to_create: +# db_measurement = observations.SeasonalMeasurement( +# **measurement_create.model_dump() +# ) +# db_records.append(db_measurement) +# session.add(db_measurement) +# try: +# session.commit() +# except sqlalchemy.exc.DBAPIError: +# raise +# else: +# for db_record in db_records: +# session.refresh(db_record) +# return db_records +# +# +# def get_seasonal_measurement( +# session: sqlmodel.Session, measurement_id: uuid.UUID +# ) -> Optional[observations.SeasonalMeasurement]: +# return session.get(observations.SeasonalMeasurement, measurement_id) +# +# +# def delete_seasonal_measurement( +# session: sqlmodel.Session, measurement_id: uuid.UUID +# ) -> None: +# """Delete a seasonal measurement.""" +# db_measurement = get_seasonal_measurement(session, measurement_id) +# if db_measurement is not None: +# session.delete(db_measurement) +# session.commit() +# else: +# raise RuntimeError("Seasonal measurement not found") +# +# +# def list_seasonal_measurements( +# session: sqlmodel.Session, +# *, +# limit: int = 20, +# offset: int = 0, +# station_id_filter: Optional[uuid.UUID] = None, +# climatic_indicator_id_filter: Optional[int] = None, +# season_filter: Optional[base.Season] = None, +# include_total: bool = False, +# ) -> tuple[Sequence[observations.SeasonalMeasurement], Optional[int]]: +# """List existing seasonal measurements.""" +# statement = sqlmodel.select(observations.SeasonalMeasurement).order_by( +# observations.SeasonalMeasurement.year +# ) +# if station_id_filter is not None: +# statement = statement.where( +# observations.SeasonalMeasurement.station_id == station_id_filter +# ) +# if climatic_indicator_id_filter is not None: +# statement = statement.where( +# observations.SeasonalMeasurement.climatic_indicator_id +# == climatic_indicator_id_filter +# ) +# if season_filter is not None: +# statement = statement.where( +# observations.SeasonalMeasurement.season == season_filter +# ) +# items = session.exec(statement.offset(offset).limit(limit)).all() +# num_items = _get_total_num_records(session, statement) if include_total else None +# return items, num_items +# +# +# def collect_all_seasonal_measurements( +# session: sqlmodel.Session, +# *, +# station_id_filter: Optional[uuid.UUID] = None, +# climatic_indicator_id_filter: Optional[int] = None, +# season_filter: Optional[base.Season] = None, +# ) -> Sequence[observations.SeasonalMeasurement]: +# _, num_total = list_seasonal_measurements( +# session, +# limit=1, +# station_id_filter=station_id_filter, +# climatic_indicator_id_filter=climatic_indicator_id_filter, +# season_filter=season_filter, +# include_total=True, +# ) +# result, _ = list_seasonal_measurements( +# session, +# limit=num_total, +# station_id_filter=station_id_filter, +# climatic_indicator_id_filter=climatic_indicator_id_filter, +# season_filter=season_filter, +# include_total=False, +# ) +# return result +# +# +# def create_yearly_measurement( +# session: sqlmodel.Session, measurement_create: observations.YearlyMeasurementCreate +# ) -> observations.YearlyMeasurement: +# """Create a new yearly measurement.""" +# db_measurement = observations.YearlyMeasurement(**measurement_create.model_dump()) +# session.add(db_measurement) +# try: +# session.commit() +# except sqlalchemy.exc.DBAPIError: +# raise +# else: +# session.refresh(db_measurement) +# return db_measurement +# +# +# def create_many_yearly_measurements( +# session: sqlmodel.Session, +# measurements_to_create: Sequence[observations.YearlyMeasurementCreate], +# ) -> list[observations.YearlyMeasurement]: +# """Create several yearly measurements.""" +# db_records = [] +# for measurement_create in measurements_to_create: +# db_measurement = observations.YearlyMeasurement( +# **measurement_create.model_dump() +# ) +# db_records.append(db_measurement) +# session.add(db_measurement) +# try: +# session.commit() +# except sqlalchemy.exc.DBAPIError: +# raise +# else: +# for db_record in db_records: +# session.refresh(db_record) +# return db_records +# +# +# def get_yearly_measurement( +# session: sqlmodel.Session, measurement_id: uuid.UUID +# ) -> Optional[observations.YearlyMeasurement]: +# return session.get(observations.YearlyMeasurement, measurement_id) +# +# +# def delete_yearly_measurement( +# session: sqlmodel.Session, measurement_id: uuid.UUID +# ) -> None: +# """Delete a yearly measurement.""" +# db_measurement = get_yearly_measurement(session, measurement_id) +# if db_measurement is not None: +# session.delete(db_measurement) +# session.commit() +# else: +# raise RuntimeError("Yearly measurement not found") +# +# +# def list_yearly_measurements( +# session: sqlmodel.Session, +# *, +# limit: int = 20, +# offset: int = 0, +# station_id_filter: Optional[uuid.UUID] = None, +# climatic_indicator_id_filter: Optional[int] = None, +# include_total: bool = False, +# ) -> tuple[Sequence[observations.YearlyMeasurement], Optional[int]]: +# """List existing yearly measurements.""" +# statement = sqlmodel.select(observations.YearlyMeasurement).order_by( +# observations.YearlyMeasurement.year +# ) +# if station_id_filter is not None: +# statement = statement.where( +# observations.YearlyMeasurement.station_id == station_id_filter +# ) +# if climatic_indicator_id_filter is not None: +# statement = statement.where( +# observations.YearlyMeasurement.climatic_indicator_id +# == climatic_indicator_id_filter +# ) +# items = session.exec(statement.offset(offset).limit(limit)).all() +# num_items = _get_total_num_records(session, statement) if include_total else None +# return items, num_items +# +# +# def collect_all_yearly_measurements( +# session: sqlmodel.Session, +# *, +# station_id_filter: Optional[uuid.UUID] = None, +# climatic_indicator_id_filter: Optional[int] = None, +# ) -> Sequence[observations.YearlyMeasurement]: +# _, num_total = list_yearly_measurements( +# session, +# limit=1, +# station_id_filter=station_id_filter, +# climatic_indicator_id_filter=climatic_indicator_id_filter, +# include_total=True, +# ) +# result, _ = list_yearly_measurements( +# session, +# limit=num_total, +# station_id_filter=station_id_filter, +# climatic_indicator_id_filter=climatic_indicator_id_filter, +# include_total=False, +# ) +# return result def get_configuration_parameter_value( @@ -1709,3 +1709,397 @@ def _replace_conf_param_filters_with_climatic_indicator( if climatic_indicator is not None: result = (new_possible_values, climatic_indicator) return result + + +def get_observation_station( + session: sqlmodel.Session, observation_station_id: int +) -> Optional[observations.ObservationStation]: + return session.get(observations.ObservationStation, observation_station_id) + + +def get_observation_station_by_code( + session: sqlmodel.Session, observation_station_code: str +) -> Optional[observations.ObservationStation]: + """Get an observation station by its code. + + Since a station code is unique, it can be used to uniquely identify a station. + """ + return session.exec( + sqlmodel.select(observations.ObservationStation).where( + observations.ObservationStation.code == observation_station_code + ) + ).first() + + +def list_observation_stations( + session: sqlmodel.Session, + *, + limit: int = 20, + offset: int = 0, + include_total: bool = False, + name_filter: Optional[str] = None, + polygon_intersection_filter: shapely.Polygon = None, +) -> tuple[Sequence[observations.Station], Optional[int]]: + """List existing observation stations. + + The ``polygon_intersection_filter`` parameter is expected to be a polygon + geometry in the EPSG:4326 CRS. + """ + statement = sqlmodel.select(observations.ObservationStation).order_by( + observations.ObservationStation.code + ) + if name_filter is not None: + statement = _add_substring_filter( + statement, name_filter, observations.ObservationStation.name + ) + if polygon_intersection_filter is not None: + statement = statement.where( + func.ST_Intersects( + observations.ObservationStation.geom, + func.ST_GeomFromWKB( + shapely.io.to_wkb(polygon_intersection_filter), 4326 + ), + ) + ) + items = session.exec(statement.offset(offset).limit(limit)).all() + num_items = _get_total_num_records(session, statement) if include_total else None + return items, num_items + + +def collect_all_observation_stations( + session: sqlmodel.Session, + polygon_intersection_filter: shapely.Polygon = None, +) -> Sequence[observations.Station]: + """Collect all observation stations. + + The ``polygon_intersetion_filter`` parameter is expected to be a polygon + geometry in the EPSG:4326 CRS. + """ + _, num_total = list_observation_stations( + session, + limit=1, + include_total=True, + polygon_intersection_filter=polygon_intersection_filter, + ) + result, _ = list_observation_stations( + session, + limit=num_total, + include_total=False, + polygon_intersection_filter=polygon_intersection_filter, + ) + return result + + +def create_observation_station( + session: sqlmodel.Session, + observation_station_create: observations.ObservationStationCreate, +) -> observations.ObservationStation: + """Create a new observation station.""" + geom = shapely.io.from_geojson(observation_station_create.geom.model_dump_json()) + wkbelement = from_shape(geom) + db_item = observations.ObservationStation( + **observation_station_create.model_dump(exclude={"geom"}), + geom=wkbelement, + ) + session.add(db_item) + try: + session.commit() + except sqlalchemy.exc.DBAPIError: + raise + else: + session.refresh(db_item) + return db_item + + +def create_many_observation_stations( + session: sqlmodel.Session, + stations_to_create: Sequence[observations.ObservationStationCreate], +) -> list[observations.ObservationStation]: + """Create several observation stations.""" + db_records = [] + for item_create in stations_to_create: + geom = shapely.io.from_geojson(item_create.geom.model_dump_json()) + wkbelement = from_shape(geom) + db_item = observations.ObservationStation( + **item_create.model_dump(exclude={"geom"}), + geom=wkbelement, + ) + db_records.append(db_item) + session.add(db_item) + try: + session.commit() + except sqlalchemy.exc.DBAPIError: + raise + else: + for db_record in db_records: + session.refresh(db_record) + return db_records + + +def update_observation_station( + session: sqlmodel.Session, + db_observation_station: observations.ObservationStation, + observation_station_update: observations.ObservationStationUpdate, +) -> observations.ObservationStation: + """Update an observation station.""" + geom = from_shape( + shapely.io.from_geojson(observation_station_update.geom.model_dump_json()) + ) + other_data = observation_station_update.model_dump( + exclude={"geom"}, exclude_unset=True + ) + data = {**other_data, "geom": geom} + for key, value in data.items(): + setattr(db_observation_station, key, value) + session.add(db_observation_station) + session.commit() + session.refresh(db_observation_station) + return db_observation_station + + +def delete_observation_station( + session: sqlmodel.Session, observation_station_id: int +) -> None: + """Delete an observation station.""" + db_item = get_observation_station(session, observation_station_id) + if db_item is not None: + session.delete(db_item) + session.commit() + else: + raise RuntimeError("Observation station not found") + + +def get_observation_measurement( + session: sqlmodel.Session, observation_measurement_id: int +) -> Optional[observations.ObservationMeasurement]: + return session.get(observations.ObservationMeasurement, observation_measurement_id) + + +def list_observation_measurements( + session: sqlmodel.Session, + *, + limit: int = 20, + offset: int = 0, + observation_station_id_filter: Optional[int] = None, + climatic_indicator_id_filter: Optional[int] = None, + include_total: bool = False, +) -> tuple[Sequence[observations.ObservationMeasurement], Optional[int]]: + """List existing observation measurements.""" + statement = sqlmodel.select(observations.ObservationMeasurement).order_by( + observations.ObservationMeasurement.date + ) + if observation_station_id_filter is not None: + statement = statement.where( + observations.ObservationMeasurement.observation_station_id + == observation_station_id_filter + ) + if climatic_indicator_id_filter is not None: + statement = statement.where( + observations.ObservationMeasurement.climatic_indicator_id + == climatic_indicator_id_filter + ) + items = session.exec(statement.offset(offset).limit(limit)).all() + num_items = _get_total_num_records(session, statement) if include_total else None + return items, num_items + + +def collect_all_observation_measurements( + session: sqlmodel.Session, + *, + observation_station_id_filter: Optional[int] = None, + climatic_indicator_id_filter: Optional[int] = None, +) -> Sequence[observations.ObservationMeasurement]: + _, num_total = list_observation_measurements( + session, + limit=1, + observation_station_id_filter=observation_station_id_filter, + climatic_indicator_id_filter=climatic_indicator_id_filter, + include_total=True, + ) + result, _ = list_observation_measurements( + session, + limit=num_total, + observation_station_id_filter=observation_station_id_filter, + climatic_indicator_id_filter=climatic_indicator_id_filter, + include_total=False, + ) + return result + + +def create_observation_measurement( + session: sqlmodel.Session, + observation_measurement_create: observations.ObservationMeasurementUpdate, +) -> observations.ObservationMeasurement: + """Create a new observation measurement.""" + db_measurement = observations.ObservationMeasurement( + **observation_measurement_create.model_dump() + ) + session.add(db_measurement) + try: + session.commit() + except sqlalchemy.exc.DBAPIError: + raise + else: + session.refresh(db_measurement) + return db_measurement + + +def create_many_observation_measurements( + session: sqlmodel.Session, + observation_measurements_to_create: Sequence[ + observations.ObservationMeasurementCreate + ], +) -> list[observations.ObservationMeasurement]: + """Create several observation measurements.""" + db_records = [] + for measurement_create in observation_measurements_to_create: + db_measurement = observations.ObservationMeasurement( + observation_station_id=measurement_create.observation_station_id, + climatic_indicator_id=measurement_create.climatic_indicator_id, + value=measurement_create.value, + date=measurement_create.date, + measurement_aggregation_type=measurement_create.measurement_aggregation_type, + ) + db_records.append(db_measurement) + session.add(db_measurement) + try: + session.commit() + except sqlalchemy.exc.DBAPIError: + raise + else: + for db_record in db_records: + session.refresh(db_record) + return db_records + + +def delete_observation_measurement( + session: sqlmodel.Session, observation_measurement_id: int +) -> None: + """Delete an observation measurement.""" + if ( + db_measurement := get_observation_measurement( + session, observation_measurement_id + ) + ) is not None: + session.delete(db_measurement) + session.commit() + else: + raise RuntimeError("Observation measurement not found") + + +def get_observation_series_configuration( + session: sqlmodel.Session, observation_series_configuration_id: int +) -> Optional[observations.ObservationSeriesConfiguration]: + return session.get( + observations.ObservationSeriesConfiguration, observation_series_configuration_id + ) + + +def get_observation_series_configuration_by_identifier( + session: sqlmodel.Session, identifier: str +) -> Optional[observations.ObservationSeriesConfiguration]: + try: + ( + climatic_indicator_identifier, + raw_owners, + raw_measurement_aggregation, + ) = identifier.split("_") + climatic_indicator = get_climatic_indicator_by_identifier( + session, climatic_indicator_identifier + ) + measurement_aggregation_type = static.MeasurementAggregationType( + raw_measurement_aggregation.upper() + ) + station_owners = [ + static.ObservationStationOwner(i.upper()) for i in raw_owners.split("-") + ] + except ValueError: + raise exceptions.InvalidObservationSeriesConfigurationIdentifierError() + else: + statement = sqlmodel.select(observations.ObservationSeriesConfiguration).where( + observations.ObservationSeriesConfiguration.climatic_indicator_id + == climatic_indicator.id, + observations.ObservationSeriesConfiguration.measurement_aggregation_type + == measurement_aggregation_type, + observations.ObservationSeriesConfiguration.station_owners + == station_owners, + ) + return session.exec(statement).first() + + +def list_observation_series_configurations( + session: sqlmodel.Session, + *, + limit: int = 20, + offset: int = 0, + include_total: bool = False, +) -> tuple[Sequence[observations.ObservationSeriesConfiguration], Optional[int]]: + """List existing observation series configurations.""" + statement = sqlmodel.select(observations.ObservationSeriesConfiguration).order_by( + observations.ObservationSeriesConfiguration.id + ) + items = session.exec(statement.offset(offset).limit(limit)).all() + num_items = _get_total_num_records(session, statement) if include_total else None + return items, num_items + + +def collect_all_observation_series_configurations( + session: sqlmodel.Session, +) -> Sequence[observations.ObservationSeriesConfiguration]: + """Collect all observation series configurations.""" + _, num_total = list_observation_series_configurations( + session, + limit=1, + include_total=True, + ) + result, _ = list_observation_series_configurations( + session, + limit=num_total, + include_total=False, + ) + return result + + +def create_observation_series_configuration( + session: sqlmodel.Session, + observation_series_configuration_create: observations.ObservationSeriesConfigurationCreate, +) -> observations.ObservationSeriesConfiguration: + """Create a new observation series configuration.""" + db_series_conf = observations.ObservationSeriesConfiguration( + **observation_series_configuration_create.model_dump(), + ) + session.add(db_series_conf) + try: + session.commit() + except sqlalchemy.exc.DBAPIError: + raise + else: + session.refresh(db_series_conf) + return db_series_conf + + +def update_observation_series_configuration( + session: sqlmodel.Session, + db_observation_series_configuration: observations.ObservationSeriesConfiguration, + observation_series_configuration_update: observations.ObservationSeriesConfigurationUpdate, +) -> observations.ObservationSeriesConfiguration: + """Update an observation series configuration.""" + data = observation_series_configuration_update.model_dump(exclude_unset=True) + for key, value in data.items(): + setattr(db_observation_series_configuration, key, value) + session.add(db_observation_series_configuration) + session.commit() + session.refresh(db_observation_series_configuration) + return db_observation_series_configuration + + +def delete_observation_series_configuration( + session: sqlmodel.Session, observation_series_configuration_id: int +) -> None: + """Delete an observation series configuration.""" + db_item = get_observation_station(session, observation_series_configuration_id) + if db_item is not None: + session.delete(db_item) + session.commit() + else: + raise RuntimeError("Observation series configuration not found") diff --git a/arpav_ppcv/exceptions.py b/arpav_ppcv/exceptions.py index 94c3e7b4..26234b2f 100644 --- a/arpav_ppcv/exceptions.py +++ b/arpav_ppcv/exceptions.py @@ -16,3 +16,7 @@ class InvalidClimaticIndicatorIdError(ArpavError): class InvalidClimaticIndicatorIdentifierError(ArpavError): ... + + +class InvalidObservationSeriesConfigurationIdentifierError(ArpavError): + ... diff --git a/arpav_ppcv/migrations/versions/8df4e65677d9_changed_names_of_station_owners.py b/arpav_ppcv/migrations/versions/8df4e65677d9_changed_names_of_station_owners.py new file mode 100644 index 00000000..2a2fda6b --- /dev/null +++ b/arpav_ppcv/migrations/versions/8df4e65677d9_changed_names_of_station_owners.py @@ -0,0 +1,35 @@ +"""changed names of station owners + +Revision ID: 8df4e65677d9 +Revises: 9c278ecdeb38 +Create Date: 2024-12-13 14:34:06.423950 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa +import sqlmodel +from alembic_postgresql_enum import TableReference + +# revision identifiers, used by Alembic. +revision: str = '8df4e65677d9' +down_revision: Union[str, None] = '9c278ecdeb38' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.sync_enum_values('public', 'observationstationowner', ['ARPAV', 'ARPAFVG'], + [TableReference(table_schema='public', table_name='observationstation', column_name='owner')], + enum_values_to_rename=[]) + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.sync_enum_values('public', 'observationstationowner', ['ARPA_V', 'ARPA_FVG'], + [TableReference(table_schema='public', table_name='observationstation', column_name='owner')], + enum_values_to_rename=[]) + # ### end Alembic commands ### diff --git a/arpav_ppcv/migrations/versions/9c278ecdeb38_added_observationstation.py b/arpav_ppcv/migrations/versions/9c278ecdeb38_added_observationstation.py new file mode 100644 index 00000000..89e5a429 --- /dev/null +++ b/arpav_ppcv/migrations/versions/9c278ecdeb38_added_observationstation.py @@ -0,0 +1,71 @@ +"""added observationstation + +Revision ID: 9c278ecdeb38 +Revises: 7b7412888496 +Create Date: 2024-12-13 13:07:38.511400 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa +import sqlmodel +from geoalchemy2 import Geometry +from sqlalchemy.dialects import postgresql + +# revision identifiers, used by Alembic. +revision: str = '9c278ecdeb38' +down_revision: Union[str, None] = '7b7412888496' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + sa.Enum('MONTHLY', 'SEASONAL', 'YEARLY', name='measurementaggregationtype').create(op.get_bind()) + sa.Enum('ARPA_V', 'ARPA_FVG', name='observationstationowner').create(op.get_bind()) + op.create_geospatial_table('observationstation', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sqlmodel.sql.sqltypes.AutoString(), nullable=False), + sa.Column('owner', postgresql.ENUM('ARPA_V', 'ARPA_FVG', name='observationstationowner', create_type=False), nullable=False), + sa.Column('geom', Geometry(geometry_type='POINT', srid=4326, spatial_index=False, from_text='ST_GeomFromEWKT', name='geometry'), nullable=True), + sa.Column('code', sqlmodel.sql.sqltypes.AutoString(), nullable=False), + sa.Column('altitude_m', sa.Float(), nullable=True), + sa.Column('active_since', sa.Date(), nullable=True), + sa.Column('active_until', sa.Date(), nullable=True), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('code') + ) + op.create_geospatial_index('idx_observationstation_geom', 'observationstation', ['geom'], unique=False, postgresql_using='gist', postgresql_ops={}) + op.create_table('observationmeasurement', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('value', sa.Float(), nullable=False), + sa.Column('date', sa.Date(), nullable=False), + sa.Column('measurement_aggregation_type', postgresql.ENUM('MONTHLY', 'SEASONAL', 'YEARLY', name='measurementaggregationtype', create_type=False), nullable=False), + sa.Column('climatic_indicator_id', sa.Integer(), nullable=False), + sa.Column('observation_station_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['climatic_indicator_id'], ['climaticindicator.id'], onupdate='CASCADE', ondelete='CASCADE'), + sa.ForeignKeyConstraint(['observation_station_id'], ['observationstation.id'], onupdate='CASCADE', ondelete='CASCADE'), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('observationseriesconfiguration', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('climatic_indicator_id', sa.Integer(), nullable=True), + sa.Column('indicator_internal_name', sqlmodel.sql.sqltypes.AutoString(), nullable=False), + sa.Column('measurement_aggregation_type', postgresql.ENUM('MONTHLY', 'SEASONAL', 'YEARLY', name='measurementaggregationtype', create_type=False), nullable=False), + sa.Column('station_owners', sa.ARRAY(sa.String()), nullable=True), + sa.ForeignKeyConstraint(['climatic_indicator_id'], ['climaticindicator.id'], ), + sa.PrimaryKeyConstraint('id') + ) + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('observationseriesconfiguration') + op.drop_table('observationmeasurement') + op.drop_geospatial_index('idx_observationstation_geom', table_name='observationstation', postgresql_using='gist', column_name='geom') + op.drop_geospatial_table('observationstation') + sa.Enum('ARPA_V', 'ARPA_FVG', name='observationstationowner').drop(op.get_bind()) + sa.Enum('MONTHLY', 'SEASONAL', 'YEARLY', name='measurementaggregationtype').drop(op.get_bind()) + # ### end Alembic commands ### diff --git a/arpav_ppcv/observations_harvester/cliapp.py b/arpav_ppcv/observations_harvester/cliapp.py index 66623e15..b2603f63 100644 --- a/arpav_ppcv/observations_harvester/cliapp.py +++ b/arpav_ppcv/observations_harvester/cliapp.py @@ -8,42 +8,19 @@ @app.command() def refresh_stations( - variable: Annotated[ + series_configuration_identifier: Annotated[ str, typer.Option( help=( - "Name of the variable to process. If not provided, all " - "variables are processed." - ) - ), - ] = None, - refresh_monthly: Annotated[ - bool, - typer.Option( - help=( - "Refresh stations that have monthly measurements for " - "the input month." - ) - ), - ] = True, - refresh_seasonal: Annotated[ - bool, - typer.Option( - help=( - "Refresh stations that have seasonal measurements for " - "the input season." - ) + "The observation series configuration identifier to process. If " + "not provided, all observation series configurations are " + "processed." + ), ), - ] = True, - refresh_yearly: Annotated[ - bool, typer.Option(help=("Refresh stations that have yearly measurements")) - ] = True, + ], ) -> None: observations_flows.refresh_stations( - variable_name=variable, - refresh_stations_with_monthly_data=refresh_monthly, - refresh_stations_with_seasonal_data=refresh_seasonal, - refresh_stations_with_yearly_data=refresh_yearly, + observation_series_configuration_identifier=series_configuration_identifier, ) @@ -111,16 +88,16 @@ def refresh_yearly_measurements( ), ), ] = None, - variable: Annotated[ + climatic_indicator: Annotated[ str, typer.Option( help=( - "Name of the variable to process. If not provided, all " - "variables are processed." + "Identifier of the climatic indicator to process. If not provided, all " + "climatic indicators are processed." ) ), ] = None, ) -> None: observations_flows.refresh_yearly_measurements( - station_code=station, variable_name=variable + station_code=station, climatic_indicator_identifier=climatic_indicator ) diff --git a/arpav_ppcv/observations_harvester/operations.py b/arpav_ppcv/observations_harvester/operations.py index 4a4c94f6..ed506395 100644 --- a/arpav_ppcv/observations_harvester/operations.py +++ b/arpav_ppcv/observations_harvester/operations.py @@ -14,34 +14,39 @@ import shapely import shapely.ops -from ..schemas import observations +from ..schemas import ( + observations, +) from ..schemas.climaticindicators import ClimaticIndicator +from ..schemas.static import ( + MeasurementAggregationType, + ObservationStationOwner, +) logger = logging.getLogger(__name__) def fetch_remote_stations( client: httpx.Client, - climatic_indicators: Sequence[ClimaticIndicator], - fetch_stations_with_months: bool, - fetch_stations_with_seasons: bool, - fetch_stations_with_yearly_measurements: bool, + series_configurations: Sequence[observations.ObservationSeriesConfiguration], ) -> Generator[dict, None, None]: station_url = ( "https://api.arpa.veneto.it/REST/v1/clima_indicatori/staz_attive_lunghe" ) - for climatic_indicator in climatic_indicators: + for series_conf in series_configurations: logger.info( - f"Retrieving stations with monthly measurements for climatic indicator " - f"{climatic_indicator.identifier!r}..." + f"Retrieving stations belonging to series {series_conf.identifier!r}..." ) - if fetch_stations_with_months: + if ( + series_conf.measurement_aggregation_type + == MeasurementAggregationType.MONTHLY + ): for month in range(1, 13): logger.info(f"Processing month {month}...") month_response = client.get( station_url, params={ - "indicatore": climatic_indicator.name, + "indicatore": series_conf.indicator_internal_name, "tabella": "M", "periodo": str(month), }, @@ -49,13 +54,16 @@ def fetch_remote_stations( month_response.raise_for_status() for raw_station in month_response.json().get("data", []): yield raw_station - if fetch_stations_with_seasons: + elif ( + series_conf.measurement_aggregation_type + == MeasurementAggregationType.SEASONAL + ): for season in range(1, 5): logger.info(f"Processing season {season}...") season_response = client.get( station_url, params={ - "indicatore": climatic_indicator.name, + "indicatore": series_conf.indicator_internal_name, "tabella": "S", "periodo": str(season), }, @@ -63,12 +71,15 @@ def fetch_remote_stations( season_response.raise_for_status() for raw_station in season_response.json().get("data", []): yield raw_station - if fetch_stations_with_yearly_measurements: - logger.info("Processing year...") + elif ( + series_conf.measurement_aggregation_type + == MeasurementAggregationType.YEARLY + ): + logger.info("Processing years...") year_response = client.get( station_url, params={ - "indicatore": climatic_indicator.name, + "indicatore": series_conf.indicator_internal_name, "tabella": "A", "periodo": "0", }, @@ -76,11 +87,15 @@ def fetch_remote_stations( year_response.raise_for_status() for raw_station in year_response.json().get("data", []): yield raw_station + else: + raise NotImplementedError( + f"{series_conf.measurement_aggregation_type} not implemented" + ) def parse_station( raw_station: dict, coord_converter: Callable -) -> observations.StationCreate: +) -> observations.ObservationStationCreate: station_code = str(raw_station["statcd"]) if raw_start := raw_station.get("iniziovalidita"): try: @@ -102,12 +117,12 @@ def parse_station( active_until = None pt_4258 = shapely.Point(raw_station["EPSG4258_LON"], raw_station["EPSG4258_LAT"]) pt_4326 = shapely.ops.transform(coord_converter, pt_4258) - return observations.StationCreate( + return observations.ObservationStationCreate( code=station_code, geom=geojson_pydantic.Point(type="Point", coordinates=(pt_4326.x, pt_4326.y)), + owner=ObservationStationOwner.ARPAV, altitude_m=raw_station["altitude"], name=raw_station["statnm"], - type_=raw_station.get("stattype", "").lower().replace(" ", "_"), active_since=active_since, active_until=active_until, ) diff --git a/arpav_ppcv/prefect/flows/observations.py b/arpav_ppcv/prefect/flows/observations.py index 5ac411e1..6e2435e4 100644 --- a/arpav_ppcv/prefect/flows/observations.py +++ b/arpav_ppcv/prefect/flows/observations.py @@ -35,21 +35,15 @@ ) def harvest_stations( client: httpx.Client, - climatic_indicator: climaticindicators.ClimaticIndicator, - fetch_stations_with_months: bool, - fetch_stations_with_seasons: bool, - fetch_stations_with_yearly_measurements: bool, -) -> set[observations.StationCreate]: + series_configuration: observations.ObservationSeriesConfiguration, +) -> set[observations.ObservationStationCreate]: coord_converter = pyproj.Transformer.from_crs( pyproj.CRS("epsg:4258"), pyproj.CRS("epsg:4326"), always_xy=True ).transform stations = set() retriever = operations.fetch_remote_stations( client=client, - climatic_indicators=[climatic_indicator], - fetch_stations_with_months=fetch_stations_with_months, - fetch_stations_with_seasons=fetch_stations_with_seasons, - fetch_stations_with_yearly_measurements=fetch_stations_with_yearly_measurements, + series_configurations=[series_configuration], ) for raw_station in retriever: stations.add(operations.parse_station(raw_station, coord_converter)) @@ -61,9 +55,9 @@ def harvest_stations( retry_delay_seconds=settings.prefect.task_retry_delay_seconds, ) def find_new_stations( - db_stations: Sequence[observations.Station], - new_stations: Sequence[observations.StationCreate], -) -> list[observations.StationCreate]: + db_stations: Sequence[observations.ObservationStation], + new_stations: Sequence[observations.ObservationStationCreate], +) -> list[observations.ObservationStationCreate]: possibly_new_stations = {s.code: s for s in new_stations} existing_stations = {s.code: s for s in db_stations} to_create = [] @@ -95,63 +89,35 @@ def find_new_stations( retries=settings.prefect.num_flow_retries, retry_delay_seconds=settings.prefect.flow_retry_delay_seconds, ) -def refresh_stations( - climatic_indicator_identifier: str | None = None, - refresh_stations_with_monthly_data: bool = True, - refresh_stations_with_seasonal_data: bool = True, - refresh_stations_with_yearly_data: bool = True, -): +def refresh_stations(observation_series_configuration_identifier: str | None = None): client = httpx.Client() with sqlmodel.Session(db_engine) as db_session: - db_climatic_indicators = _get_climatic_indicators( - db_session, climatic_indicator_identifier + db_series_configurations = _get_observation_series_configurations( + db_session, observation_series_configuration_identifier ) - if len(db_climatic_indicators) > 0: + if len(db_series_configurations) > 0: to_filter_for_new_stations = set() to_wait_on = [] - for climatic_indicator in db_climatic_indicators: + for series_conf in db_series_configurations: print( - f"refreshing stations that have values for " - f"climatic indicator {climatic_indicator.identifier!r}..." + f"refreshing stations that are part of series " + f"{series_conf.identifier!r}..." ) - if refresh_stations_with_monthly_data: - monthly_future = harvest_stations.submit( - client, - climatic_indicator, - fetch_stations_with_months=True, - fetch_stations_with_seasons=False, - fetch_stations_with_yearly_measurements=False, - ) - to_wait_on.append(monthly_future) - if refresh_stations_with_seasonal_data: - seasonal_future = harvest_stations.submit( - client, - climatic_indicator, - fetch_stations_with_months=False, - fetch_stations_with_seasons=True, - fetch_stations_with_yearly_measurements=False, - ) - to_wait_on.append(seasonal_future) - if refresh_stations_with_yearly_data: - yearly_future = harvest_stations.submit( - client, - climatic_indicator, - fetch_stations_with_months=False, - fetch_stations_with_seasons=False, - fetch_stations_with_yearly_measurements=True, - ) - to_wait_on.append(yearly_future) + fut = harvest_stations.submit(client, series_conf) + to_wait_on.append(fut) for future in to_wait_on: to_filter_for_new_stations.update(future.result()) to_create = find_new_stations( - database.collect_all_stations(db_session), + database.collect_all_observation_stations(db_session), list(to_filter_for_new_stations), ) if len(to_create) > 0: print(f"Found {len(to_create)} new stations. Creating them now...") for s in to_create: print(f"- ({s.code}) {s.name}") - created = database.create_many_stations(db_session, to_create) + created = database.create_many_observation_stations( + db_session, to_create + ) else: created = [] print("No new stations found.") @@ -491,6 +457,20 @@ def _get_stations( return result +def _get_observation_series_configurations( + db_session: sqlmodel.Session, + observation_series_configuration_identifier: str | None = None, +) -> list[observations.ObservationSeriesConfiguration]: + if observation_series_configuration_identifier is not None: + series_conf = database.get_observation_series_configuration_by_identifier( + db_session, observation_series_configuration_identifier + ) + result = [series_conf] if series_conf else [] + else: + result = database.collect_all_observation_series_configurations(db_session) + return result + + def _get_climatic_indicators( db_session: sqlmodel.Session, climatic_indicator_identifier: str | None = None ) -> list[climaticindicators.ClimaticIndicator]: diff --git a/arpav_ppcv/schemas/climaticindicators.py b/arpav_ppcv/schemas/climaticindicators.py index 9c986365..8b9b9a26 100644 --- a/arpav_ppcv/schemas/climaticindicators.py +++ b/arpav_ppcv/schemas/climaticindicators.py @@ -16,6 +16,8 @@ if TYPE_CHECKING: from . import coverages from .observations import ( + ObservationMeasurement, + ObservationSeriesConfiguration, MonthlyMeasurement, SeasonalMeasurement, YearlyMeasurement, @@ -50,6 +52,23 @@ class ClimaticIndicator(sqlmodel.SQLModel, table=True): "coverages.CoverageConfiguration" ] = sqlmodel.Relationship(back_populates="climatic_indicator") + observation_series_configurations: list[ + "ObservationSeriesConfiguration" + ] = sqlmodel.Relationship(back_populates="climatic_indicator") + + measurements: list["ObservationMeasurement"] = sqlmodel.Relationship( + back_populates="climatic_indicator", + sa_relationship_kwargs={ + # ORM relationship config, which explicitly includes the + # `delete` and `delete-orphan` options because we want the ORM + # to try to delete monthly measurements when their related + # climatic_indicator is deleted + "cascade": "all, delete-orphan", + # expect that the RDBMS handles cascading deletes + "passive_deletes": True, + }, + ) + monthly_measurements: list["MonthlyMeasurement"] = sqlmodel.Relationship( back_populates="climatic_indicator", sa_relationship_kwargs={ diff --git a/arpav_ppcv/schemas/observations.py b/arpav_ppcv/schemas/observations.py index 4936100d..c91a6799 100644 --- a/arpav_ppcv/schemas/observations.py +++ b/arpav_ppcv/schemas/observations.py @@ -1,6 +1,7 @@ import datetime as dt import uuid from typing import ( + ClassVar, Optional, TYPE_CHECKING, ) @@ -11,8 +12,11 @@ import sqlalchemy import sqlmodel -from . import fields -from . import base +from . import ( + base, + fields, + static, +) if TYPE_CHECKING: from .climaticindicators import ClimaticIndicator @@ -31,6 +35,7 @@ def get_season(self, value: str): return result +# FIXME: Remove this for ObservationStation class StationBase(sqlmodel.SQLModel): model_config = pydantic.ConfigDict(arbitrary_types_allowed=True) @@ -49,6 +54,7 @@ class StationBase(sqlmodel.SQLModel): active_until: Optional[dt.date] = None +# FIXME: Replace this with ObservationStation class Station(StationBase, table=True): altitude_m: Optional[float] = sqlmodel.Field(default=None) name: str = "" @@ -125,6 +131,7 @@ def __hash__(self): return hash(self.id) +# FIXME: Replace this with ObservationStation class StationCreate(sqlmodel.SQLModel): code: str geom: geojson_pydantic.Point @@ -154,6 +161,7 @@ def __hash__(self): ) +# FIXME: Replace this with ObservationStation class StationUpdate(sqlmodel.SQLModel): code: Optional[str] = None geom: Optional[geojson_pydantic.Point] = None @@ -244,11 +252,13 @@ class StationUpdate(sqlmodel.SQLModel): # unit_italian: Optional[str] = None +# FIXME: Replace this with ObservationMeasurement class MonthlyMeasurementBase(sqlmodel.SQLModel): value: float date: dt.date +# FIXME: Replace this with ObservationMeasurement class MonthlyMeasurement(MonthlyMeasurementBase, table=True): __table_args__ = ( sqlalchemy.ForeignKeyConstraint( @@ -296,6 +306,7 @@ class MonthlyMeasurement(MonthlyMeasurementBase, table=True): ) +# FIXME: Replace this with ObservationMeasurement class MonthlyMeasurementCreate(sqlmodel.SQLModel): station_id: pydantic.UUID4 climatic_indicator_id: int @@ -303,11 +314,13 @@ class MonthlyMeasurementCreate(sqlmodel.SQLModel): date: dt.date +# FIXME: Replace this with ObservationMeasurement class MonthlyMeasurementUpdate(sqlmodel.SQLModel): value: Optional[float] = None date: Optional[dt.date] = None +# FIXME: Replace this with ObservationMeasurement class SeasonalMeasurement(sqlmodel.SQLModel, table=True): __table_args__ = ( sqlalchemy.ForeignKeyConstraint( @@ -358,6 +371,7 @@ class SeasonalMeasurement(sqlmodel.SQLModel, table=True): ) +# FIXME: Replace this with ObservationMeasurement class SeasonalMeasurementCreate(sqlmodel.SQLModel): station_id: pydantic.UUID4 climatic_indicator_id: int @@ -366,12 +380,14 @@ class SeasonalMeasurementCreate(sqlmodel.SQLModel): season: base.Season +# FIXME: Replace this with ObservationMeasurement class SeasonalMeasurementUpdate(sqlmodel.SQLModel): value: Optional[float] = None year: Optional[int] = None season: Optional[base.Season] = None +# FIXME: Replace this with ObservationMeasurement class YearlyMeasurement(sqlmodel.SQLModel, table=True): __table_args__ = ( sqlalchemy.ForeignKeyConstraint( @@ -421,6 +437,7 @@ class YearlyMeasurement(sqlmodel.SQLModel, table=True): ) +# FIXME: Replace this with ObservationMeasurement class YearlyMeasurementCreate(sqlmodel.SQLModel): station_id: pydantic.UUID4 climatic_indicator_id: int @@ -428,6 +445,227 @@ class YearlyMeasurementCreate(sqlmodel.SQLModel): year: int +# FIXME: Replace this with ObservationMeasurement class YearlyMeasurementUpdate(sqlmodel.SQLModel): value: Optional[float] = None year: Optional[int] = None + + +class ObservationStation(sqlmodel.SQLModel, table=True): + model_config = pydantic.ConfigDict(arbitrary_types_allowed=True) + identifier_pattern: ClassVar[str] = "{owner}-{code}" + + id: int | None = sqlmodel.Field(default=None, primary_key=True) + name: str = "" + owner: static.ObservationStationOwner + geom: fields.WkbElement = sqlmodel.Field( + sa_column=sqlalchemy.Column( + geoalchemy2.Geometry( + srid=4326, + geometry_type="POINT", + spatial_index=True, + ) + ) + ) + code: str = sqlmodel.Field(unique=True) + altitude_m: Optional[float] = sqlmodel.Field(default=None) + active_since: Optional[dt.date] = None + active_until: Optional[dt.date] = None + + measurements: list["ObservationMeasurement"] = sqlmodel.Relationship( + back_populates="observation_station", + sa_relationship_kwargs={ + # ORM relationship config, which explicitly includes the + # `delete` and `delete-orphan` options because we want the ORM + # to try to delete observation measurements when their related station + # is deleted + "cascade": "all, delete-orphan", + # expect that the RDBMS handles cascading deletes + "passive_deletes": True, + }, + ) + climatic_indicators: list["ClimaticIndicator"] = sqlmodel.Relationship( + sa_relationship_kwargs={ + "primaryjoin": ( + "and_(ObservationStation.id == ObservationMeasurement.observation_station_id, " + "ClimaticIndicator.id == ObservationMeasurement.climatic_indicator_id)" + ), + "secondary": "observationmeasurement", + "viewonly": True, + } + ) + + +class ObservationStationCreate(sqlmodel.SQLModel): + name: Optional[str] = "" + owner: static.ObservationStationOwner + geom: geojson_pydantic.Point + code: str + altitude_m: Optional[float] = None + active_since: Optional[dt.date] = None + active_until: Optional[dt.date] = None + + def __hash__(self): + return hash( + "".join( + ( + self.name, + self.owner, + self.geom.model_dump_json(), + self.code, + str(self.altitude_m) or "", + self.active_since.isoformat() + if self.active_since is not None + else "", + self.active_until.isoformat() + if self.active_until is not None + else "", + ) + ) + ) + + +class ObservationStationUpdate(sqlmodel.SQLModel): + name: Optional[str] = None + owner: Optional[static.ObservationStationOwner] = None + geom: Optional[geojson_pydantic.Point] = None + code: Optional[str] = None + altitude_m: Optional[float] = None + active_since: Optional[dt.date] = None + active_until: Optional[dt.date] = None + + +class ObservationMeasurement(sqlmodel.SQLModel, table=True): + __table_args__ = ( + sqlalchemy.ForeignKeyConstraint( + [ + "observation_station_id", + ], + [ + "observationstation.id", + ], + onupdate="CASCADE", + ondelete="CASCADE", # i.e. delete a measurement if its related station is deleted + ), + sqlalchemy.ForeignKeyConstraint( + [ + "climatic_indicator_id", + ], + [ + "climaticindicator.id", + ], + onupdate="CASCADE", + ondelete="CASCADE", # i.e. delete a measurement if its climatic_indicator station is deleted + ), + ) + id: int | None = sqlmodel.Field(default=None, primary_key=True) + value: float + date: dt.date + measurement_aggregation_type: static.MeasurementAggregationType + climatic_indicator_id: int + observation_station_id: int + + observation_station: ObservationStation = sqlmodel.Relationship( + back_populates="measurements", + sa_relationship_kwargs={ + # retrieve the related resource immediately, by means of a SQL JOIN - this + # is instead of the default lazy behavior of only retrieving related + # records when they are accessed by the ORM + "lazy": "joined", + }, + ) + climatic_indicator: "ClimaticIndicator" = sqlmodel.Relationship( + back_populates="measurements", + sa_relationship_kwargs={ + # retrieve the related resource immediately, by means of a SQL JOIN - this + # is instead of the default lazy behavior of only retrieving related + # records when they are accessed by the ORM + "lazy": "joined", + }, + ) + + +class ObservationMeasurementCreate(sqlmodel.SQLModel): + value: float + date: dt.date + measurement_aggregation_type: static.MeasurementAggregationType + observation_station_id: pydantic.UUID4 + climatic_indicator_id: int + + +class ObservationMeasurementUpdate(sqlmodel.SQLModel): + value: Optional[float] = None + date: Optional[dt.date] = None + measurement_aggregation_type: Optional[static.MeasurementAggregationType] = None + observation_station_id: Optional[pydantic.UUID4] = None + climatic_indicator_id: Optional[int] = None + + +class ObservationSeriesConfiguration(sqlmodel.SQLModel, table=True): + """Configuration for observation series.""" + + identifier_pattern: ClassVar[ + str + ] = "{climatic_indicator}_{station_owners}_{measurement_aggregation_type}" + + id: int | None = sqlmodel.Field(default=None, primary_key=True) + climatic_indicator_id: Optional[int] = sqlmodel.Field( + default=None, foreign_key="climaticindicator.id" + ) + indicator_internal_name: str + measurement_aggregation_type: static.MeasurementAggregationType + station_owners: list[static.ObservationStationOwner] = sqlmodel.Field( + default=list, sa_column=sqlalchemy.Column(sqlmodel.ARRAY(sqlmodel.String)) + ) + + climatic_indicator: "ClimaticIndicator" = sqlmodel.Relationship( + back_populates="observation_series_configurations" + ) + + @pydantic.computed_field + @property + def identifier(self) -> str: + return self.identifier_pattern.format( + climatic_indicator=self.climatic_indicator.identifier, + station_owners="-".join(self.station_owners), + measurement_aggregation_type=self.measurement_aggregation_type, + ) + + # # FIXME: implement this as operations instead + # def list_stations( + # self, + # owner: Optional[static.ObservationStationOwner] = None, + # limit: Optional[int] = 20, + # offset: Optional[int] = 0, + # ) -> list[ObservationStation]: + # ... + # + # # FIXME: implement this as operations instead + # def list_measurements( + # self, + # station: Optional[ObservationStation] = None, + # limit: Optional[int] = 20, + # offset: Optional[int] = 0, + # ) -> list[ObservationMeasurement]: + # ... + # + # # FIXME: implement this as operations instead + # def get_series( + # self, + # station: Optional[ObservationStation] = None, + # ) -> list[ObservationStationSeries]: + # ... + + +class ObservationSeriesConfigurationCreate(sqlmodel.SQLModel): + climatic_indicator_id: int + indicator_internal_name: str + measurement_aggregation_type: static.MeasurementAggregationType + station_owners: list[static.ObservationStationOwner] + + +class ObservationSeriesConfigurationUpdate(sqlmodel.SQLModel): + climatic_indicator_id: Optional[int] = None + indicator_internal_name: Optional[str] = None + measurement_aggregation_type: Optional[static.MeasurementAggregationType] = None + station_owners: Optional[list[static.ObservationStationOwner]] = None diff --git a/arpav_ppcv/schemas/static.py b/arpav_ppcv/schemas/static.py index 9c3002fc..393e7b9d 100644 --- a/arpav_ppcv/schemas/static.py +++ b/arpav_ppcv/schemas/static.py @@ -84,3 +84,85 @@ def get_sort_order(self) -> int: self.ANNUAL.name: 0, self.THIRTY_YEAR.name: 0, }[self.name] + + +class MeasurementAggregationType(str, enum.Enum): + MONTHLY = "MONTHLY" + SEASONAL = "SEASONAL" + YEARLY = "YEARLY" + + @staticmethod + def get_param_display_name(locale: babel.Locale) -> str: + translations = get_translations(locale) + _ = translations.gettext + return _("measurement aggregation type") + + @staticmethod + def get_param_description(locale: babel.Locale) -> str: + translations = get_translations(locale) + _ = translations.gettext + return _("measurement aggregation description") + + def get_value_display_name(self, locale: babel.Locale) -> str: + translations = get_translations(locale) + _ = translations.gettext + return { + self.MONTHLY.name: _("monthly"), + self.SEASONAL.name: _("seasonal"), + self.YEARLY.name: _("yearly"), + }[self.name] or self.name + + def get_value_description(self, locale: babel.Locale) -> str: + translations = get_translations(locale) + _ = translations.gettext + return { + self.MONTHLY.name: _("monthly description"), + self.SEASONAL.name: _("seasonal description"), + self.YEARLY.name: _("yearly description"), + }[self.name] or self.name + + def get_sort_order(self) -> int: + return { + self.MONTHLY.name: 0, + self.SEASONAL.name: 0, + self.YEARLY.name: 0, + }[self.name] + + +class ObservationStationOwner(str, enum.Enum): + ARPAV = "ARPAV" + ARPAFVG = "ARPAFVG" + + @staticmethod + def get_param_display_name(locale: babel.Locale) -> str: + translations = get_translations(locale) + _ = translations.gettext + return _("observation station owner") + + @staticmethod + def get_param_description(locale: babel.Locale) -> str: + translations = get_translations(locale) + _ = translations.gettext + return _("observation station owner description") + + def get_value_display_name(self, locale: babel.Locale) -> str: + translations = get_translations(locale) + _ = translations.gettext + return { + self.ARPAV.name: _("ARPAV"), + self.ARPAFVG.name: _("ARPAFVG"), + }[self.name] or self.name + + def get_value_description(self, locale: babel.Locale) -> str: + translations = get_translations(locale) + _ = translations.gettext + return { + self.ARPAV.name: _("ARPAV description"), + self.ARPAFVG.name: _("ARPAFVG description"), + }[self.name] or self.name + + def get_sort_order(self) -> int: + return { + self.ARPAV.name: 0, + self.ARPAFVG.name: 0, + }[self.name] diff --git a/arpav_ppcv/webapp/admin/app.py b/arpav_ppcv/webapp/admin/app.py index 1f2ae044..4044ec94 100644 --- a/arpav_ppcv/webapp/admin/app.py +++ b/arpav_ppcv/webapp/admin/app.py @@ -72,6 +72,14 @@ def create_admin(settings: config.ArpavPpcvSettings) -> ArpavPpcvAdmin: coverage_views.CoverageConfigurationView(coverages.CoverageConfiguration) ) admin.add_view(observations_views.StationView(observations.Station)) + admin.add_view( + observations_views.ObservationStationView(observations.ObservationStation) + ) + admin.add_view( + observations_views.ObservationSeriesConfigurationView( + observations.ObservationSeriesConfiguration + ) + ) admin.add_view( DropDown( "Measurements", diff --git a/arpav_ppcv/webapp/admin/schemas.py b/arpav_ppcv/webapp/admin/schemas.py index 405e54f0..a6172c56 100644 --- a/arpav_ppcv/webapp/admin/schemas.py +++ b/arpav_ppcv/webapp/admin/schemas.py @@ -10,7 +10,9 @@ ) from ...schemas.static import ( AggregationPeriod, + ObservationStationOwner, MeasureType, + MeasurementAggregationType, ) @@ -117,6 +119,27 @@ class StationRead(sqlmodel.SQLModel): altitude_m: Optional[float] +class ObservationStationRead(sqlmodel.SQLModel): + id: int + name: str + owner: ObservationStationOwner + longitude: float + latitude: float + code: str + altitude_m: Optional[float] + active_since: Optional[dt.date] + active_until: Optional[dt.date] + + +class ObservationSeriesConfigurationRead(sqlmodel.SQLModel): + id: int + identifier: str + indicator_internal_name: str + measurement_aggregation_type: MeasurementAggregationType + station_owners: list[ObservationStationOwner] + climatic_indicator: int + + class MonthlyMeasurementRead(sqlmodel.SQLModel): station: str variable: str diff --git a/arpav_ppcv/webapp/admin/views/observations.py b/arpav_ppcv/webapp/admin/views/observations.py index d65d3a94..60cda9e1 100644 --- a/arpav_ppcv/webapp/admin/views/observations.py +++ b/arpav_ppcv/webapp/admin/views/observations.py @@ -16,10 +16,11 @@ from starlette_admin.contrib.sqlmodel import ModelView from starlette_admin.exceptions import FormValidationError -from .... import database as db +from .... import database from ....schemas import ( base, observations, + static, ) from .. import fields from .. import schemas as read_schemas @@ -72,7 +73,7 @@ async def find_all( order_by: Optional[list[str]] = None, ) -> Sequence[read_schemas.MonthlyMeasurementRead]: list_measurements = functools.partial( - db.list_monthly_measurements, + database.list_monthly_measurements, limit=limit, offset=skip, include_total=False, @@ -130,7 +131,7 @@ async def find_all( order_by: Optional[list[str]] = None, ) -> Sequence[read_schemas.SeasonalMeasurementRead]: list_measurements = functools.partial( - db.list_seasonal_measurements, + database.list_seasonal_measurements, limit=limit, offset=skip, include_total=False, @@ -187,7 +188,7 @@ async def find_all( order_by: Optional[list[str]] = None, ) -> Sequence[read_schemas.YearlyMeasurementRead]: list_measurements = functools.partial( - db.list_yearly_measurements, + database.list_yearly_measurements, limit=limit, offset=skip, include_total=False, @@ -286,7 +287,7 @@ async def create( **data, ) db_station = await anyio.to_thread.run_sync( - db.create_station, + database.create_station, request.state.session, station_create, ) @@ -312,10 +313,13 @@ async def edit( kwargs["type_"] = type_ station_update = observations.StationUpdate(**data, **kwargs) db_station = await anyio.to_thread.run_sync( - db.get_station, request.state.session, pk + database.get_station, request.state.session, pk ) db_station = await anyio.to_thread.run_sync( - db.update_station, request.state.session, db_station, station_update + database.update_station, + request.state.session, + db_station, + station_update, ) return self._serialize_instance(db_station) except Exception as e: @@ -324,7 +328,7 @@ async def edit( async def find_by_pk(self, request: Request, pk: Any) -> read_schemas.StationRead: db_station = await anyio.to_thread.run_sync( - db.get_station, request.state.session, pk + database.get_station, request.state.session, pk ) return self._serialize_instance(db_station) @@ -337,7 +341,7 @@ async def find_all( order_by: Optional[list[str]] = None, ) -> Sequence[read_schemas.StationRead]: list_stations = functools.partial( - db.list_stations, + database.list_stations, limit=limit, offset=skip, include_total=False, @@ -347,3 +351,237 @@ async def find_all( list_stations, request.state.session ) return [self._serialize_instance(db_station) for db_station in db_stations] + + +class ObservationStationView(ModelView): + identity = "observation_stations" + name = "Observation Station" + label = "Observation Stations" + icon = "fa fa-blog" + pk_attr = "id" + + exclude_fields_from_list = ("id",) + exclude_fields_from_detail = ("id",) + + fields = ( + fields.UuidField("id"), + starlette_admin.StringField("name", required=True), + starlette_admin.StringField("code", required=True), + starlette_admin.FloatField("longitude", required=True), + starlette_admin.FloatField("latitude", required=True), + starlette_admin.DateField("active_since"), + starlette_admin.DateField("active_until"), + starlette_admin.FloatField("altitude_m"), + ) + + def __init__(self, *args, **kwargs) -> None: + super().__init__(*args, **kwargs) + self.icon = "fa-solid fa-tower-observation" + + @staticmethod + def _serialize_instance( + instance: observations.ObservationStation, + ) -> read_schemas.ObservationStationRead: + geom = shapely.io.from_wkb(bytes(instance.geom.data)) + return read_schemas.ObservationStationRead( + **instance.model_dump(exclude={"geom", "type_"}), + longitude=geom.x, + latitude=geom.y, + ) + + async def validate(self, request: Request, data: dict[str, Any]) -> None: + """Validate data without file fields relation fields""" + errors: dict[str, str] = {} + if (lat := data["latitude"]) < -90 or lat > 90: + errors["latitude"] = "Invalid value" + if (lon := data["longitude"]) < -180 or lon > 180: + errors["longitude"] = "Invalid longitude" + if len(errors) > 0: + raise FormValidationError(errors) + else: + data_to_validate = data.copy() + data_to_validate["geom"] = from_shape(shapely.Point(lon, lat)) + del data_to_validate["longitude"] + del data_to_validate["latitude"] + fields_to_exclude = [ + f.name + for f in self.get_fields_list(request, request.state.action) + if isinstance( + f, (starlette_admin.FileField, starlette_admin.RelationField) + ) + ] + ["latitude", "longitude"] + self.model.validate( + { + k: v + for k, v in data_to_validate.items() + if k not in fields_to_exclude + } + ) + + def can_create(self, request: Request) -> bool: + return False + + def can_edit(self, request: Request) -> bool: + return False + + async def find_by_pk(self, request: Request, pk: Any) -> read_schemas.StationRead: + db_station = await anyio.to_thread.run_sync( + database.get_observation_station, request.state.session, pk + ) + return self._serialize_instance(db_station) + + async def find_all( + self, + request: Request, + skip: int = 0, + limit: int = 100, + where: Union[dict[str, Any], str, None] = None, + order_by: Optional[list[str]] = None, + ) -> Sequence[read_schemas.ObservationStationRead]: + list_observation_stations = functools.partial( + database.list_observation_stations, + limit=limit, + offset=skip, + include_total=False, + name_filter=str(where) if where not in (None, "") else None, + ) + db_stations, _ = await anyio.to_thread.run_sync( + list_observation_stations, request.state.session + ) + return [self._serialize_instance(db_station) for db_station in db_stations] + + +class ObservationSeriesConfigurationView(ModelView): + identity = "observation_series_configurations" + name = "Observation Series Configuration" + label = "Observation Series Configurations" + icon = "fa fa-blog" + pk_attr = "id" + fields = ( + fields.UuidField("id"), + starlette_admin.StringField("identifier", read_only=True), + starlette_admin.StringField("indicator_internal_name", required=True), + starlette_admin.EnumField( + "measurement_aggregation_type", + enum=static.MeasurementAggregationType, + required=True, + ), + fields.RelatedClimaticIndicatorField( + "climatic_indicator", + help_text="Related climatic indicator", + required=True, + ), + starlette_admin.ListField( + starlette_admin.EnumField( + "station_owners", enum=static.ObservationStationOwner + ) + ), + ) + + exclude_fields_from_list = ( + "id", + "measurement_aggregation_type", + "climatic_indicator", + "station_owners", + ) + exclude_fields_from_edit = ("identifier",) + exclude_fields_from_create = ("identifier",) + + def __init__(self, *args, **kwargs) -> None: + super().__init__(*args, **kwargs) + self.icon = "fa-solid fa-map" + + @staticmethod + def _serialize_instance( + instance: observations.ObservationSeriesConfiguration, + ) -> read_schemas.ObservationSeriesConfigurationRead: + return read_schemas.ObservationSeriesConfigurationRead( + **instance.model_dump( + exclude={ + "climatic_indicator_id", + }, + ), + climatic_indicator=instance.climatic_indicator_id, + ) + + async def find_by_pk( + self, request: Request, pk: Any + ) -> read_schemas.ObservationSeriesConfigurationRead: + db_instance = await anyio.to_thread.run_sync( + database.get_observation_series_configuration, request.state.session, pk + ) + return self._serialize_instance(db_instance) + + async def find_all( + self, + request: Request, + skip: int = 0, + limit: int = 100, + where: Union[dict[str, Any], str, None] = None, + order_by: Optional[list[str]] = None, + ) -> Sequence[read_schemas.ObservationSeriesConfigurationRead]: + item_lister = functools.partial( + database.list_observation_series_configurations, + limit=limit, + offset=skip, + include_total=False, + ) + db_items, _ = await anyio.to_thread.run_sync(item_lister, request.state.session) + result = [] + for db_item in db_items: + result.append(self._serialize_instance(db_item)) + return result + + async def create(self, request: Request, data: dict[str, Any]) -> Any: + session = request.state.session + try: + data = await self._arrange_data(request, data) + await self.validate(request, data) + logger.debug(f"{data=}") + # FIXME: looks like this needs to be called with anyio.to_thread.run_sync + climatic_indicator = await anyio.to_thread.run_sync( + database.get_climatic_indicator, + session, + data["climatic_indicator"], + ) + item_create = observations.ObservationSeriesConfigurationCreate( + climatic_indicator_id=climatic_indicator.id, + indicator_internal_name=data["indicator_internal_name"], + measurement_aggregation_type=data["measurement_aggregation_type"], + station_owners=data["station_owners"], + ) + db_item = await anyio.to_thread.run_sync( + database.create_observation_series_configuration, session, item_create + ) + return self._serialize_instance(db_item) + except Exception as e: + return self.handle_exception(e) + + async def edit(self, request: Request, pk: Any, data: dict[str, Any]) -> Any: + session = request.state.session + try: + data = await self._arrange_data(request, data, True) + await self.validate(request, data) + + # FIXME: call this via anyio.to_thread.run_sync + climatic_indicator = await anyio.to_thread.run_sync( + database.get_climatic_indicator, session, data["climatic_indicator"] + ) + item_update = observations.ObservationSeriesConfigurationUpdate( + climatic_indicator_id=climatic_indicator.id, + indicator_internal_name=data["indicator_internal_name"], + measurement_aggregation_type=data["measurement_aggregation_type"], + station_owners=data["station_owners"], + ) + db_item = await anyio.to_thread.run_sync( + database.get_observation_series_configuration, session, pk + ) + db_item = await anyio.to_thread.run_sync( + database.update_observation_series_configuration, + session, + db_item, + item_update, + ) + return self._serialize_instance(db_item) + except Exception as e: + self.handle_exception(e) diff --git a/arpav_ppcv/webapp/api_v2/routers/observations.py b/arpav_ppcv/webapp/api_v2/routers/observations.py index f3447c27..8de302c0 100644 --- a/arpav_ppcv/webapp/api_v2/routers/observations.py +++ b/arpav_ppcv/webapp/api_v2/routers/observations.py @@ -1,41 +1,25 @@ -import json import logging -import math from typing import ( Annotated, - Optional, ) -import fastapi -import pandas as pd -import pydantic from fastapi import ( APIRouter, Depends, Header, - Path, Request, - Query, ) from fastapi.encoders import jsonable_encoder from fastapi.responses import JSONResponse -from fastapi.exceptions import HTTPException from sqlmodel import Session from .... import ( database as db, - operations, ) from ...responses import GeoJsonResponse -from ....schemas import base from ... import dependencies from ..schemas import observations from ..schemas.geojson import observations as observations_geojson -from ..schemas.base import ( - TimeSeries, - TimeSeriesItem, - TimeSeriesList, -) logger = logging.getLogger(__name__) router = APIRouter() @@ -59,38 +43,24 @@ def list_stations( request: Request, db_session: Annotated[Session, Depends(dependencies.get_db_session)], list_params: Annotated[dependencies.CommonListFilterParameters, Depends()], - variable_name: str | None = None, - temporal_aggregation: Annotated[ - base.ObservationAggregationType, Query() - ] = base.ObservationAggregationType.SEASONAL, accept: Annotated[str | None, Header()] = None, ): """List known stations.""" filter_kwargs = {} - if variable_name is not None: - if (db_var := db.get_variable_by_name(db_session, variable_name)) is not None: - filter_kwargs.update( - { - "variable_id_filter": db_var.id, - "variable_aggregation_type": temporal_aggregation, - } - ) - else: - raise HTTPException(status_code=400, detail="Invalid variable name") - stations, filtered_total = db.list_stations( + stations, filtered_total = db.list_observation_stations( db_session, limit=list_params.limit, offset=list_params.offset, include_total=True, **filter_kwargs, ) - _, unfiltered_total = db.list_stations( + _, unfiltered_total = db.list_observation_stations( db_session, limit=1, offset=0, include_total=True ) if accept == "application/json": result = JSONResponse( content=jsonable_encoder( - observations.StationList.from_items( + observations.ObservationStationList.from_items( stations, request, limit=list_params.limit, @@ -114,289 +84,291 @@ def list_stations( @router.get( "/stations/{station_id}", - response_model=observations.StationReadListItem, + response_model=observations.ObservationStationReadListItem, ) def get_station( request: Request, db_session: Annotated[Session, Depends(dependencies.get_db_session)], - station_id: pydantic.UUID4, -): - db_station = db.get_station(db_session, station_id) - return observations.StationReadListItem.from_db_instance(db_station, request) - - -@router.get("/monthly-measurements", response_model=observations.MonthlyMeasurementList) -def list_monthly_measurements( - request: Request, - db_session: Annotated[Session, Depends(dependencies.get_db_session)], - list_params: Annotated[dependencies.CommonListFilterParameters, Depends()], - station_code: str | None = None, - climatic_indicator_identifier: str | None = None, - month: Annotated[int | None, fastapi.Query(le=1, ge=12)] = None, + station_id: int, ): - """List known monthly measurements.""" - if station_code is not None: - db_station = db.get_station_by_code(db_session, station_code) - if db_station is not None: - station_id = db_station.id - else: - raise ValueError("Invalid station code") - else: - station_id = None - if climatic_indicator_identifier is not None: - db_climatic_indicator = db.get_climatic_indicator_by_identifier( - db_session, climatic_indicator_identifier - ) - if db_climatic_indicator is not None: - climatic_indicator_id = db_climatic_indicator.id - else: - raise ValueError("Invalid climatic indicator identifier") - else: - climatic_indicator_id = None - monthly_measurements, filtered_total = db.list_monthly_measurements( - db_session, - limit=list_params.limit, - offset=list_params.offset, - station_id_filter=station_id, - climatic_indicator_id_filter=climatic_indicator_id, - month_filter=month, - include_total=True, - ) - _, unfiltered_total = db.list_monthly_measurements( - db_session, limit=1, offset=0, include_total=True - ) - return observations.MonthlyMeasurementList.from_items( - monthly_measurements, - request, - limit=list_params.limit, - offset=list_params.offset, - filtered_total=filtered_total, - unfiltered_total=unfiltered_total, + db_station = db.get_observation_station(db_session, station_id) + return observations.ObservationStationReadListItem.from_db_instance( + db_station, request ) -@router.get( - "/monthly-measurements/{monthly_measurement_id}", - response_model=observations.MonthlyMeasurementReadListItem, -) -def get_monthly_measurement( - request: Request, - db_session: Annotated[Session, Depends(dependencies.get_db_session)], - monthly_measurement_id: pydantic.UUID4, -): - db_monthly_measurement = db.get_monthly_measurement( - db_session, monthly_measurement_id - ) - return observations.MonthlyMeasurementReadListItem.from_db_instance( - db_monthly_measurement, request - ) - - -@router.get( - "/seasonal-measurements", response_model=observations.SeasonalMeasurementList -) -def list_seasonal_measurements( - request: Request, - db_session: Annotated[Session, Depends(dependencies.get_db_session)], - list_params: Annotated[dependencies.CommonListFilterParameters, Depends()], - station_code: str | None = None, - variable_name: str | None = None, - season: base.Season | None = None, -): - """List known seasonal measurements.""" - if station_code is not None: - db_station = db.get_station_by_code(db_session, station_code) - if db_station is not None: - station_id = db_station.id - else: - raise ValueError("Invalid station code") - else: - station_id = None - if variable_name is not None: - db_variable = db.get_variable_by_name(db_session, variable_name) - if db_variable is not None: - variable_id = db_variable.id - else: - raise ValueError("Invalid variable name") - else: - variable_id = None - measurements, filtered_total = db.list_seasonal_measurements( - db_session, - limit=list_params.limit, - offset=list_params.offset, - station_id_filter=station_id, - variable_id_filter=variable_id, - season_filter=season, - include_total=True, - ) - _, unfiltered_total = db.list_seasonal_measurements( - db_session, limit=1, offset=0, include_total=True - ) - return observations.SeasonalMeasurementList.from_items( - measurements, - request, - limit=list_params.limit, - offset=list_params.offset, - filtered_total=filtered_total, - unfiltered_total=unfiltered_total, - ) - - -@router.get( - "/seasonal-measurements/{seasonal_measurement_id}", - response_model=observations.SeasonalMeasurementReadListItem, -) -def get_seasonal_measurement( - request: Request, - db_session: Annotated[Session, Depends(dependencies.get_db_session)], - seasonal_measurement_id: pydantic.UUID4, -): - db_measurement = db.get_seasonal_measurement(db_session, seasonal_measurement_id) - return observations.SeasonalMeasurementReadListItem.from_db_instance( - db_measurement, request - ) - - -@router.get("/yearly-measurements", response_model=observations.YearlyMeasurementList) -def list_yearly_measurements( - request: Request, - db_session: Annotated[Session, Depends(dependencies.get_db_session)], - list_params: Annotated[dependencies.CommonListFilterParameters, Depends()], - station_code: str | None = None, - variable_name: str | None = None, -): - """List known yearly measurements.""" - if station_code is not None: - db_station = db.get_station_by_code(db_session, station_code) - if db_station is not None: - station_id = db_station.id - else: - raise ValueError("Invalid station code") - else: - station_id = None - if variable_name is not None: - db_variable = db.get_variable_by_name(db_session, variable_name) - if db_variable is not None: - variable_id = db_variable.id - else: - raise ValueError("Invalid variable name") - else: - variable_id = None - measurements, filtered_total = db.list_yearly_measurements( - db_session, - limit=list_params.limit, - offset=list_params.offset, - station_id_filter=station_id, - variable_id_filter=variable_id, - include_total=True, - ) - _, unfiltered_total = db.list_yearly_measurements( - db_session, limit=1, offset=0, include_total=True - ) - return observations.YearlyMeasurementList.from_items( - measurements, - request, - limit=list_params.limit, - offset=list_params.offset, - filtered_total=filtered_total, - unfiltered_total=unfiltered_total, - ) - - -@router.get( - "/yearly-measurements/{yearly_measurement_id}", - response_model=observations.YearlyMeasurementReadListItem, -) -def get_yearly_measurement( - request: Request, - db_session: Annotated[Session, Depends(dependencies.get_db_session)], - yearly_measurement_id: pydantic.UUID4, -): - db_measurement = db.get_yearly_measurement(db_session, yearly_measurement_id) - return observations.YearlyMeasurementReadListItem.from_db_instance( - db_measurement, request - ) - - -@router.get( - "/time-series/{station_code}/{variable_name}/{month}", response_model=TimeSeriesList -) -def get_time_series( - db_session: Annotated[Session, Depends(dependencies.get_db_session)], - station_code: str, - month: Annotated[int, Path(ge=1, le=12)], - variable_name: str, - datetime: Optional[str] = "../..", - smoothing: Annotated[list[base.ObservationDataSmoothingStrategy], Query()] = [ # noqa - base.ObservationDataSmoothingStrategy.NO_SMOOTHING - ], - include_decade_data: bool = False, - include_mann_kendall_trend: bool = False, - mann_kendall_start_year: Optional[int] = None, - mann_kendall_end_year: Optional[int] = None, -): - if (db_station := db.get_station_by_code(db_session, station_code)) is not None: - if ( - db_variable := db.get_variable_by_name(db_session, variable_name) - ) is not None: - if include_mann_kendall_trend: - try: - mann_kendall = base.MannKendallParameters( - start_year=mann_kendall_start_year, - end_year=mann_kendall_end_year, - ) - except pydantic.ValidationError as err: - error_dict = json.loads(err.json()) - raise HTTPException(status_code=400, detail=error_dict) - else: - mann_kendall = None - try: - observation_series = operations.get_observation_time_series( - session=db_session, - variable=db_variable, - station=db_station, - month=month, - temporal_range=datetime, - smoothing_strategies=smoothing, - include_decade_data=include_decade_data, - mann_kendall_parameters=mann_kendall, - ) - except ValueError as err: - raise HTTPException(status_code=400, detail=str(err)) - else: - series = [] - for obs_series_info, pd_series_stuff in observation_series.items(): - smoothing_strategy, derived_series = obs_series_info - pd_series, pd_series_info = pd_series_stuff - processed_series = TimeSeries.from_observation_series( - series=pd_series, - variable=db_variable, - smoothing_strategy=smoothing_strategy, - extra_info=pd_series_info, - derived_series=derived_series, - ) - series.append(processed_series) - return TimeSeriesList(series=series) - else: - raise HTTPException(status_code=400, detail="Invalid variable identifier") - else: - raise HTTPException(status_code=400, detail="Invalid station identifier") +# @router.get("/monthly-measurements", response_model=observations.MonthlyMeasurementList) +# def list_monthly_measurements( +# request: Request, +# db_session: Annotated[Session, Depends(dependencies.get_db_session)], +# list_params: Annotated[dependencies.CommonListFilterParameters, Depends()], +# station_code: str | None = None, +# climatic_indicator_identifier: str | None = None, +# month: Annotated[int | None, fastapi.Query(le=1, ge=12)] = None, +# ): +# """List known monthly measurements.""" +# if station_code is not None: +# db_station = db.get_station_by_code(db_session, station_code) +# if db_station is not None: +# station_id = db_station.id +# else: +# raise ValueError("Invalid station code") +# else: +# station_id = None +# if climatic_indicator_identifier is not None: +# db_climatic_indicator = db.get_climatic_indicator_by_identifier( +# db_session, climatic_indicator_identifier +# ) +# if db_climatic_indicator is not None: +# climatic_indicator_id = db_climatic_indicator.id +# else: +# raise ValueError("Invalid climatic indicator identifier") +# else: +# climatic_indicator_id = None +# monthly_measurements, filtered_total = db.list_monthly_measurements( +# db_session, +# limit=list_params.limit, +# offset=list_params.offset, +# station_id_filter=station_id, +# climatic_indicator_id_filter=climatic_indicator_id, +# month_filter=month, +# include_total=True, +# ) +# _, unfiltered_total = db.list_monthly_measurements( +# db_session, limit=1, offset=0, include_total=True +# ) +# return observations.MonthlyMeasurementList.from_items( +# monthly_measurements, +# request, +# limit=list_params.limit, +# offset=list_params.offset, +# filtered_total=filtered_total, +# unfiltered_total=unfiltered_total, +# ) +# +# +# @router.get( +# "/monthly-measurements/{monthly_measurement_id}", +# response_model=observations.MonthlyMeasurementReadListItem, +# ) +# def get_monthly_measurement( +# request: Request, +# db_session: Annotated[Session, Depends(dependencies.get_db_session)], +# monthly_measurement_id: pydantic.UUID4, +# ): +# db_monthly_measurement = db.get_monthly_measurement( +# db_session, monthly_measurement_id +# ) +# return observations.MonthlyMeasurementReadListItem.from_db_instance( +# db_monthly_measurement, request +# ) +# +# +# @router.get( +# "/seasonal-measurements", response_model=observations.SeasonalMeasurementList +# ) +# def list_seasonal_measurements( +# request: Request, +# db_session: Annotated[Session, Depends(dependencies.get_db_session)], +# list_params: Annotated[dependencies.CommonListFilterParameters, Depends()], +# station_code: str | None = None, +# variable_name: str | None = None, +# season: base.Season | None = None, +# ): +# """List known seasonal measurements.""" +# if station_code is not None: +# db_station = db.get_station_by_code(db_session, station_code) +# if db_station is not None: +# station_id = db_station.id +# else: +# raise ValueError("Invalid station code") +# else: +# station_id = None +# if variable_name is not None: +# db_variable = db.get_variable_by_name(db_session, variable_name) +# if db_variable is not None: +# variable_id = db_variable.id +# else: +# raise ValueError("Invalid variable name") +# else: +# variable_id = None +# measurements, filtered_total = db.list_seasonal_measurements( +# db_session, +# limit=list_params.limit, +# offset=list_params.offset, +# station_id_filter=station_id, +# variable_id_filter=variable_id, +# season_filter=season, +# include_total=True, +# ) +# _, unfiltered_total = db.list_seasonal_measurements( +# db_session, limit=1, offset=0, include_total=True +# ) +# return observations.SeasonalMeasurementList.from_items( +# measurements, +# request, +# limit=list_params.limit, +# offset=list_params.offset, +# filtered_total=filtered_total, +# unfiltered_total=unfiltered_total, +# ) +# +# +# @router.get( +# "/seasonal-measurements/{seasonal_measurement_id}", +# response_model=observations.SeasonalMeasurementReadListItem, +# ) +# def get_seasonal_measurement( +# request: Request, +# db_session: Annotated[Session, Depends(dependencies.get_db_session)], +# seasonal_measurement_id: pydantic.UUID4, +# ): +# db_measurement = db.get_seasonal_measurement(db_session, seasonal_measurement_id) +# return observations.SeasonalMeasurementReadListItem.from_db_instance( +# db_measurement, request +# ) +# +# +# @router.get("/yearly-measurements", response_model=observations.YearlyMeasurementList) +# def list_yearly_measurements( +# request: Request, +# db_session: Annotated[Session, Depends(dependencies.get_db_session)], +# list_params: Annotated[dependencies.CommonListFilterParameters, Depends()], +# station_code: str | None = None, +# variable_name: str | None = None, +# ): +# """List known yearly measurements.""" +# if station_code is not None: +# db_station = db.get_station_by_code(db_session, station_code) +# if db_station is not None: +# station_id = db_station.id +# else: +# raise ValueError("Invalid station code") +# else: +# station_id = None +# if variable_name is not None: +# db_variable = db.get_variable_by_name(db_session, variable_name) +# if db_variable is not None: +# variable_id = db_variable.id +# else: +# raise ValueError("Invalid variable name") +# else: +# variable_id = None +# measurements, filtered_total = db.list_yearly_measurements( +# db_session, +# limit=list_params.limit, +# offset=list_params.offset, +# station_id_filter=station_id, +# variable_id_filter=variable_id, +# include_total=True, +# ) +# _, unfiltered_total = db.list_yearly_measurements( +# db_session, limit=1, offset=0, include_total=True +# ) +# return observations.YearlyMeasurementList.from_items( +# measurements, +# request, +# limit=list_params.limit, +# offset=list_params.offset, +# filtered_total=filtered_total, +# unfiltered_total=unfiltered_total, +# ) +# +# +# @router.get( +# "/yearly-measurements/{yearly_measurement_id}", +# response_model=observations.YearlyMeasurementReadListItem, +# ) +# def get_yearly_measurement( +# request: Request, +# db_session: Annotated[Session, Depends(dependencies.get_db_session)], +# yearly_measurement_id: pydantic.UUID4, +# ): +# db_measurement = db.get_yearly_measurement(db_session, yearly_measurement_id) +# return observations.YearlyMeasurementReadListItem.from_db_instance( +# db_measurement, request +# ) -def _serialize_dataframe( - df: pd.DataFrame, - exclude_series_name_pattern: str | None = None, - info: dict[str, str] | None = None, -) -> list[TimeSeries]: - series = [] - for series_name, series_measurements in df.to_dict().items(): - if ( - exclude_series_name_pattern is None - or exclude_series_name_pattern not in series_name - ): - measurements = [] - for timestamp, value in series_measurements.items(): - if not math.isnan(value): - measurements.append(TimeSeriesItem(value=value, datetime=timestamp)) - series.append(TimeSeries(name=series_name, values=measurements, info=info)) - return series +# @router.get( +# "/time-series/{station_code}/{variable_name}/{month}", response_model=TimeSeriesList +# ) +# def get_time_series( +# db_session: Annotated[Session, Depends(dependencies.get_db_session)], +# station_code: str, +# month: Annotated[int, Path(ge=1, le=12)], +# variable_name: str, +# datetime: Optional[str] = "../..", +# smoothing: Annotated[list[base.ObservationDataSmoothingStrategy], Query()] = [ # noqa +# base.ObservationDataSmoothingStrategy.NO_SMOOTHING +# ], +# include_decade_data: bool = False, +# include_mann_kendall_trend: bool = False, +# mann_kendall_start_year: Optional[int] = None, +# mann_kendall_end_year: Optional[int] = None, +# ): +# if (db_station := db.get_station_by_code(db_session, station_code)) is not None: +# if ( +# db_variable := db.get_variable_by_name(db_session, variable_name) +# ) is not None: +# if include_mann_kendall_trend: +# try: +# mann_kendall = base.MannKendallParameters( +# start_year=mann_kendall_start_year, +# end_year=mann_kendall_end_year, +# ) +# except pydantic.ValidationError as err: +# error_dict = json.loads(err.json()) +# raise HTTPException(status_code=400, detail=error_dict) +# else: +# mann_kendall = None +# try: +# observation_series = operations.get_observation_time_series( +# session=db_session, +# variable=db_variable, +# station=db_station, +# month=month, +# temporal_range=datetime, +# smoothing_strategies=smoothing, +# include_decade_data=include_decade_data, +# mann_kendall_parameters=mann_kendall, +# ) +# except ValueError as err: +# raise HTTPException(status_code=400, detail=str(err)) +# else: +# series = [] +# for obs_series_info, pd_series_stuff in observation_series.items(): +# smoothing_strategy, derived_series = obs_series_info +# pd_series, pd_series_info = pd_series_stuff +# processed_series = TimeSeries.from_observation_series( +# series=pd_series, +# variable=db_variable, +# smoothing_strategy=smoothing_strategy, +# extra_info=pd_series_info, +# derived_series=derived_series, +# ) +# series.append(processed_series) +# return TimeSeriesList(series=series) +# else: +# raise HTTPException(status_code=400, detail="Invalid variable identifier") +# else: +# raise HTTPException(status_code=400, detail="Invalid station identifier") +# +# +# def _serialize_dataframe( +# df: pd.DataFrame, +# exclude_series_name_pattern: str | None = None, +# info: dict[str, str] | None = None, +# ) -> list[TimeSeries]: +# series = [] +# for series_name, series_measurements in df.to_dict().items(): +# if ( +# exclude_series_name_pattern is None +# or exclude_series_name_pattern not in series_name +# ): +# measurements = [] +# for timestamp, value in series_measurements.items(): +# if not math.isnan(value): +# measurements.append(TimeSeriesItem(value=value, datetime=timestamp)) +# series.append(TimeSeries(name=series_name, values=measurements, info=info)) +# return series diff --git a/arpav_ppcv/webapp/api_v2/schemas/geojson/observations.py b/arpav_ppcv/webapp/api_v2/schemas/geojson/observations.py index d5704e4f..5396a8a2 100644 --- a/arpav_ppcv/webapp/api_v2/schemas/geojson/observations.py +++ b/arpav_ppcv/webapp/api_v2/schemas/geojson/observations.py @@ -6,7 +6,6 @@ observations, fields, ) -from ..observations import VariableReadEmbeddedInStationRead from .base import ArpavFeatureCollection @@ -21,7 +20,7 @@ class StationFeatureCollectionItem(geojson_pydantic.Feature): @classmethod def from_db_instance( cls, - instance: observations.Station, + instance: observations.ObservationStation, request: Request, ) -> "StationFeatureCollectionItem": url = request.url_for("get_station", **{"station_id": instance.id}) @@ -35,18 +34,6 @@ def from_db_instance( "geom", } ), - "monthly_variables": [ - VariableReadEmbeddedInStationRead(**v.model_dump()) - for v in instance.monthly_variables - ], - "seasonal_variables": [ - VariableReadEmbeddedInStationRead(**v.model_dump()) - for v in instance.seasonal_variables - ], - "yearly_variables": [ - VariableReadEmbeddedInStationRead(**v.model_dump()) - for v in instance.yearly_variables - ], }, links=[str(url)], ) diff --git a/arpav_ppcv/webapp/api_v2/schemas/observations.py b/arpav_ppcv/webapp/api_v2/schemas/observations.py index 51b839d7..1135e0bb 100644 --- a/arpav_ppcv/webapp/api_v2/schemas/observations.py +++ b/arpav_ppcv/webapp/api_v2/schemas/observations.py @@ -4,7 +4,10 @@ import pydantic from fastapi import Request -from ....schemas import observations +from ....schemas import ( + observations, + static, +) from ....schemas.base import Season from .base import WebResourceList @@ -67,6 +70,22 @@ def from_db_instance( ) +class ObservationStationReadListItem(pydantic.BaseModel): + url: pydantic.AnyHttpUrl + identifier: str + name: str + owner: static.ObservationStationOwner + + @classmethod + def from_db_instance( + cls, instance: observations.ObservationStation, request: Request + ) -> "ObservationStationReadListItem": + return cls( + **instance.model_dump(), + url=request.url_for("get_station", **{"station_id": instance.id}), + ) + + class MonthlyMeasurementReadListItem(observations.MonthlyMeasurementBase): url: pydantic.AnyHttpUrl climatic_indicator_identifier: str @@ -141,9 +160,15 @@ def from_db_instance( ) -class StationList(WebResourceList): - items: list[StationReadListItem] - list_item_type = StationReadListItem +# class StationList(WebResourceList): +# items: list[StationReadListItem] +# list_item_type = StationReadListItem +# path_operation_name = "list_stations" + + +class ObservationStationList(WebResourceList): + items: list[ObservationStationReadListItem] + list_item_type = ObservationStationReadListItem path_operation_name = "list_stations" diff --git a/poetry.lock b/poetry.lock index 101d1df1..c16df944 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,9 +1,10 @@ -# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. +# This file is automatically @generated by Poetry and should not be changed by hand. [[package]] name = "aiosqlite" version = "0.20.0" description = "asyncio bridge to the standard sqlite3 module" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -20,13 +21,14 @@ docs = ["sphinx (==7.2.6)", "sphinx-mdinclude (==0.5.3)"] [[package]] name = "alembic" -version = "1.13.1" +version = "1.14.0" description = "A database migration tool for SQLAlchemy." +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "alembic-1.13.1-py3-none-any.whl", hash = "sha256:2edcc97bed0bd3272611ce3a98d98279e9c209e7186e43e75bbb1b2bdfdbcc43"}, - {file = "alembic-1.13.1.tar.gz", hash = "sha256:4932c8558bf68f2ee92b9bbcb8218671c627064d5b08939437af6d77dc05e595"}, + {file = "alembic-1.14.0-py3-none-any.whl", hash = "sha256:99bd884ca390466db5e27ffccff1d179ec5c05c965cfefc0607e69f9e411cb25"}, + {file = "alembic-1.14.0.tar.gz", hash = "sha256:b00892b53b3642d0b8dbedba234dbf1924b69be83a9a769d5a624b01094e304b"}, ] [package.dependencies] @@ -39,13 +41,14 @@ tz = ["backports.zoneinfo"] [[package]] name = "alembic-postgresql-enum" -version = "1.2.0" +version = "1.4.0" description = "Alembic autogenerate support for creation, alteration and deletion of enums" +category = "main" optional = false python-versions = "<4.0,>=3.7" files = [ - {file = "alembic_postgresql_enum-1.2.0-py3-none-any.whl", hash = "sha256:bd156e882a10c680fc88ebad25cfe78ccf9f826dec89670f8aeb28e5359e502b"}, - {file = "alembic_postgresql_enum-1.2.0.tar.gz", hash = "sha256:971bd3a4c35ea38869bb5e263ea79e5b4a9c4a02f174a3dd7ddcb29d41260cba"}, + {file = "alembic_postgresql_enum-1.4.0-py3-none-any.whl", hash = "sha256:c9eb20cb594085a48175aabcc5ffb448e6abfcc3f34cd9d03a1b7d5cc35457b8"}, + {file = "alembic_postgresql_enum-1.4.0.tar.gz", hash = "sha256:fb0af50059891bf3fb9638d4c32a61b4eee116c302a90e0c74ed3f5f396153f4"}, ] [package.dependencies] @@ -56,6 +59,7 @@ SQLAlchemy = ">=1.4" name = "annotated-types" version = "0.7.0" description = "Reusable constraint types to use with typing.Annotated" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -65,30 +69,32 @@ files = [ [[package]] name = "anyio" -version = "4.4.0" +version = "4.7.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" +category = "main" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "anyio-4.4.0-py3-none-any.whl", hash = "sha256:c1b2d8f46a8a812513012e1107cb0e68c17159a7a594208005a57dc776e1bdc7"}, - {file = "anyio-4.4.0.tar.gz", hash = "sha256:5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94"}, + {file = "anyio-4.7.0-py3-none-any.whl", hash = "sha256:ea60c3723ab42ba6fff7e8ccb0488c898ec538ff4df1f1d5e642c3601d07e352"}, + {file = "anyio-4.7.0.tar.gz", hash = "sha256:2f834749c602966b7d456a7567cafcb309f96482b5081d14ac93ccd457f9dd48"}, ] [package.dependencies] exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} idna = ">=2.8" sniffio = ">=1.1" -typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} +typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} [package.extras] -doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] -trio = ["trio (>=0.23)"] +doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21)"] +trio = ["trio (>=0.26.1)"] [[package]] name = "appnope" version = "0.1.4" description = "Disable App Nap on macOS >= 10.9" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -98,13 +104,14 @@ files = [ [[package]] name = "apprise" -version = "1.8.1" +version = "1.9.0" description = "Push Notifications that work with just about every platform!" +category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "apprise-1.8.1-py3-none-any.whl", hash = "sha256:371ea400305bd3bf5e8af8e56f151e131ee6357ae009418f9dc3c279909ba0ee"}, - {file = "apprise-1.8.1.tar.gz", hash = "sha256:08a20fe72672b7e90f7969d5b879d657c2e2db385a8a8c10f54cba565bf237f2"}, + {file = "apprise-1.9.0-py3-none-any.whl", hash = "sha256:7192c953eeb282a7afee012512d3de0104b5a6a11bdda29283435df5a79dfe7f"}, + {file = "apprise-1.9.0.tar.gz", hash = "sha256:b5c93afd6331afe4b63a55d1cea9076e47becb4ba89b562b181c13e25bb0c7d6"}, ] [package.dependencies] @@ -119,6 +126,7 @@ requests-oauthlib = "*" name = "argon2-cffi" version = "23.1.0" description = "Argon2 for Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -139,6 +147,7 @@ typing = ["mypy"] name = "argon2-cffi-bindings" version = "21.2.0" description = "Low-level CFFI bindings for Argon2" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -176,6 +185,7 @@ tests = ["pytest"] name = "arrow" version = "1.3.0" description = "Better dates & times for Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -189,12 +199,13 @@ types-python-dateutil = ">=2.8.10" [package.extras] doc = ["doc8", "sphinx (>=7.0.0)", "sphinx-autobuild", "sphinx-autodoc-typehints", "sphinx_rtd_theme (>=1.3.0)"] -test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (==3.*)"] +test = ["dateparser (>=1.0.0,<2.0.0)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (>=3.0.0,<4.0.0)"] [[package]] name = "asgi-lifespan" version = "2.1.0" description = "Programmatic startup/shutdown of ASGI apps." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -207,26 +218,25 @@ sniffio = "*" [[package]] name = "asttokens" -version = "2.4.1" +version = "3.0.0" description = "Annotate AST trees with source code positions" +category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, - {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, + {file = "asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2"}, + {file = "asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7"}, ] -[package.dependencies] -six = ">=1.12.0" - [package.extras] -astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] -test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] +astroid = ["astroid (>=2,<4)"] +test = ["astroid (>=2,<4)", "pytest", "pytest-cov", "pytest-xdist"] [[package]] name = "async-lru" version = "2.0.4" description = "Simple LRU cache for asyncio" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -239,100 +249,113 @@ typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} [[package]] name = "async-timeout" -version = "4.0.3" +version = "5.0.1" description = "Timeout context manager for asyncio programs" +category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"}, - {file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"}, + {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, + {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, ] [[package]] name = "asyncpg" -version = "0.29.0" +version = "0.30.0" description = "An asyncio PostgreSQL driver" +category = "main" optional = false python-versions = ">=3.8.0" files = [ - {file = "asyncpg-0.29.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72fd0ef9f00aeed37179c62282a3d14262dbbafb74ec0ba16e1b1864d8a12169"}, - {file = "asyncpg-0.29.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:52e8f8f9ff6e21f9b39ca9f8e3e33a5fcdceaf5667a8c5c32bee158e313be385"}, - {file = "asyncpg-0.29.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9e6823a7012be8b68301342ba33b4740e5a166f6bbda0aee32bc01638491a22"}, - {file = "asyncpg-0.29.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:746e80d83ad5d5464cfbf94315eb6744222ab00aa4e522b704322fb182b83610"}, - {file = "asyncpg-0.29.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ff8e8109cd6a46ff852a5e6bab8b0a047d7ea42fcb7ca5ae6eaae97d8eacf397"}, - {file = "asyncpg-0.29.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:97eb024685b1d7e72b1972863de527c11ff87960837919dac6e34754768098eb"}, - {file = "asyncpg-0.29.0-cp310-cp310-win32.whl", hash = "sha256:5bbb7f2cafd8d1fa3e65431833de2642f4b2124be61a449fa064e1a08d27e449"}, - {file = "asyncpg-0.29.0-cp310-cp310-win_amd64.whl", hash = "sha256:76c3ac6530904838a4b650b2880f8e7af938ee049e769ec2fba7cd66469d7772"}, - {file = "asyncpg-0.29.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4900ee08e85af01adb207519bb4e14b1cae8fd21e0ccf80fac6aa60b6da37b4"}, - {file = "asyncpg-0.29.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a65c1dcd820d5aea7c7d82a3fdcb70e096f8f70d1a8bf93eb458e49bfad036ac"}, - {file = "asyncpg-0.29.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b52e46f165585fd6af4863f268566668407c76b2c72d366bb8b522fa66f1870"}, - {file = "asyncpg-0.29.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc600ee8ef3dd38b8d67421359779f8ccec30b463e7aec7ed481c8346decf99f"}, - {file = "asyncpg-0.29.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:039a261af4f38f949095e1e780bae84a25ffe3e370175193174eb08d3cecab23"}, - {file = "asyncpg-0.29.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6feaf2d8f9138d190e5ec4390c1715c3e87b37715cd69b2c3dfca616134efd2b"}, - {file = "asyncpg-0.29.0-cp311-cp311-win32.whl", hash = "sha256:1e186427c88225ef730555f5fdda6c1812daa884064bfe6bc462fd3a71c4b675"}, - {file = "asyncpg-0.29.0-cp311-cp311-win_amd64.whl", hash = "sha256:cfe73ffae35f518cfd6e4e5f5abb2618ceb5ef02a2365ce64f132601000587d3"}, - {file = "asyncpg-0.29.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6011b0dc29886ab424dc042bf9eeb507670a3b40aece3439944006aafe023178"}, - {file = "asyncpg-0.29.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b544ffc66b039d5ec5a7454667f855f7fec08e0dfaf5a5490dfafbb7abbd2cfb"}, - {file = "asyncpg-0.29.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d84156d5fb530b06c493f9e7635aa18f518fa1d1395ef240d211cb563c4e2364"}, - {file = "asyncpg-0.29.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:54858bc25b49d1114178d65a88e48ad50cb2b6f3e475caa0f0c092d5f527c106"}, - {file = "asyncpg-0.29.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bde17a1861cf10d5afce80a36fca736a86769ab3579532c03e45f83ba8a09c59"}, - {file = "asyncpg-0.29.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:37a2ec1b9ff88d8773d3eb6d3784dc7e3fee7756a5317b67f923172a4748a175"}, - {file = "asyncpg-0.29.0-cp312-cp312-win32.whl", hash = "sha256:bb1292d9fad43112a85e98ecdc2e051602bce97c199920586be83254d9dafc02"}, - {file = "asyncpg-0.29.0-cp312-cp312-win_amd64.whl", hash = "sha256:2245be8ec5047a605e0b454c894e54bf2ec787ac04b1cb7e0d3c67aa1e32f0fe"}, - {file = "asyncpg-0.29.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0009a300cae37b8c525e5b449233d59cd9868fd35431abc470a3e364d2b85cb9"}, - {file = "asyncpg-0.29.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5cad1324dbb33f3ca0cd2074d5114354ed3be2b94d48ddfd88af75ebda7c43cc"}, - {file = "asyncpg-0.29.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:012d01df61e009015944ac7543d6ee30c2dc1eb2f6b10b62a3f598beb6531548"}, - {file = "asyncpg-0.29.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000c996c53c04770798053e1730d34e30cb645ad95a63265aec82da9093d88e7"}, - {file = "asyncpg-0.29.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e0bfe9c4d3429706cf70d3249089de14d6a01192d617e9093a8e941fea8ee775"}, - {file = "asyncpg-0.29.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:642a36eb41b6313ffa328e8a5c5c2b5bea6ee138546c9c3cf1bffaad8ee36dd9"}, - {file = "asyncpg-0.29.0-cp38-cp38-win32.whl", hash = "sha256:a921372bbd0aa3a5822dd0409da61b4cd50df89ae85150149f8c119f23e8c408"}, - {file = "asyncpg-0.29.0-cp38-cp38-win_amd64.whl", hash = "sha256:103aad2b92d1506700cbf51cd8bb5441e7e72e87a7b3a2ca4e32c840f051a6a3"}, - {file = "asyncpg-0.29.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5340dd515d7e52f4c11ada32171d87c05570479dc01dc66d03ee3e150fb695da"}, - {file = "asyncpg-0.29.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e17b52c6cf83e170d3d865571ba574577ab8e533e7361a2b8ce6157d02c665d3"}, - {file = "asyncpg-0.29.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f100d23f273555f4b19b74a96840aa27b85e99ba4b1f18d4ebff0734e78dc090"}, - {file = "asyncpg-0.29.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48e7c58b516057126b363cec8ca02b804644fd012ef8e6c7e23386b7d5e6ce83"}, - {file = "asyncpg-0.29.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f9ea3f24eb4c49a615573724d88a48bd1b7821c890c2effe04f05382ed9e8810"}, - {file = "asyncpg-0.29.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8d36c7f14a22ec9e928f15f92a48207546ffe68bc412f3be718eedccdf10dc5c"}, - {file = "asyncpg-0.29.0-cp39-cp39-win32.whl", hash = "sha256:797ab8123ebaed304a1fad4d7576d5376c3a006a4100380fb9d517f0b59c1ab2"}, - {file = "asyncpg-0.29.0-cp39-cp39-win_amd64.whl", hash = "sha256:cce08a178858b426ae1aa8409b5cc171def45d4293626e7aa6510696d46decd8"}, - {file = "asyncpg-0.29.0.tar.gz", hash = "sha256:d1c49e1f44fffafd9a55e1a9b101590859d881d639ea2922516f5d9c512d354e"}, + {file = "asyncpg-0.30.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bfb4dd5ae0699bad2b233672c8fc5ccbd9ad24b89afded02341786887e37927e"}, + {file = "asyncpg-0.30.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dc1f62c792752a49f88b7e6f774c26077091b44caceb1983509edc18a2222ec0"}, + {file = "asyncpg-0.30.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3152fef2e265c9c24eec4ee3d22b4f4d2703d30614b0b6753e9ed4115c8a146f"}, + {file = "asyncpg-0.30.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7255812ac85099a0e1ffb81b10dc477b9973345793776b128a23e60148dd1af"}, + {file = "asyncpg-0.30.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:578445f09f45d1ad7abddbff2a3c7f7c291738fdae0abffbeb737d3fc3ab8b75"}, + {file = "asyncpg-0.30.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c42f6bb65a277ce4d93f3fba46b91a265631c8df7250592dd4f11f8b0152150f"}, + {file = "asyncpg-0.30.0-cp310-cp310-win32.whl", hash = "sha256:aa403147d3e07a267ada2ae34dfc9324e67ccc4cdca35261c8c22792ba2b10cf"}, + {file = "asyncpg-0.30.0-cp310-cp310-win_amd64.whl", hash = "sha256:fb622c94db4e13137c4c7f98834185049cc50ee01d8f657ef898b6407c7b9c50"}, + {file = "asyncpg-0.30.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5e0511ad3dec5f6b4f7a9e063591d407eee66b88c14e2ea636f187da1dcfff6a"}, + {file = "asyncpg-0.30.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:915aeb9f79316b43c3207363af12d0e6fd10776641a7de8a01212afd95bdf0ed"}, + {file = "asyncpg-0.30.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c198a00cce9506fcd0bf219a799f38ac7a237745e1d27f0e1f66d3707c84a5a"}, + {file = "asyncpg-0.30.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3326e6d7381799e9735ca2ec9fd7be4d5fef5dcbc3cb555d8a463d8460607956"}, + {file = "asyncpg-0.30.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:51da377487e249e35bd0859661f6ee2b81db11ad1f4fc036194bc9cb2ead5056"}, + {file = "asyncpg-0.30.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bc6d84136f9c4d24d358f3b02be4b6ba358abd09f80737d1ac7c444f36108454"}, + {file = "asyncpg-0.30.0-cp311-cp311-win32.whl", hash = "sha256:574156480df14f64c2d76450a3f3aaaf26105869cad3865041156b38459e935d"}, + {file = "asyncpg-0.30.0-cp311-cp311-win_amd64.whl", hash = "sha256:3356637f0bd830407b5597317b3cb3571387ae52ddc3bca6233682be88bbbc1f"}, + {file = "asyncpg-0.30.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c902a60b52e506d38d7e80e0dd5399f657220f24635fee368117b8b5fce1142e"}, + {file = "asyncpg-0.30.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:aca1548e43bbb9f0f627a04666fedaca23db0a31a84136ad1f868cb15deb6e3a"}, + {file = "asyncpg-0.30.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c2a2ef565400234a633da0eafdce27e843836256d40705d83ab7ec42074efb3"}, + {file = "asyncpg-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1292b84ee06ac8a2ad8e51c7475aa309245874b61333d97411aab835c4a2f737"}, + {file = "asyncpg-0.30.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0f5712350388d0cd0615caec629ad53c81e506b1abaaf8d14c93f54b35e3595a"}, + {file = "asyncpg-0.30.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:db9891e2d76e6f425746c5d2da01921e9a16b5a71a1c905b13f30e12a257c4af"}, + {file = "asyncpg-0.30.0-cp312-cp312-win32.whl", hash = "sha256:68d71a1be3d83d0570049cd1654a9bdfe506e794ecc98ad0873304a9f35e411e"}, + {file = "asyncpg-0.30.0-cp312-cp312-win_amd64.whl", hash = "sha256:9a0292c6af5c500523949155ec17b7fe01a00ace33b68a476d6b5059f9630305"}, + {file = "asyncpg-0.30.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:05b185ebb8083c8568ea8a40e896d5f7af4b8554b64d7719c0eaa1eb5a5c3a70"}, + {file = "asyncpg-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c47806b1a8cbb0a0db896f4cd34d89942effe353a5035c62734ab13b9f938da3"}, + {file = "asyncpg-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b6fde867a74e8c76c71e2f64f80c64c0f3163e687f1763cfaf21633ec24ec33"}, + {file = "asyncpg-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46973045b567972128a27d40001124fbc821c87a6cade040cfcd4fa8a30bcdc4"}, + {file = "asyncpg-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9110df111cabc2ed81aad2f35394a00cadf4f2e0635603db6ebbd0fc896f46a4"}, + {file = "asyncpg-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:04ff0785ae7eed6cc138e73fc67b8e51d54ee7a3ce9b63666ce55a0bf095f7ba"}, + {file = "asyncpg-0.30.0-cp313-cp313-win32.whl", hash = "sha256:ae374585f51c2b444510cdf3595b97ece4f233fde739aa14b50e0d64e8a7a590"}, + {file = "asyncpg-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:f59b430b8e27557c3fb9869222559f7417ced18688375825f8f12302c34e915e"}, + {file = "asyncpg-0.30.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:29ff1fc8b5bf724273782ff8b4f57b0f8220a1b2324184846b39d1ab4122031d"}, + {file = "asyncpg-0.30.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:64e899bce0600871b55368b8483e5e3e7f1860c9482e7f12e0a771e747988168"}, + {file = "asyncpg-0.30.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b290f4726a887f75dcd1b3006f484252db37602313f806e9ffc4e5996cfe5cb"}, + {file = "asyncpg-0.30.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f86b0e2cd3f1249d6fe6fd6cfe0cd4538ba994e2d8249c0491925629b9104d0f"}, + {file = "asyncpg-0.30.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:393af4e3214c8fa4c7b86da6364384c0d1b3298d45803375572f415b6f673f38"}, + {file = "asyncpg-0.30.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:fd4406d09208d5b4a14db9a9dbb311b6d7aeeab57bded7ed2f8ea41aeef39b34"}, + {file = "asyncpg-0.30.0-cp38-cp38-win32.whl", hash = "sha256:0b448f0150e1c3b96cb0438a0d0aa4871f1472e58de14a3ec320dbb2798fb0d4"}, + {file = "asyncpg-0.30.0-cp38-cp38-win_amd64.whl", hash = "sha256:f23b836dd90bea21104f69547923a02b167d999ce053f3d502081acea2fba15b"}, + {file = "asyncpg-0.30.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6f4e83f067b35ab5e6371f8a4c93296e0439857b4569850b178a01385e82e9ad"}, + {file = "asyncpg-0.30.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5df69d55add4efcd25ea2a3b02025b669a285b767bfbf06e356d68dbce4234ff"}, + {file = "asyncpg-0.30.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3479a0d9a852c7c84e822c073622baca862d1217b10a02dd57ee4a7a081f708"}, + {file = "asyncpg-0.30.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26683d3b9a62836fad771a18ecf4659a30f348a561279d6227dab96182f46144"}, + {file = "asyncpg-0.30.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1b982daf2441a0ed314bd10817f1606f1c28b1136abd9e4f11335358c2c631cb"}, + {file = "asyncpg-0.30.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1c06a3a50d014b303e5f6fc1e5f95eb28d2cee89cf58384b700da621e5d5e547"}, + {file = "asyncpg-0.30.0-cp39-cp39-win32.whl", hash = "sha256:1b11a555a198b08f5c4baa8f8231c74a366d190755aa4f99aacec5970afe929a"}, + {file = "asyncpg-0.30.0-cp39-cp39-win_amd64.whl", hash = "sha256:8b684a3c858a83cd876f05958823b68e8d14ec01bb0c0d14a6704c5bf9711773"}, + {file = "asyncpg-0.30.0.tar.gz", hash = "sha256:c551e9928ab6707602f44811817f82ba3c446e018bfe1d3abecc8ba5f3eac851"}, ] [package.dependencies] -async-timeout = {version = ">=4.0.3", markers = "python_version < \"3.12.0\""} +async-timeout = {version = ">=4.0.3", markers = "python_version < \"3.11.0\""} [package.extras] -docs = ["Sphinx (>=5.3.0,<5.4.0)", "sphinx-rtd-theme (>=1.2.2)", "sphinxcontrib-asyncio (>=0.3.0,<0.4.0)"] -test = ["flake8 (>=6.1,<7.0)", "uvloop (>=0.15.3)"] +docs = ["Sphinx (>=8.1.3,<8.2.0)", "sphinx-rtd-theme (>=1.2.2)"] +gssauth = ["gssapi", "sspilib"] +test = ["distro (>=1.9.0,<1.10.0)", "flake8 (>=6.1,<7.0)", "flake8-pyi (>=24.1.0,<24.2.0)", "gssapi", "k5test", "mypy (>=1.8.0,<1.9.0)", "sspilib", "uvloop (>=0.15.3)"] [[package]] name = "attrs" -version = "23.2.0" +version = "24.2.0" description = "Classes Without Boilerplate" +category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"}, - {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"}, + {file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"}, + {file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"}, ] [package.extras] -cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] -dev = ["attrs[tests]", "pre-commit"] -docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] -tests = ["attrs[tests-no-zope]", "zope-interface"] -tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"] -tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] [[package]] name = "babel" -version = "2.15.0" +version = "2.16.0" description = "Internationalization utilities" +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "Babel-2.15.0-py3-none-any.whl", hash = "sha256:08706bdad8d0a3413266ab61bd6c34d0c28d6e1e7badf40a2cebe67644e2e1fb"}, - {file = "babel-2.15.0.tar.gz", hash = "sha256:8daf0e265d05768bc6c7a314cf1321e9a123afc328cc635c18622a2f30a04413"}, + {file = "babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b"}, + {file = "babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316"}, ] [package.extras] @@ -342,6 +365,7 @@ dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] name = "backoff" version = "2.2.1" description = "Function decoration for backoff and retry" +category = "dev" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -351,26 +375,28 @@ files = [ [[package]] name = "beartype" -version = "0.18.5" -description = "Unbearably fast runtime type checking in pure Python." +version = "0.19.0" +description = "Unbearably fast near-real-time hybrid runtime-static type-checking in pure Python." +category = "dev" optional = false -python-versions = ">=3.8.0" +python-versions = ">=3.8" files = [ - {file = "beartype-0.18.5-py3-none-any.whl", hash = "sha256:5301a14f2a9a5540fe47ec6d34d758e9cd8331d36c4760fc7a5499ab86310089"}, - {file = "beartype-0.18.5.tar.gz", hash = "sha256:264ddc2f1da9ec94ff639141fbe33d22e12a9f75aa863b83b7046ffff1381927"}, + {file = "beartype-0.19.0-py3-none-any.whl", hash = "sha256:33b2694eda0daf052eb2aff623ed9a8a586703bbf0a90bbc475a83bbf427f699"}, + {file = "beartype-0.19.0.tar.gz", hash = "sha256:de42dfc1ba5c3710fde6c3002e3bd2cad236ed4d2aabe876345ab0b4234a6573"}, ] [package.extras] -all = ["typing-extensions (>=3.10.0.0)"] -dev = ["autoapi (>=0.9.0)", "coverage (>=5.5)", "equinox", "mypy (>=0.800)", "numpy", "pandera", "pydata-sphinx-theme (<=0.7.2)", "pytest (>=4.0.0)", "sphinx", "sphinx (>=4.2.0,<6.0.0)", "sphinxext-opengraph (>=0.7.5)", "tox (>=3.20.1)", "typing-extensions (>=3.10.0.0)"] +dev = ["autoapi (>=0.9.0)", "coverage (>=5.5)", "equinox", "jax[cpu]", "jaxtyping", "mypy (>=0.800)", "numba", "numpy", "pandera", "pydata-sphinx-theme (<=0.7.2)", "pygments", "pyright (>=1.1.370)", "pytest (>=4.0.0)", "sphinx", "sphinx (>=4.2.0,<6.0.0)", "sphinxext-opengraph (>=0.7.5)", "tox (>=3.20.1)", "typing-extensions (>=3.10.0.0)"] doc-rtd = ["autoapi (>=0.9.0)", "pydata-sphinx-theme (<=0.7.2)", "sphinx (>=4.2.0,<6.0.0)", "sphinxext-opengraph (>=0.7.5)"] -test-tox = ["equinox", "mypy (>=0.800)", "numpy", "pandera", "pytest (>=4.0.0)", "sphinx", "typing-extensions (>=3.10.0.0)"] +test = ["coverage (>=5.5)", "equinox", "jax[cpu]", "jaxtyping", "mypy (>=0.800)", "numba", "numpy", "pandera", "pygments", "pyright (>=1.1.370)", "pytest (>=4.0.0)", "sphinx", "tox (>=3.20.1)", "typing-extensions (>=3.10.0.0)"] +test-tox = ["equinox", "jax[cpu]", "jaxtyping", "mypy (>=0.800)", "numba", "numpy", "pandera", "pygments", "pyright (>=1.1.370)", "pytest (>=4.0.0)", "sphinx", "typing-extensions (>=3.10.0.0)"] test-tox-coverage = ["coverage (>=5.5)"] [[package]] name = "beautifulsoup4" version = "4.12.3" description = "Screen-scraping library" +category = "main" optional = false python-versions = ">=3.6.0" files = [ @@ -390,42 +416,44 @@ lxml = ["lxml"] [[package]] name = "bleach" -version = "6.1.0" +version = "6.2.0" description = "An easy safelist-based HTML-sanitizing tool." +category = "dev" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "bleach-6.1.0-py3-none-any.whl", hash = "sha256:3225f354cfc436b9789c66c4ee030194bee0568fbf9cbdad3bc8b5c26c5f12b6"}, - {file = "bleach-6.1.0.tar.gz", hash = "sha256:0a31f1837963c41d46bbf1331b8778e1308ea0791db03cc4e7357b97cf42a8fe"}, + {file = "bleach-6.2.0-py3-none-any.whl", hash = "sha256:117d9c6097a7c3d22fd578fcd8d35ff1e125df6736f554da4e432fdd63f31e5e"}, + {file = "bleach-6.2.0.tar.gz", hash = "sha256:123e894118b8a599fd80d3ec1a6d4cc7ce4e5882b1317a7e1ba69b56e95f991f"}, ] [package.dependencies] -six = ">=1.9.0" webencodings = "*" [package.extras] -css = ["tinycss2 (>=1.1.0,<1.3)"] +css = ["tinycss2 (>=1.1.0,<1.5)"] [[package]] name = "blinker" -version = "1.8.2" +version = "1.9.0" description = "Fast, simple object-to-object and broadcast signaling" +category = "dev" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "blinker-1.8.2-py3-none-any.whl", hash = "sha256:1779309f71bf239144b9399d06ae925637cf6634cf6bd131104184531bf67c01"}, - {file = "blinker-1.8.2.tar.gz", hash = "sha256:8f77b09d3bf7c795e969e9486f39c2c5e9c39d4ee07424be2bc594ece9642d83"}, + {file = "blinker-1.9.0-py3-none-any.whl", hash = "sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc"}, + {file = "blinker-1.9.0.tar.gz", hash = "sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf"}, ] [[package]] name = "branca" -version = "0.7.2" +version = "0.8.0" description = "Generate complex HTML+JS pages with Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "branca-0.7.2-py3-none-any.whl", hash = "sha256:853a359c34d08fd06498be762d8be9932750db4049cac11e25dd6f23562e25c2"}, - {file = "branca-0.7.2.tar.gz", hash = "sha256:ca4c94643ef31b819987ca5bd19c6009ea17b440baa3aac04628545f7a4da023"}, + {file = "branca-0.8.0-py3-none-any.whl", hash = "sha256:e78d5be39c8799a42e5c2dd1145a797a3cefc099537907bc1e4c43b6b55f7fa4"}, + {file = "branca-0.8.0.tar.gz", hash = "sha256:1f8fd0d2f3b7548f2c146093932be5d3064ba21eee6cebf92d416b7f9092324f"}, ] [package.dependencies] @@ -435,6 +463,7 @@ jinja2 = ">=3" name = "brotli" version = "1.1.0" description = "Python bindings for the Brotli compression library" +category = "dev" optional = false python-versions = "*" files = [ @@ -448,10 +477,6 @@ files = [ {file = "Brotli-1.1.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a37b8f0391212d29b3a91a799c8e4a2855e0576911cdfb2515487e30e322253d"}, {file = "Brotli-1.1.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e84799f09591700a4154154cab9787452925578841a94321d5ee8fb9a9a328f0"}, {file = "Brotli-1.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f66b5337fa213f1da0d9000bc8dc0cb5b896b726eefd9c6046f699b169c41b9e"}, - {file = "Brotli-1.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5dab0844f2cf82be357a0eb11a9087f70c5430b2c241493fc122bb6f2bb0917c"}, - {file = "Brotli-1.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e4fe605b917c70283db7dfe5ada75e04561479075761a0b3866c081d035b01c1"}, - {file = "Brotli-1.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:1e9a65b5736232e7a7f91ff3d02277f11d339bf34099a56cdab6a8b3410a02b2"}, - {file = "Brotli-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:58d4b711689366d4a03ac7957ab8c28890415e267f9b6589969e74b6e42225ec"}, {file = "Brotli-1.1.0-cp310-cp310-win32.whl", hash = "sha256:be36e3d172dc816333f33520154d708a2657ea63762ec16b62ece02ab5e4daf2"}, {file = "Brotli-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:0c6244521dda65ea562d5a69b9a26120769b7a9fb3db2fe9545935ed6735b128"}, {file = "Brotli-1.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a3daabb76a78f829cafc365531c972016e4aa8d5b4bf60660ad8ecee19df7ccc"}, @@ -464,14 +489,8 @@ files = [ {file = "Brotli-1.1.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:19c116e796420b0cee3da1ccec3b764ed2952ccfcc298b55a10e5610ad7885f9"}, {file = "Brotli-1.1.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:510b5b1bfbe20e1a7b3baf5fed9e9451873559a976c1a78eebaa3b86c57b4265"}, {file = "Brotli-1.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a1fd8a29719ccce974d523580987b7f8229aeace506952fa9ce1d53a033873c8"}, - {file = "Brotli-1.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c247dd99d39e0338a604f8c2b3bc7061d5c2e9e2ac7ba9cc1be5a69cb6cd832f"}, - {file = "Brotli-1.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1b2c248cd517c222d89e74669a4adfa5577e06ab68771a529060cf5a156e9757"}, - {file = "Brotli-1.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:2a24c50840d89ded6c9a8fdc7b6ed3692ed4e86f1c4a4a938e1e92def92933e0"}, - {file = "Brotli-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f31859074d57b4639318523d6ffdca586ace54271a73ad23ad021acd807eb14b"}, {file = "Brotli-1.1.0-cp311-cp311-win32.whl", hash = "sha256:39da8adedf6942d76dc3e46653e52df937a3c4d6d18fdc94a7c29d263b1f5b50"}, {file = "Brotli-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:aac0411d20e345dc0920bdec5548e438e999ff68d77564d5e9463a7ca9d3e7b1"}, - {file = "Brotli-1.1.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:32d95b80260d79926f5fab3c41701dbb818fde1c9da590e77e571eefd14abe28"}, - {file = "Brotli-1.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b760c65308ff1e462f65d69c12e4ae085cff3b332d894637f6273a12a482d09f"}, {file = "Brotli-1.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:316cc9b17edf613ac76b1f1f305d2a748f1b976b033b049a6ecdfd5612c70409"}, {file = "Brotli-1.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:caf9ee9a5775f3111642d33b86237b05808dafcd6268faa492250e9b78046eb2"}, {file = "Brotli-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70051525001750221daa10907c77830bc889cb6d865cc0b813d9db7fefc21451"}, @@ -482,24 +501,8 @@ files = [ {file = "Brotli-1.1.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:4093c631e96fdd49e0377a9c167bfd75b6d0bad2ace734c6eb20b348bc3ea180"}, {file = "Brotli-1.1.0-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e4c4629ddad63006efa0ef968c8e4751c5868ff0b1c5c40f76524e894c50248"}, {file = "Brotli-1.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:861bf317735688269936f755fa136a99d1ed526883859f86e41a5d43c61d8966"}, - {file = "Brotli-1.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:87a3044c3a35055527ac75e419dfa9f4f3667a1e887ee80360589eb8c90aabb9"}, - {file = "Brotli-1.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c5529b34c1c9d937168297f2c1fde7ebe9ebdd5e121297ff9c043bdb2ae3d6fb"}, - {file = "Brotli-1.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ca63e1890ede90b2e4454f9a65135a4d387a4585ff8282bb72964fab893f2111"}, - {file = "Brotli-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e79e6520141d792237c70bcd7a3b122d00f2613769ae0cb61c52e89fd3443839"}, {file = "Brotli-1.1.0-cp312-cp312-win32.whl", hash = "sha256:5f4d5ea15c9382135076d2fb28dde923352fe02951e66935a9efaac8f10e81b0"}, {file = "Brotli-1.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:906bc3a79de8c4ae5b86d3d75a8b77e44404b0f4261714306e3ad248d8ab0951"}, - {file = "Brotli-1.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8bf32b98b75c13ec7cf774164172683d6e7891088f6316e54425fde1efc276d5"}, - {file = "Brotli-1.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7bc37c4d6b87fb1017ea28c9508b36bbcb0c3d18b4260fcdf08b200c74a6aee8"}, - {file = "Brotli-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c0ef38c7a7014ffac184db9e04debe495d317cc9c6fb10071f7fefd93100a4f"}, - {file = "Brotli-1.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91d7cc2a76b5567591d12c01f019dd7afce6ba8cba6571187e21e2fc418ae648"}, - {file = "Brotli-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a93dde851926f4f2678e704fadeb39e16c35d8baebd5252c9fd94ce8ce68c4a0"}, - {file = "Brotli-1.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f0db75f47be8b8abc8d9e31bc7aad0547ca26f24a54e6fd10231d623f183d089"}, - {file = "Brotli-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6967ced6730aed543b8673008b5a391c3b1076d834ca438bbd70635c73775368"}, - {file = "Brotli-1.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7eedaa5d036d9336c95915035fb57422054014ebdeb6f3b42eac809928e40d0c"}, - {file = "Brotli-1.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d487f5432bf35b60ed625d7e1b448e2dc855422e87469e3f450aa5552b0eb284"}, - {file = "Brotli-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:832436e59afb93e1836081a20f324cb185836c617659b07b129141a8426973c7"}, - {file = "Brotli-1.1.0-cp313-cp313-win32.whl", hash = "sha256:43395e90523f9c23a3d5bdf004733246fba087f2948f87ab28015f12359ca6a0"}, - {file = "Brotli-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:9011560a466d2eb3f5a6e4929cf4a09be405c64154e12df0dd72713f6500e32b"}, {file = "Brotli-1.1.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:a090ca607cbb6a34b0391776f0cb48062081f5f60ddcce5d11838e67a01928d1"}, {file = "Brotli-1.1.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2de9d02f5bda03d27ede52e8cfe7b865b066fa49258cbab568720aa5be80a47d"}, {file = "Brotli-1.1.0-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2333e30a5e00fe0fe55903c8832e08ee9c3b1382aacf4db26664a16528d51b4b"}, @@ -509,10 +512,6 @@ files = [ {file = "Brotli-1.1.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:fd5f17ff8f14003595ab414e45fce13d073e0762394f957182e69035c9f3d7c2"}, {file = "Brotli-1.1.0-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:069a121ac97412d1fe506da790b3e69f52254b9df4eb665cd42460c837193354"}, {file = "Brotli-1.1.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:e93dfc1a1165e385cc8239fab7c036fb2cd8093728cbd85097b284d7b99249a2"}, - {file = "Brotli-1.1.0-cp36-cp36m-musllinux_1_2_aarch64.whl", hash = "sha256:aea440a510e14e818e67bfc4027880e2fb500c2ccb20ab21c7a7c8b5b4703d75"}, - {file = "Brotli-1.1.0-cp36-cp36m-musllinux_1_2_i686.whl", hash = "sha256:6974f52a02321b36847cd19d1b8e381bf39939c21efd6ee2fc13a28b0d99348c"}, - {file = "Brotli-1.1.0-cp36-cp36m-musllinux_1_2_ppc64le.whl", hash = "sha256:a7e53012d2853a07a4a79c00643832161a910674a893d296c9f1259859a289d2"}, - {file = "Brotli-1.1.0-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:d7702622a8b40c49bffb46e1e3ba2e81268d5c04a34f460978c6b5517a34dd52"}, {file = "Brotli-1.1.0-cp36-cp36m-win32.whl", hash = "sha256:a599669fd7c47233438a56936988a2478685e74854088ef5293802123b5b2460"}, {file = "Brotli-1.1.0-cp36-cp36m-win_amd64.whl", hash = "sha256:d143fd47fad1db3d7c27a1b1d66162e855b5d50a89666af46e1679c496e8e579"}, {file = "Brotli-1.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:11d00ed0a83fa22d29bc6b64ef636c4552ebafcef57154b4ddd132f5638fbd1c"}, @@ -524,10 +523,6 @@ files = [ {file = "Brotli-1.1.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:919e32f147ae93a09fe064d77d5ebf4e35502a8df75c29fb05788528e330fe74"}, {file = "Brotli-1.1.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:23032ae55523cc7bccb4f6a0bf368cd25ad9bcdcc1990b64a647e7bbcce9cb5b"}, {file = "Brotli-1.1.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:224e57f6eac61cc449f498cc5f0e1725ba2071a3d4f48d5d9dffba42db196438"}, - {file = "Brotli-1.1.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:cb1dac1770878ade83f2ccdf7d25e494f05c9165f5246b46a621cc849341dc01"}, - {file = "Brotli-1.1.0-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:3ee8a80d67a4334482d9712b8e83ca6b1d9bc7e351931252ebef5d8f7335a547"}, - {file = "Brotli-1.1.0-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:5e55da2c8724191e5b557f8e18943b1b4839b8efc3ef60d65985bcf6f587dd38"}, - {file = "Brotli-1.1.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:d342778ef319e1026af243ed0a07c97acf3bad33b9f29e7ae6a1f68fd083e90c"}, {file = "Brotli-1.1.0-cp37-cp37m-win32.whl", hash = "sha256:587ca6d3cef6e4e868102672d3bd9dc9698c309ba56d41c2b9c85bbb903cdb95"}, {file = "Brotli-1.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:2954c1c23f81c2eaf0b0717d9380bd348578a94161a65b3a2afc62c86467dd68"}, {file = "Brotli-1.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:efa8b278894b14d6da122a72fefcebc28445f2d3f880ac59d46c90f4c13be9a3"}, @@ -540,10 +535,6 @@ files = [ {file = "Brotli-1.1.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ab4fbee0b2d9098c74f3057b2bc055a8bd92ccf02f65944a241b4349229185a"}, {file = "Brotli-1.1.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:141bd4d93984070e097521ed07e2575b46f817d08f9fa42b16b9b5f27b5ac088"}, {file = "Brotli-1.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fce1473f3ccc4187f75b4690cfc922628aed4d3dd013d047f95a9b3919a86596"}, - {file = "Brotli-1.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d2b35ca2c7f81d173d2fadc2f4f31e88cc5f7a39ae5b6db5513cf3383b0e0ec7"}, - {file = "Brotli-1.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:af6fa6817889314555aede9a919612b23739395ce767fe7fcbea9a80bf140fe5"}, - {file = "Brotli-1.1.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:2feb1d960f760a575dbc5ab3b1c00504b24caaf6986e2dc2b01c09c87866a943"}, - {file = "Brotli-1.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:4410f84b33374409552ac9b6903507cdb31cd30d2501fc5ca13d18f73548444a"}, {file = "Brotli-1.1.0-cp38-cp38-win32.whl", hash = "sha256:db85ecf4e609a48f4b29055f1e144231b90edc90af7481aa731ba2d059226b1b"}, {file = "Brotli-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:3d7954194c36e304e1523f55d7042c59dc53ec20dd4e9ea9d151f1b62b4415c0"}, {file = "Brotli-1.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5fb2ce4b8045c78ebbc7b8f3c15062e435d47e7393cc57c25115cfd49883747a"}, @@ -556,10 +547,6 @@ files = [ {file = "Brotli-1.1.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:949f3b7c29912693cee0afcf09acd6ebc04c57af949d9bf77d6101ebb61e388c"}, {file = "Brotli-1.1.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:89f4988c7203739d48c6f806f1e87a1d96e0806d44f0fba61dba81392c9e474d"}, {file = "Brotli-1.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:de6551e370ef19f8de1807d0a9aa2cdfdce2e85ce88b122fe9f6b2b076837e59"}, - {file = "Brotli-1.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0737ddb3068957cf1b054899b0883830bb1fec522ec76b1098f9b6e0f02d9419"}, - {file = "Brotli-1.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:4f3607b129417e111e30637af1b56f24f7a49e64763253bbc275c75fa887d4b2"}, - {file = "Brotli-1.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:6c6e0c425f22c1c719c42670d561ad682f7bfeeef918edea971a79ac5252437f"}, - {file = "Brotli-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:494994f807ba0b92092a163a0a283961369a65f6cbe01e8891132b7a320e61eb"}, {file = "Brotli-1.1.0-cp39-cp39-win32.whl", hash = "sha256:f0d8a7a6b5983c2496e364b969f0e526647a06b075d034f3297dc66f3b360c64"}, {file = "Brotli-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:cdad5b9014d83ca68c25d2e9444e28e967ef16e80f6b436918c700c117a85467"}, {file = "Brotli-1.1.0.tar.gz", hash = "sha256:81de08ac11bcb85841e440c13611c00b67d3bf82698314928d0b676362546724"}, @@ -567,24 +554,26 @@ files = [ [[package]] name = "cachetools" -version = "5.4.0" +version = "5.5.0" description = "Extensible memoizing collections and decorators" +category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "cachetools-5.4.0-py3-none-any.whl", hash = "sha256:3ae3b49a3d5e28a77a0be2b37dbcb89005058959cb2323858c2657c4a8cab474"}, - {file = "cachetools-5.4.0.tar.gz", hash = "sha256:b8adc2e7c07f105ced7bc56dbb6dfbe7c4a00acce20e2227b3f355be89bc6827"}, + {file = "cachetools-5.5.0-py3-none-any.whl", hash = "sha256:02134e8439cdc2ffb62023ce1debca2944c3f289d66bb17ead3ab3dede74b292"}, + {file = "cachetools-5.5.0.tar.gz", hash = "sha256:2cc24fb4cbe39633fb7badd9db9ca6295d766d9c2995f245725a46715d050f2a"}, ] [[package]] name = "cattrs" -version = "23.2.3" +version = "24.1.2" description = "Composable complex class support for attrs and dataclasses." +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "cattrs-23.2.3-py3-none-any.whl", hash = "sha256:0341994d94971052e9ee70662542699a3162ea1e0c62f7ce1b4a57f563685108"}, - {file = "cattrs-23.2.3.tar.gz", hash = "sha256:a934090d95abaa9e911dac357e3a8699e0b4b14f8529bcc7d2b1ad9d51672b9f"}, + {file = "cattrs-24.1.2-py3-none-any.whl", hash = "sha256:67c7495b760168d931a10233f979b28dc04daf853b30752246f4f8471c6d68d0"}, + {file = "cattrs-24.1.2.tar.gz", hash = "sha256:8028cfe1ff5382df59dd36474a86e02d817b06eaf8af84555441bac915d2ef85"}, ] [package.dependencies] @@ -596,6 +585,7 @@ typing-extensions = {version = ">=4.1.0,<4.6.3 || >4.6.3", markers = "python_ver bson = ["pymongo (>=4.4.0)"] cbor2 = ["cbor2 (>=5.4.6)"] msgpack = ["msgpack (>=1.0.5)"] +msgspec = ["msgspec (>=0.18.5)"] orjson = ["orjson (>=3.9.2)"] pyyaml = ["pyyaml (>=6.0)"] tomlkit = ["tomlkit (>=0.11.8)"] @@ -603,74 +593,91 @@ ujson = ["ujson (>=5.7.0)"] [[package]] name = "certifi" -version = "2024.2.2" +version = "2024.8.30" description = "Python package for providing Mozilla's CA Bundle." +category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, - {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, + {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, + {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, ] [[package]] name = "cffi" -version = "1.16.0" +version = "1.17.1" description = "Foreign Function Interface for Python calling C code." +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, - {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, - {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, - {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, - {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, - {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, - {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, - {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, - {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, - {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, - {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, - {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, - {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, - {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, - {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, - {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, - {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, - {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, - {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, - {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, - {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, - {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, - {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, - {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, - {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, - {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, - {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, + {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, + {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, ] [package.dependencies] @@ -680,6 +687,7 @@ pycparser = "*" name = "cfgv" version = "3.4.0" description = "Validate configuration and produce human readable error messages." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -689,41 +697,48 @@ files = [ [[package]] name = "cftime" -version = "1.6.4" +version = "1.6.4.post1" description = "Time-handling functionality from netcdf4-python" +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "cftime-1.6.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ee70074df4bae0d9ee98f201cf5f11fd302791cf1cdeb73c34f685d6b632e17d"}, - {file = "cftime-1.6.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e5456fd58d4cc6b8d7b4932b749617ee142b62a52bc5d8e3c282ce69ce3a20ba"}, - {file = "cftime-1.6.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1289e08617be350a6b26c6e4352a0cb088625ac33d25e95110df549c26d6ab8e"}, - {file = "cftime-1.6.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18b132d9225b4a109929866200846c72302316db9069e2de3ec8d8ec377f567f"}, - {file = "cftime-1.6.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ca1a264570e68fbb611bba251641b8efd0cf88c0ad2dcab5fa784df264232b75"}, - {file = "cftime-1.6.4-cp310-cp310-win_amd64.whl", hash = "sha256:6fc82928cbf477bebf233f41914e64bff7b9e894c7f0c34170784a48250f8da7"}, - {file = "cftime-1.6.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c1558d9b477bd29626cd8bfc89e736635f72887d1a993e2834ab579bba7abb8c"}, - {file = "cftime-1.6.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:03494e7b66a2fbb6b04e364ab67185130dee0ced660abac5c1559070571d143d"}, - {file = "cftime-1.6.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dcb2a01d4e614437582af33b36db4fb441b7666758482864827a1f037d2b639"}, - {file = "cftime-1.6.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b47bf25195fb3889bbae34df0e80957eb69c48f66902f5d538c7a8ec34253f6"}, - {file = "cftime-1.6.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d4f2cc0d5c6ffba9c5b0fd1ecd0c7c1c426d0be7b8de1480e2a9fb857c1905e9"}, - {file = "cftime-1.6.4-cp311-cp311-win_amd64.whl", hash = "sha256:76b8f1e5d1e424accdf760a43e0a1793a7b640bab83cb067273d5c9dbb336c44"}, - {file = "cftime-1.6.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c349a91fa7ac9ec50118b04a8746bdea967bd2fc525d87c776003040b8d3392"}, - {file = "cftime-1.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:588d073400798adc24ece759cd1cb24ef730f55d1f70e31a898e7686f9d763d8"}, - {file = "cftime-1.6.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e07b91b488570573bbeb6f815656a8974d13d15b2279c82de2927f4f692bbcd"}, - {file = "cftime-1.6.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f92f2e405eeda47b30ab6231d8b7d136a55f21034d394f93ade322d356948654"}, - {file = "cftime-1.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:567574df94d0de1101bb5da76e7fbc6eabfddeeb2eb8cf83286b3599a136bbf7"}, - {file = "cftime-1.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:5b5ad7559a16bedadb66af8e417b6805f758acb57aa38d2730844dfc63a1e667"}, - {file = "cftime-1.6.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c072fe9e09925af66a9473edf5752ca1890ba752e7c1935d1f0245ad48f0977c"}, - {file = "cftime-1.6.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c05a71389f53d6340cb365b60f028c08268c72401660b9ef76108dee9f1cb5b2"}, - {file = "cftime-1.6.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0edeb1cb019d8155b2513cffb96749c0d7d459370e69bdf03077e0bee214aed8"}, - {file = "cftime-1.6.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8f05d5d6bb4137f9783fa61ad330030fcea8dcc6946dea69a27774edbe480e7"}, - {file = "cftime-1.6.4-cp38-cp38-win_amd64.whl", hash = "sha256:b32ac1278a2a111b066d5a1e6e5ce6f38c4c505993a6a3130873b56f99d7b56f"}, - {file = "cftime-1.6.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c20f03e12af39534c3450bba376272803bfb850b5ce6433c839bfaa99f8d835a"}, - {file = "cftime-1.6.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:90609b3c1a31a756a68ecdbc961a4ce0b22c1620f166c8dabfa3a4c337ac8b9e"}, - {file = "cftime-1.6.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbe11ad73b2a0ddc79995da21459fc2a3fd6b1593ca73f00a60e4d81c3e230f3"}, - {file = "cftime-1.6.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25f043703e785de0bd7cd8222c0a53317e9aeb3dfc062588b05e6f3ebb007468"}, - {file = "cftime-1.6.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f9acc272df1022f24fe7dbe9de43fa5d8271985161df14549e4d8d28c90dc9ea"}, - {file = "cftime-1.6.4-cp39-cp39-win_amd64.whl", hash = "sha256:e8467b6fbf8dbfe0be8c04d61180765fdd3b9ab0fe51313a0bbf87e63634a3d8"}, - {file = "cftime-1.6.4.tar.gz", hash = "sha256:e325406193758a7ed67308deb52e727782a19e384e183378e7ff62098be0aedc"}, + {file = "cftime-1.6.4.post1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0baa9bc4850929da9f92c25329aa1f651e2d6f23e237504f337ee9e12a769f5d"}, + {file = "cftime-1.6.4.post1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6bb6b087f4b2513c37670bccd457e2a666ca489c5f2aad6e2c0e94604dc1b5b9"}, + {file = "cftime-1.6.4.post1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7d9bdeb9174962c9ca00015190bfd693de6b0ec3ec0b3dbc35c693a4f48efdcc"}, + {file = "cftime-1.6.4.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e735cfd544878eb94d0108ff5a093bd1a332dba90f979a31a357756d609a90d5"}, + {file = "cftime-1.6.4.post1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1dcd1b140bf50da6775c56bd7ca179e84bd258b2f159b53eefd5c514b341f2bf"}, + {file = "cftime-1.6.4.post1-cp310-cp310-win_amd64.whl", hash = "sha256:e60b8f24b20753f7548f410f7510e28b941f336f84bd34e3cfd7874af6e70281"}, + {file = "cftime-1.6.4.post1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1bf7be0a0afc87628cb8c8483412aac6e48e83877004faa0936afb5bf8a877ba"}, + {file = "cftime-1.6.4.post1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0f64ca83acc4e3029f737bf3a32530ffa1fbf53124f5bee70b47548bc58671a7"}, + {file = "cftime-1.6.4.post1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7ebdfd81726b0cfb8b524309224fa952898dfa177c13d5f6af5b18cefbf497d"}, + {file = "cftime-1.6.4.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9ea0965a4c87739aebd84fe8eed966e5809d10065eeffd35c99c274b6f8da15"}, + {file = "cftime-1.6.4.post1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:800a18aea4e8cb2b206450397cb8a53b154798738af3cdd3c922ce1ca198b0e6"}, + {file = "cftime-1.6.4.post1-cp311-cp311-win_amd64.whl", hash = "sha256:5dcfc872f455db1f12eabe3c3ba98e93757cd60ed3526a53246e966ccde46c8a"}, + {file = "cftime-1.6.4.post1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a590f73506f4704ba5e154ef55bfbaed5e1b4ac170f3caeb8c58e4f2c619ee4e"}, + {file = "cftime-1.6.4.post1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:933cb10e1af4e362e77f513e3eb92b34a688729ddbf938bbdfa5ac20a7f44ba0"}, + {file = "cftime-1.6.4.post1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf17a1b36f62e9e73c4c9363dd811e1bbf1170f5ac26d343fb26012ccf482908"}, + {file = "cftime-1.6.4.post1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e18021f421aa26527bad8688c1acf0c85fa72730beb6efce969c316743294f2"}, + {file = "cftime-1.6.4.post1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5835b9d622f9304d1c23a35603a0f068739f428d902860f25e6e7e5a1b7cd8ea"}, + {file = "cftime-1.6.4.post1-cp312-cp312-win_amd64.whl", hash = "sha256:7f50bf0d1b664924aaee636eb2933746b942417d1f8b82ab6c1f6e8ba0da6885"}, + {file = "cftime-1.6.4.post1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5c89766ebf088c097832ea618c24ed5075331f0b7bf8e9c2d4144aefbf2f1850"}, + {file = "cftime-1.6.4.post1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7f27113f7ccd1ca32881fdcb9a4bec806a5f54ae621fc1c374f1171f3ed98ef2"}, + {file = "cftime-1.6.4.post1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da367b23eea7cf4df071c88e014a1600d6c5bbf22e3393a4af409903fa397e28"}, + {file = "cftime-1.6.4.post1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6579c5c83cdf09d73aa94c7bc34925edd93c5f2c7dd28e074f568f7e376271a0"}, + {file = "cftime-1.6.4.post1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6b731c7133d17b479ca0c3c46a7a04f96197f0a4d753f4c2284c3ff0447279b4"}, + {file = "cftime-1.6.4.post1-cp313-cp313-win_amd64.whl", hash = "sha256:d2a8c223faea7f1248ab469cc0d7795dd46f2a423789038f439fee7190bae259"}, + {file = "cftime-1.6.4.post1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9df3e2d49e548c62d1939e923800b08d2ab732d3ac8d75b857edd7982c878552"}, + {file = "cftime-1.6.4.post1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2892b7e7654142d825655f60eb66c3e1af745901890316907071d44cf9a18d8a"}, + {file = "cftime-1.6.4.post1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4ab54e6c04e68395d454cd4001188fc4ade2fe48035589ed65af80c4527ef08"}, + {file = "cftime-1.6.4.post1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:568b69fc52f406e361db62a4d7a219c6fb0ced138937144c3b3a511648dd6c50"}, + {file = "cftime-1.6.4.post1-cp38-cp38-win_amd64.whl", hash = "sha256:640911d2629f4a8f81f6bc0163a983b6b94f86d1007449b8cbfd926136cda253"}, + {file = "cftime-1.6.4.post1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:44e9f8052600803b55f8cb6bcac2be49405c21efa900ec77a9fb7f692db2f7a6"}, + {file = "cftime-1.6.4.post1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a90b6ef4a3fc65322c212a2c99cec75d1886f1ebaf0ff6189f7b327566762222"}, + {file = "cftime-1.6.4.post1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:652700130dbcca3ae36dbb5b61ff360e62aa09fabcabc42ec521091a14389901"}, + {file = "cftime-1.6.4.post1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24a7fb6cc541a027dab37fdeb695f8a2b21cd7d200be606f81b5abc38f2391e2"}, + {file = "cftime-1.6.4.post1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:fc2c0abe2dbd147e1b1e6d0f3de19a5ea8b04956acc204830fd8418066090989"}, + {file = "cftime-1.6.4.post1-cp39-cp39-win_amd64.whl", hash = "sha256:0ee2f5af8643aa1b47b7e388763a1a6e0dc05558cd2902cffb9cbcf954397648"}, + {file = "cftime-1.6.4.post1.tar.gz", hash = "sha256:50ac76cc9f10ab7bd46e44a71c51a6927051b499b4407df4f29ab13d741b942f"}, ] [package.dependencies] @@ -734,107 +749,124 @@ numpy = [ [[package]] name = "charset-normalizer" -version = "3.3.2" +version = "3.4.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.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, - {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-win32.whl", hash = "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-win32.whl", hash = "sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-win32.whl", hash = "sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-win32.whl", hash = "sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca"}, + {file = "charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079"}, + {file = "charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e"}, ] [[package]] name = "click" version = "8.1.7" description = "Composable command line interface toolkit" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -847,19 +879,21 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} [[package]] name = "cloudpickle" -version = "3.0.0" +version = "3.1.0" description = "Pickler class to extend the standard pickle.Pickler functionality" +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "cloudpickle-3.0.0-py3-none-any.whl", hash = "sha256:246ee7d0c295602a036e86369c77fecda4ab17b506496730f2f576d9016fd9c7"}, - {file = "cloudpickle-3.0.0.tar.gz", hash = "sha256:996d9a482c6fb4f33c1a35335cf8afd065d2a56e973270364840712d9131a882"}, + {file = "cloudpickle-3.1.0-py3-none-any.whl", hash = "sha256:fe11acda67f61aaaec473e3afe030feb131d78a43461b718185363384f1ba12e"}, + {file = "cloudpickle-3.1.0.tar.gz", hash = "sha256:81a929b6e3c7335c863c771d673d105f02efdb89dfaba0c90495d1c64796601b"}, ] [[package]] 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 = [ @@ -871,6 +905,7 @@ files = [ name = "comm" version = "0.2.2" description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -888,6 +923,7 @@ test = ["pytest"] name = "configargparse" version = "1.7" description = "A drop-in replacement for argparse that allows options to also be set via config files and/or environment variables." +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -901,71 +937,83 @@ yaml = ["PyYAML"] [[package]] name = "contourpy" -version = "1.2.1" +version = "1.3.1" description = "Python library for calculating contours of 2D quadrilateral grids" +category = "main" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" files = [ - {file = "contourpy-1.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bd7c23df857d488f418439686d3b10ae2fbf9bc256cd045b37a8c16575ea1040"}, - {file = "contourpy-1.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5b9eb0ca724a241683c9685a484da9d35c872fd42756574a7cfbf58af26677fd"}, - {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c75507d0a55378240f781599c30e7776674dbaf883a46d1c90f37e563453480"}, - {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11959f0ce4a6f7b76ec578576a0b61a28bdc0696194b6347ba3f1c53827178b9"}, - {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eb3315a8a236ee19b6df481fc5f997436e8ade24a9f03dfdc6bd490fea20c6da"}, - {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39f3ecaf76cd98e802f094e0d4fbc6dc9c45a8d0c4d185f0f6c2234e14e5f75b"}, - {file = "contourpy-1.2.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:94b34f32646ca0414237168d68a9157cb3889f06b096612afdd296003fdd32fd"}, - {file = "contourpy-1.2.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:457499c79fa84593f22454bbd27670227874cd2ff5d6c84e60575c8b50a69619"}, - {file = "contourpy-1.2.1-cp310-cp310-win32.whl", hash = "sha256:ac58bdee53cbeba2ecad824fa8159493f0bf3b8ea4e93feb06c9a465d6c87da8"}, - {file = "contourpy-1.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:9cffe0f850e89d7c0012a1fb8730f75edd4320a0a731ed0c183904fe6ecfc3a9"}, - {file = "contourpy-1.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6022cecf8f44e36af10bd9118ca71f371078b4c168b6e0fab43d4a889985dbb5"}, - {file = "contourpy-1.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ef5adb9a3b1d0c645ff694f9bca7702ec2c70f4d734f9922ea34de02294fdf72"}, - {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6150ffa5c767bc6332df27157d95442c379b7dce3a38dff89c0f39b63275696f"}, - {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c863140fafc615c14a4bf4efd0f4425c02230eb8ef02784c9a156461e62c965"}, - {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:00e5388f71c1a0610e6fe56b5c44ab7ba14165cdd6d695429c5cd94021e390b2"}, - {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4492d82b3bc7fbb7e3610747b159869468079fe149ec5c4d771fa1f614a14df"}, - {file = "contourpy-1.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:49e70d111fee47284d9dd867c9bb9a7058a3c617274900780c43e38d90fe1205"}, - {file = "contourpy-1.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b59c0ffceff8d4d3996a45f2bb6f4c207f94684a96bf3d9728dbb77428dd8cb8"}, - {file = "contourpy-1.2.1-cp311-cp311-win32.whl", hash = "sha256:7b4182299f251060996af5249c286bae9361fa8c6a9cda5efc29fe8bfd6062ec"}, - {file = "contourpy-1.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2855c8b0b55958265e8b5888d6a615ba02883b225f2227461aa9127c578a4922"}, - {file = "contourpy-1.2.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:62828cada4a2b850dbef89c81f5a33741898b305db244904de418cc957ff05dc"}, - {file = "contourpy-1.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:309be79c0a354afff9ff7da4aaed7c3257e77edf6c1b448a779329431ee79d7e"}, - {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e785e0f2ef0d567099b9ff92cbfb958d71c2d5b9259981cd9bee81bd194c9a4"}, - {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cac0a8f71a041aa587410424ad46dfa6a11f6149ceb219ce7dd48f6b02b87a7"}, - {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af3f4485884750dddd9c25cb7e3915d83c2db92488b38ccb77dd594eac84c4a0"}, - {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ce6889abac9a42afd07a562c2d6d4b2b7134f83f18571d859b25624a331c90b"}, - {file = "contourpy-1.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a1eea9aecf761c661d096d39ed9026574de8adb2ae1c5bd7b33558af884fb2ce"}, - {file = "contourpy-1.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:187fa1d4c6acc06adb0fae5544c59898ad781409e61a926ac7e84b8f276dcef4"}, - {file = "contourpy-1.2.1-cp312-cp312-win32.whl", hash = "sha256:c2528d60e398c7c4c799d56f907664673a807635b857df18f7ae64d3e6ce2d9f"}, - {file = "contourpy-1.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:1a07fc092a4088ee952ddae19a2b2a85757b923217b7eed584fdf25f53a6e7ce"}, - {file = "contourpy-1.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bb6834cbd983b19f06908b45bfc2dad6ac9479ae04abe923a275b5f48f1a186b"}, - {file = "contourpy-1.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1d59e739ab0e3520e62a26c60707cc3ab0365d2f8fecea74bfe4de72dc56388f"}, - {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd3db01f59fdcbce5b22afad19e390260d6d0222f35a1023d9adc5690a889364"}, - {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a12a813949e5066148712a0626895c26b2578874e4cc63160bb007e6df3436fe"}, - {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe0ccca550bb8e5abc22f530ec0466136379c01321fd94f30a22231e8a48d985"}, - {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1d59258c3c67c865435d8fbeb35f8c59b8bef3d6f46c1f29f6123556af28445"}, - {file = "contourpy-1.2.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f32c38afb74bd98ce26de7cc74a67b40afb7b05aae7b42924ea990d51e4dac02"}, - {file = "contourpy-1.2.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d31a63bc6e6d87f77d71e1abbd7387ab817a66733734883d1fc0021ed9bfa083"}, - {file = "contourpy-1.2.1-cp39-cp39-win32.whl", hash = "sha256:ddcb8581510311e13421b1f544403c16e901c4e8f09083c881fab2be80ee31ba"}, - {file = "contourpy-1.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:10a37ae557aabf2509c79715cd20b62e4c7c28b8cd62dd7d99e5ed3ce28c3fd9"}, - {file = "contourpy-1.2.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a31f94983fecbac95e58388210427d68cd30fe8a36927980fab9c20062645609"}, - {file = "contourpy-1.2.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef2b055471c0eb466033760a521efb9d8a32b99ab907fc8358481a1dd29e3bd3"}, - {file = "contourpy-1.2.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b33d2bc4f69caedcd0a275329eb2198f560b325605810895627be5d4b876bf7f"}, - {file = "contourpy-1.2.1.tar.gz", hash = "sha256:4d8908b3bee1c889e547867ca4cdc54e5ab6be6d3e078556814a22457f49423c"}, + {file = "contourpy-1.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a045f341a77b77e1c5de31e74e966537bba9f3c4099b35bf4c2e3939dd54cdab"}, + {file = "contourpy-1.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:500360b77259914f7805af7462e41f9cb7ca92ad38e9f94d6c8641b089338124"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2f926efda994cdf3c8d3fdb40b9962f86edbc4457e739277b961eced3d0b4c1"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:adce39d67c0edf383647a3a007de0a45fd1b08dedaa5318404f1a73059c2512b"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abbb49fb7dac584e5abc6636b7b2a7227111c4f771005853e7d25176daaf8453"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0cffcbede75c059f535725c1680dfb17b6ba8753f0c74b14e6a9c68c29d7ea3"}, + {file = "contourpy-1.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ab29962927945d89d9b293eabd0d59aea28d887d4f3be6c22deaefbb938a7277"}, + {file = "contourpy-1.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:974d8145f8ca354498005b5b981165b74a195abfae9a8129df3e56771961d595"}, + {file = "contourpy-1.3.1-cp310-cp310-win32.whl", hash = "sha256:ac4578ac281983f63b400f7fe6c101bedc10651650eef012be1ccffcbacf3697"}, + {file = "contourpy-1.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:174e758c66bbc1c8576992cec9599ce8b6672b741b5d336b5c74e35ac382b18e"}, + {file = "contourpy-1.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3e8b974d8db2c5610fb4e76307e265de0edb655ae8169e8b21f41807ccbeec4b"}, + {file = "contourpy-1.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:20914c8c973f41456337652a6eeca26d2148aa96dd7ac323b74516988bea89fc"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19d40d37c1c3a4961b4619dd9d77b12124a453cc3d02bb31a07d58ef684d3d86"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:113231fe3825ebf6f15eaa8bc1f5b0ddc19d42b733345eae0934cb291beb88b6"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4dbbc03a40f916a8420e420d63e96a1258d3d1b58cbdfd8d1f07b49fcbd38e85"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a04ecd68acbd77fa2d39723ceca4c3197cb2969633836ced1bea14e219d077c"}, + {file = "contourpy-1.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c414fc1ed8ee1dbd5da626cf3710c6013d3d27456651d156711fa24f24bd1291"}, + {file = "contourpy-1.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:31c1b55c1f34f80557d3830d3dd93ba722ce7e33a0b472cba0ec3b6535684d8f"}, + {file = "contourpy-1.3.1-cp311-cp311-win32.whl", hash = "sha256:f611e628ef06670df83fce17805c344710ca5cde01edfdc72751311da8585375"}, + {file = "contourpy-1.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:b2bdca22a27e35f16794cf585832e542123296b4687f9fd96822db6bae17bfc9"}, + {file = "contourpy-1.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0ffa84be8e0bd33410b17189f7164c3589c229ce5db85798076a3fa136d0e509"}, + {file = "contourpy-1.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805617228ba7e2cbbfb6c503858e626ab528ac2a32a04a2fe88ffaf6b02c32bc"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ade08d343436a94e633db932e7e8407fe7de8083967962b46bdfc1b0ced39454"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:47734d7073fb4590b4a40122b35917cd77be5722d80683b249dac1de266aac80"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2ba94a401342fc0f8b948e57d977557fbf4d515f03c67682dd5c6191cb2d16ec"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efa874e87e4a647fd2e4f514d5e91c7d493697127beb95e77d2f7561f6905bd9"}, + {file = "contourpy-1.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1bf98051f1045b15c87868dbaea84f92408337d4f81d0e449ee41920ea121d3b"}, + {file = "contourpy-1.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:61332c87493b00091423e747ea78200659dc09bdf7fd69edd5e98cef5d3e9a8d"}, + {file = "contourpy-1.3.1-cp312-cp312-win32.whl", hash = "sha256:e914a8cb05ce5c809dd0fe350cfbb4e881bde5e2a38dc04e3afe1b3e58bd158e"}, + {file = "contourpy-1.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:08d9d449a61cf53033612cb368f3a1b26cd7835d9b8cd326647efe43bca7568d"}, + {file = "contourpy-1.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a761d9ccfc5e2ecd1bf05534eda382aa14c3e4f9205ba5b1684ecfe400716ef2"}, + {file = "contourpy-1.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:523a8ee12edfa36f6d2a49407f705a6ef4c5098de4f498619787e272de93f2d5"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece6df05e2c41bd46776fbc712e0996f7c94e0d0543af1656956d150c4ca7c81"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:573abb30e0e05bf31ed067d2f82500ecfdaec15627a59d63ea2d95714790f5c2"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fa36448e6a3a1a9a2ba23c02012c43ed88905ec80163f2ffe2421c7192a5d7"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ea9924d28fc5586bf0b42d15f590b10c224117e74409dd7a0be3b62b74a501c"}, + {file = "contourpy-1.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5b75aa69cb4d6f137b36f7eb2ace9280cfb60c55dc5f61c731fdf6f037f958a3"}, + {file = "contourpy-1.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:041b640d4ec01922083645a94bb3b2e777e6b626788f4095cf21abbe266413c1"}, + {file = "contourpy-1.3.1-cp313-cp313-win32.whl", hash = "sha256:36987a15e8ace5f58d4d5da9dca82d498c2bbb28dff6e5d04fbfcc35a9cb3a82"}, + {file = "contourpy-1.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:a7895f46d47671fa7ceec40f31fae721da51ad34bdca0bee83e38870b1f47ffd"}, + {file = "contourpy-1.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ddeb796389dadcd884c7eb07bd14ef12408aaae358f0e2ae24114d797eede30"}, + {file = "contourpy-1.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:19c1555a6801c2f084c7ddc1c6e11f02eb6a6016ca1318dd5452ba3f613a1751"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:841ad858cff65c2c04bf93875e384ccb82b654574a6d7f30453a04f04af71342"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4318af1c925fb9a4fb190559ef3eec206845f63e80fb603d47f2d6d67683901c"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:14c102b0eab282427b662cb590f2e9340a9d91a1c297f48729431f2dcd16e14f"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05e806338bfeaa006acbdeba0ad681a10be63b26e1b17317bfac3c5d98f36cda"}, + {file = "contourpy-1.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4d76d5993a34ef3df5181ba3c92fabb93f1eaa5729504fb03423fcd9f3177242"}, + {file = "contourpy-1.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:89785bb2a1980c1bd87f0cb1517a71cde374776a5f150936b82580ae6ead44a1"}, + {file = "contourpy-1.3.1-cp313-cp313t-win32.whl", hash = "sha256:8eb96e79b9f3dcadbad2a3891672f81cdcab7f95b27f28f1c67d75f045b6b4f1"}, + {file = "contourpy-1.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:287ccc248c9e0d0566934e7d606201abd74761b5703d804ff3df8935f523d546"}, + {file = "contourpy-1.3.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b457d6430833cee8e4b8e9b6f07aa1c161e5e0d52e118dc102c8f9bd7dd060d6"}, + {file = "contourpy-1.3.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb76c1a154b83991a3cbbf0dfeb26ec2833ad56f95540b442c73950af2013750"}, + {file = "contourpy-1.3.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:44a29502ca9c7b5ba389e620d44f2fbe792b1fb5734e8b931ad307071ec58c53"}, + {file = "contourpy-1.3.1.tar.gz", hash = "sha256:dfd97abd83335045a913e3bcc4a09c0ceadbe66580cf573fe961f4a825efa699"}, ] [package.dependencies] -numpy = ">=1.20" +numpy = ">=1.23" [package.extras] bokeh = ["bokeh", "selenium"] docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] -mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.8.0)", "types-Pillow"] +mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.11.1)", "types-Pillow"] test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] -test-no-images = ["pytest", "pytest-cov", "pytest-xdist", "wurlitzer"] +test-no-images = ["pytest", "pytest-cov", "pytest-rerunfailures", "pytest-xdist", "wurlitzer"] [[package]] name = "coolname" version = "2.2.0" description = "Random name and slug generator" +category = "main" optional = false python-versions = "*" files = [ @@ -975,63 +1023,74 @@ files = [ [[package]] name = "coverage" -version = "7.5.3" +version = "7.6.9" description = "Code coverage measurement for Python" +category = "dev" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "coverage-7.5.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a6519d917abb15e12380406d721e37613e2a67d166f9fb7e5a8ce0375744cd45"}, - {file = "coverage-7.5.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:aea7da970f1feccf48be7335f8b2ca64baf9b589d79e05b9397a06696ce1a1ec"}, - {file = "coverage-7.5.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:923b7b1c717bd0f0f92d862d1ff51d9b2b55dbbd133e05680204465f454bb286"}, - {file = "coverage-7.5.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62bda40da1e68898186f274f832ef3e759ce929da9a9fd9fcf265956de269dbc"}, - {file = "coverage-7.5.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8b7339180d00de83e930358223c617cc343dd08e1aa5ec7b06c3a121aec4e1d"}, - {file = "coverage-7.5.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:25a5caf742c6195e08002d3b6c2dd6947e50efc5fc2c2205f61ecb47592d2d83"}, - {file = "coverage-7.5.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:05ac5f60faa0c704c0f7e6a5cbfd6f02101ed05e0aee4d2822637a9e672c998d"}, - {file = "coverage-7.5.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:239a4e75e09c2b12ea478d28815acf83334d32e722e7433471fbf641c606344c"}, - {file = "coverage-7.5.3-cp310-cp310-win32.whl", hash = "sha256:a5812840d1d00eafae6585aba38021f90a705a25b8216ec7f66aebe5b619fb84"}, - {file = "coverage-7.5.3-cp310-cp310-win_amd64.whl", hash = "sha256:33ca90a0eb29225f195e30684ba4a6db05dbef03c2ccd50b9077714c48153cac"}, - {file = "coverage-7.5.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f81bc26d609bf0fbc622c7122ba6307993c83c795d2d6f6f6fd8c000a770d974"}, - {file = "coverage-7.5.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7cec2af81f9e7569280822be68bd57e51b86d42e59ea30d10ebdbb22d2cb7232"}, - {file = "coverage-7.5.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55f689f846661e3f26efa535071775d0483388a1ccfab899df72924805e9e7cd"}, - {file = "coverage-7.5.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50084d3516aa263791198913a17354bd1dc627d3c1639209640b9cac3fef5807"}, - {file = "coverage-7.5.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:341dd8f61c26337c37988345ca5c8ccabeff33093a26953a1ac72e7d0103c4fb"}, - {file = "coverage-7.5.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ab0b028165eea880af12f66086694768f2c3139b2c31ad5e032c8edbafca6ffc"}, - {file = "coverage-7.5.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:5bc5a8c87714b0c67cfeb4c7caa82b2d71e8864d1a46aa990b5588fa953673b8"}, - {file = "coverage-7.5.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:38a3b98dae8a7c9057bd91fbf3415c05e700a5114c5f1b5b0ea5f8f429ba6614"}, - {file = "coverage-7.5.3-cp311-cp311-win32.whl", hash = "sha256:fcf7d1d6f5da887ca04302db8e0e0cf56ce9a5e05f202720e49b3e8157ddb9a9"}, - {file = "coverage-7.5.3-cp311-cp311-win_amd64.whl", hash = "sha256:8c836309931839cca658a78a888dab9676b5c988d0dd34ca247f5f3e679f4e7a"}, - {file = "coverage-7.5.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:296a7d9bbc598e8744c00f7a6cecf1da9b30ae9ad51c566291ff1314e6cbbed8"}, - {file = "coverage-7.5.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:34d6d21d8795a97b14d503dcaf74226ae51eb1f2bd41015d3ef332a24d0a17b3"}, - {file = "coverage-7.5.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e317953bb4c074c06c798a11dbdd2cf9979dbcaa8ccc0fa4701d80042d4ebf1"}, - {file = "coverage-7.5.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:705f3d7c2b098c40f5b81790a5fedb274113373d4d1a69e65f8b68b0cc26f6db"}, - {file = "coverage-7.5.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1196e13c45e327d6cd0b6e471530a1882f1017eb83c6229fc613cd1a11b53cd"}, - {file = "coverage-7.5.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:015eddc5ccd5364dcb902eaecf9515636806fa1e0d5bef5769d06d0f31b54523"}, - {file = "coverage-7.5.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:fd27d8b49e574e50caa65196d908f80e4dff64d7e592d0c59788b45aad7e8b35"}, - {file = "coverage-7.5.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:33fc65740267222fc02975c061eb7167185fef4cc8f2770267ee8bf7d6a42f84"}, - {file = "coverage-7.5.3-cp312-cp312-win32.whl", hash = "sha256:7b2a19e13dfb5c8e145c7a6ea959485ee8e2204699903c88c7d25283584bfc08"}, - {file = "coverage-7.5.3-cp312-cp312-win_amd64.whl", hash = "sha256:0bbddc54bbacfc09b3edaec644d4ac90c08ee8ed4844b0f86227dcda2d428fcb"}, - {file = "coverage-7.5.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f78300789a708ac1f17e134593f577407d52d0417305435b134805c4fb135adb"}, - {file = "coverage-7.5.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b368e1aee1b9b75757942d44d7598dcd22a9dbb126affcbba82d15917f0cc155"}, - {file = "coverage-7.5.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f836c174c3a7f639bded48ec913f348c4761cbf49de4a20a956d3431a7c9cb24"}, - {file = "coverage-7.5.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:244f509f126dc71369393ce5fea17c0592c40ee44e607b6d855e9c4ac57aac98"}, - {file = "coverage-7.5.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4c2872b3c91f9baa836147ca33650dc5c172e9273c808c3c3199c75490e709d"}, - {file = "coverage-7.5.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:dd4b3355b01273a56b20c219e74e7549e14370b31a4ffe42706a8cda91f19f6d"}, - {file = "coverage-7.5.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:f542287b1489c7a860d43a7d8883e27ca62ab84ca53c965d11dac1d3a1fab7ce"}, - {file = "coverage-7.5.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:75e3f4e86804023e991096b29e147e635f5e2568f77883a1e6eed74512659ab0"}, - {file = "coverage-7.5.3-cp38-cp38-win32.whl", hash = "sha256:c59d2ad092dc0551d9f79d9d44d005c945ba95832a6798f98f9216ede3d5f485"}, - {file = "coverage-7.5.3-cp38-cp38-win_amd64.whl", hash = "sha256:fa21a04112c59ad54f69d80e376f7f9d0f5f9123ab87ecd18fbb9ec3a2beed56"}, - {file = "coverage-7.5.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f5102a92855d518b0996eb197772f5ac2a527c0ec617124ad5242a3af5e25f85"}, - {file = "coverage-7.5.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d1da0a2e3b37b745a2b2a678a4c796462cf753aebf94edcc87dcc6b8641eae31"}, - {file = "coverage-7.5.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8383a6c8cefba1b7cecc0149415046b6fc38836295bc4c84e820872eb5478b3d"}, - {file = "coverage-7.5.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9aad68c3f2566dfae84bf46295a79e79d904e1c21ccfc66de88cd446f8686341"}, - {file = "coverage-7.5.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e079c9ec772fedbade9d7ebc36202a1d9ef7291bc9b3a024ca395c4d52853d7"}, - {file = "coverage-7.5.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bde997cac85fcac227b27d4fb2c7608a2c5f6558469b0eb704c5726ae49e1c52"}, - {file = "coverage-7.5.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:990fb20b32990b2ce2c5f974c3e738c9358b2735bc05075d50a6f36721b8f303"}, - {file = "coverage-7.5.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3d5a67f0da401e105753d474369ab034c7bae51a4c31c77d94030d59e41df5bd"}, - {file = "coverage-7.5.3-cp39-cp39-win32.whl", hash = "sha256:e08c470c2eb01977d221fd87495b44867a56d4d594f43739a8028f8646a51e0d"}, - {file = "coverage-7.5.3-cp39-cp39-win_amd64.whl", hash = "sha256:1d2a830ade66d3563bb61d1e3c77c8def97b30ed91e166c67d0632c018f380f0"}, - {file = "coverage-7.5.3-pp38.pp39.pp310-none-any.whl", hash = "sha256:3538d8fb1ee9bdd2e2692b3b18c22bb1c19ffbefd06880f5ac496e42d7bb3884"}, - {file = "coverage-7.5.3.tar.gz", hash = "sha256:04aefca5190d1dc7a53a4c1a5a7f8568811306d7a8ee231c42fb69215571944f"}, + {file = "coverage-7.6.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:85d9636f72e8991a1706b2b55b06c27545448baf9f6dbf51c4004609aacd7dcb"}, + {file = "coverage-7.6.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:608a7fd78c67bee8936378299a6cb9f5149bb80238c7a566fc3e6717a4e68710"}, + {file = "coverage-7.6.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96d636c77af18b5cb664ddf12dab9b15a0cfe9c0bde715da38698c8cea748bfa"}, + {file = "coverage-7.6.9-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d75cded8a3cff93da9edc31446872d2997e327921d8eed86641efafd350e1df1"}, + {file = "coverage-7.6.9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7b15f589593110ae767ce997775d645b47e5cbbf54fd322f8ebea6277466cec"}, + {file = "coverage-7.6.9-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:44349150f6811b44b25574839b39ae35291f6496eb795b7366fef3bd3cf112d3"}, + {file = "coverage-7.6.9-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:d891c136b5b310d0e702e186d70cd16d1119ea8927347045124cb286b29297e5"}, + {file = "coverage-7.6.9-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:db1dab894cc139f67822a92910466531de5ea6034ddfd2b11c0d4c6257168073"}, + {file = "coverage-7.6.9-cp310-cp310-win32.whl", hash = "sha256:41ff7b0da5af71a51b53f501a3bac65fb0ec311ebed1632e58fc6107f03b9198"}, + {file = "coverage-7.6.9-cp310-cp310-win_amd64.whl", hash = "sha256:35371f8438028fdccfaf3570b31d98e8d9eda8bb1d6ab9473f5a390969e98717"}, + {file = "coverage-7.6.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:932fc826442132dde42ee52cf66d941f581c685a6313feebed358411238f60f9"}, + {file = "coverage-7.6.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:085161be5f3b30fd9b3e7b9a8c301f935c8313dcf928a07b116324abea2c1c2c"}, + {file = "coverage-7.6.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ccc660a77e1c2bf24ddbce969af9447a9474790160cfb23de6be4fa88e3951c7"}, + {file = "coverage-7.6.9-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c69e42c892c018cd3c8d90da61d845f50a8243062b19d228189b0224150018a9"}, + {file = "coverage-7.6.9-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0824a28ec542a0be22f60c6ac36d679e0e262e5353203bea81d44ee81fe9c6d4"}, + {file = "coverage-7.6.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4401ae5fc52ad8d26d2a5d8a7428b0f0c72431683f8e63e42e70606374c311a1"}, + {file = "coverage-7.6.9-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:98caba4476a6c8d59ec1eb00c7dd862ba9beca34085642d46ed503cc2d440d4b"}, + {file = "coverage-7.6.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ee5defd1733fd6ec08b168bd4f5387d5b322f45ca9e0e6c817ea6c4cd36313e3"}, + {file = "coverage-7.6.9-cp311-cp311-win32.whl", hash = "sha256:f2d1ec60d6d256bdf298cb86b78dd715980828f50c46701abc3b0a2b3f8a0dc0"}, + {file = "coverage-7.6.9-cp311-cp311-win_amd64.whl", hash = "sha256:0d59fd927b1f04de57a2ba0137166d31c1a6dd9e764ad4af552912d70428c92b"}, + {file = "coverage-7.6.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:99e266ae0b5d15f1ca8d278a668df6f51cc4b854513daab5cae695ed7b721cf8"}, + {file = "coverage-7.6.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9901d36492009a0a9b94b20e52ebfc8453bf49bb2b27bca2c9706f8b4f5a554a"}, + {file = "coverage-7.6.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abd3e72dd5b97e3af4246cdada7738ef0e608168de952b837b8dd7e90341f015"}, + {file = "coverage-7.6.9-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff74026a461eb0660366fb01c650c1d00f833a086b336bdad7ab00cc952072b3"}, + {file = "coverage-7.6.9-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65dad5a248823a4996724a88eb51d4b31587aa7aa428562dbe459c684e5787ae"}, + {file = "coverage-7.6.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:22be16571504c9ccea919fcedb459d5ab20d41172056206eb2994e2ff06118a4"}, + {file = "coverage-7.6.9-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f957943bc718b87144ecaee70762bc2bc3f1a7a53c7b861103546d3a403f0a6"}, + {file = "coverage-7.6.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0ae1387db4aecb1f485fb70a6c0148c6cdaebb6038f1d40089b1fc84a5db556f"}, + {file = "coverage-7.6.9-cp312-cp312-win32.whl", hash = "sha256:1a330812d9cc7ac2182586f6d41b4d0fadf9be9049f350e0efb275c8ee8eb692"}, + {file = "coverage-7.6.9-cp312-cp312-win_amd64.whl", hash = "sha256:b12c6b18269ca471eedd41c1b6a1065b2f7827508edb9a7ed5555e9a56dcfc97"}, + {file = "coverage-7.6.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:899b8cd4781c400454f2f64f7776a5d87bbd7b3e7f7bda0cb18f857bb1334664"}, + {file = "coverage-7.6.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:61f70dc68bd36810972e55bbbe83674ea073dd1dcc121040a08cdf3416c5349c"}, + {file = "coverage-7.6.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a289d23d4c46f1a82d5db4abeb40b9b5be91731ee19a379d15790e53031c014"}, + {file = "coverage-7.6.9-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e216d8044a356fc0337c7a2a0536d6de07888d7bcda76febcb8adc50bdbbd00"}, + {file = "coverage-7.6.9-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c026eb44f744acaa2bda7493dad903aa5bf5fc4f2554293a798d5606710055d"}, + {file = "coverage-7.6.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e77363e8425325384f9d49272c54045bbed2f478e9dd698dbc65dbc37860eb0a"}, + {file = "coverage-7.6.9-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:777abfab476cf83b5177b84d7486497e034eb9eaea0d746ce0c1268c71652077"}, + {file = "coverage-7.6.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:447af20e25fdbe16f26e84eb714ba21d98868705cb138252d28bc400381f6ffb"}, + {file = "coverage-7.6.9-cp313-cp313-win32.whl", hash = "sha256:d872ec5aeb086cbea771c573600d47944eea2dcba8be5f3ee649bfe3cb8dc9ba"}, + {file = "coverage-7.6.9-cp313-cp313-win_amd64.whl", hash = "sha256:fd1213c86e48dfdc5a0cc676551db467495a95a662d2396ecd58e719191446e1"}, + {file = "coverage-7.6.9-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ba9e7484d286cd5a43744e5f47b0b3fb457865baf07bafc6bee91896364e1419"}, + {file = "coverage-7.6.9-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e5ea1cf0872ee455c03e5674b5bca5e3e68e159379c1af0903e89f5eba9ccc3a"}, + {file = "coverage-7.6.9-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d10e07aa2b91835d6abec555ec8b2733347956991901eea6ffac295f83a30e4"}, + {file = "coverage-7.6.9-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:13a9e2d3ee855db3dd6ea1ba5203316a1b1fd8eaeffc37c5b54987e61e4194ae"}, + {file = "coverage-7.6.9-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c38bf15a40ccf5619fa2fe8f26106c7e8e080d7760aeccb3722664c8656b030"}, + {file = "coverage-7.6.9-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:d5275455b3e4627c8e7154feaf7ee0743c2e7af82f6e3b561967b1cca755a0be"}, + {file = "coverage-7.6.9-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8f8770dfc6e2c6a2d4569f411015c8d751c980d17a14b0530da2d7f27ffdd88e"}, + {file = "coverage-7.6.9-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8d2dfa71665a29b153a9681edb1c8d9c1ea50dfc2375fb4dac99ea7e21a0bcd9"}, + {file = "coverage-7.6.9-cp313-cp313t-win32.whl", hash = "sha256:5e6b86b5847a016d0fbd31ffe1001b63355ed309651851295315031ea7eb5a9b"}, + {file = "coverage-7.6.9-cp313-cp313t-win_amd64.whl", hash = "sha256:97ddc94d46088304772d21b060041c97fc16bdda13c6c7f9d8fcd8d5ae0d8611"}, + {file = "coverage-7.6.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:adb697c0bd35100dc690de83154627fbab1f4f3c0386df266dded865fc50a902"}, + {file = "coverage-7.6.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:be57b6d56e49c2739cdf776839a92330e933dd5e5d929966fbbd380c77f060be"}, + {file = "coverage-7.6.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1592791f8204ae9166de22ba7e6705fa4ebd02936c09436a1bb85aabca3e599"}, + {file = "coverage-7.6.9-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4e12ae8cc979cf83d258acb5e1f1cf2f3f83524d1564a49d20b8bec14b637f08"}, + {file = "coverage-7.6.9-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb5555cff66c4d3d6213a296b360f9e1a8e323e74e0426b6c10ed7f4d021e464"}, + {file = "coverage-7.6.9-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:b9389a429e0e5142e69d5bf4a435dd688c14478a19bb901735cdf75e57b13845"}, + {file = "coverage-7.6.9-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:592ac539812e9b46046620341498caf09ca21023c41c893e1eb9dbda00a70cbf"}, + {file = "coverage-7.6.9-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a27801adef24cc30871da98a105f77995e13a25a505a0161911f6aafbd66e678"}, + {file = "coverage-7.6.9-cp39-cp39-win32.whl", hash = "sha256:8e3c3e38930cfb729cb8137d7f055e5a473ddaf1217966aa6238c88bd9fd50e6"}, + {file = "coverage-7.6.9-cp39-cp39-win_amd64.whl", hash = "sha256:e28bf44afa2b187cc9f41749138a64435bf340adfcacb5b2290c070ce99839d4"}, + {file = "coverage-7.6.9-pp39.pp310-none-any.whl", hash = "sha256:f3ca78518bc6bc92828cd11867b121891d75cae4ea9e908d72030609b996db1b"}, + {file = "coverage-7.6.9.tar.gz", hash = "sha256:4a8d8977b0c6ef5aeadcb644da9e69ae0dcfe66ec7f368c89c72e058bd71164d"}, ] [package.dependencies] @@ -1042,13 +1101,14 @@ toml = ["tomli"] [[package]] name = "croniter" -version = "3.0.3" +version = "5.0.1" description = "croniter provides iteration for datetime object with cron like format" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.6" files = [ - {file = "croniter-3.0.3-py2.py3-none-any.whl", hash = "sha256:b3bd11f270dc54ccd1f2397b813436015a86d30ffc5a7a9438eec1ed916f2101"}, - {file = "croniter-3.0.3.tar.gz", hash = "sha256:34117ec1741f10a7bd0ec3ad7d8f0eb8fa457a2feb9be32e6a2250e158957668"}, + {file = "croniter-5.0.1-py2.py3-none-any.whl", hash = "sha256:eb28439742291f6c10b181df1a5ecf421208b1fc62ef44501daec1780a0b09e9"}, + {file = "croniter-5.0.1.tar.gz", hash = "sha256:7d9b1ef25b10eece48fdf29d8ac52f9b6252abff983ac614ade4f3276294019e"}, ] [package.dependencies] @@ -1057,57 +1117,59 @@ pytz = ">2021.1" [[package]] name = "cryptography" -version = "43.0.0" +version = "44.0.0" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." -optional = false -python-versions = ">=3.7" -files = [ - {file = "cryptography-43.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:64c3f16e2a4fc51c0d06af28441881f98c5d91009b8caaff40cf3548089e9c74"}, - {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3dcdedae5c7710b9f97ac6bba7e1052b95c7083c9d0e9df96e02a1932e777895"}, - {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d9a1eca329405219b605fac09ecfc09ac09e595d6def650a437523fcd08dd22"}, - {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ea9e57f8ea880eeea38ab5abf9fbe39f923544d7884228ec67d666abd60f5a47"}, - {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:9a8d6802e0825767476f62aafed40532bd435e8a5f7d23bd8b4f5fd04cc80ecf"}, - {file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:cc70b4b581f28d0a254d006f26949245e3657d40d8857066c2ae22a61222ef55"}, - {file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4a997df8c1c2aae1e1e5ac49c2e4f610ad037fc5a3aadc7b64e39dea42249431"}, - {file = "cryptography-43.0.0-cp37-abi3-win32.whl", hash = "sha256:6e2b11c55d260d03a8cf29ac9b5e0608d35f08077d8c087be96287f43af3ccdc"}, - {file = "cryptography-43.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:31e44a986ceccec3d0498e16f3d27b2ee5fdf69ce2ab89b52eaad1d2f33d8778"}, - {file = "cryptography-43.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:7b3f5fe74a5ca32d4d0f302ffe6680fcc5c28f8ef0dc0ae8f40c0f3a1b4fca66"}, - {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac1955ce000cb29ab40def14fd1bbfa7af2017cca696ee696925615cafd0dce5"}, - {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:299d3da8e00b7e2b54bb02ef58d73cd5f55fb31f33ebbf33bd00d9aa6807df7e"}, - {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ee0c405832ade84d4de74b9029bedb7b31200600fa524d218fc29bfa371e97f5"}, - {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cb013933d4c127349b3948aa8aaf2f12c0353ad0eccd715ca789c8a0f671646f"}, - {file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fdcb265de28585de5b859ae13e3846a8e805268a823a12a4da2597f1f5afc9f0"}, - {file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2905ccf93a8a2a416f3ec01b1a7911c3fe4073ef35640e7ee5296754e30b762b"}, - {file = "cryptography-43.0.0-cp39-abi3-win32.whl", hash = "sha256:47ca71115e545954e6c1d207dd13461ab81f4eccfcb1345eac874828b5e3eaaf"}, - {file = "cryptography-43.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:0663585d02f76929792470451a5ba64424acc3cd5227b03921dab0e2f27b1709"}, - {file = "cryptography-43.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2c6d112bf61c5ef44042c253e4859b3cbbb50df2f78fa8fae6747a7814484a70"}, - {file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:844b6d608374e7d08f4f6e6f9f7b951f9256db41421917dfb2d003dde4cd6b66"}, - {file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:51956cf8730665e2bdf8ddb8da0056f699c1a5715648c1b0144670c1ba00b48f"}, - {file = "cryptography-43.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:aae4d918f6b180a8ab8bf6511a419473d107df4dbb4225c7b48c5c9602c38c7f"}, - {file = "cryptography-43.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:232ce02943a579095a339ac4b390fbbe97f5b5d5d107f8a08260ea2768be8cc2"}, - {file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5bcb8a5620008a8034d39bce21dc3e23735dfdb6a33a06974739bfa04f853947"}, - {file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:08a24a7070b2b6804c1940ff0f910ff728932a9d0e80e7814234269f9d46d069"}, - {file = "cryptography-43.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e9c5266c432a1e23738d178e51c2c7a5e2ddf790f248be939448c0ba2021f9d1"}, - {file = "cryptography-43.0.0.tar.gz", hash = "sha256:b88075ada2d51aa9f18283532c9f60e72170041bba88d7f37e49cbb10275299e"}, +category = "main" +optional = false +python-versions = "!=3.9.0,!=3.9.1,>=3.7" +files = [ + {file = "cryptography-44.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:84111ad4ff3f6253820e6d3e58be2cc2a00adb29335d4cacb5ab4d4d34f2a123"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15492a11f9e1b62ba9d73c210e2416724633167de94607ec6069ef724fad092"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:831c3c4d0774e488fdc83a1923b49b9957d33287de923d58ebd3cec47a0ae43f"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:761817a3377ef15ac23cd7834715081791d4ec77f9297ee694ca1ee9c2c7e5eb"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3c672a53c0fb4725a29c303be906d3c1fa99c32f58abe008a82705f9ee96f40b"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:4ac4c9f37eba52cb6fbeaf5b59c152ea976726b865bd4cf87883a7e7006cc543"}, + {file = "cryptography-44.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ed3534eb1090483c96178fcb0f8893719d96d5274dfde98aa6add34614e97c8e"}, + {file = "cryptography-44.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f3f6fdfa89ee2d9d496e2c087cebef9d4fcbb0ad63c40e821b39f74bf48d9c5e"}, + {file = "cryptography-44.0.0-cp37-abi3-win32.whl", hash = "sha256:eb33480f1bad5b78233b0ad3e1b0be21e8ef1da745d8d2aecbb20671658b9053"}, + {file = "cryptography-44.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:abc998e0c0eee3c8a1904221d3f67dcfa76422b23620173e28c11d3e626c21bd"}, + {file = "cryptography-44.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:660cb7312a08bc38be15b696462fa7cc7cd85c3ed9c576e81f4dc4d8b2b31591"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1923cb251c04be85eec9fda837661c67c1049063305d6be5721643c22dd4e2b7"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:404fdc66ee5f83a1388be54300ae978b2efd538018de18556dde92575e05defc"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:c5eb858beed7835e5ad1faba59e865109f3e52b3783b9ac21e7e47dc5554e289"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f53c2c87e0fb4b0c00fa9571082a057e37690a8f12233306161c8f4b819960b7"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:9e6fc8a08e116fb7c7dd1f040074c9d7b51d74a8ea40d4df2fc7aa08b76b9e6c"}, + {file = "cryptography-44.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:d2436114e46b36d00f8b72ff57e598978b37399d2786fd39793c36c6d5cb1c64"}, + {file = "cryptography-44.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a01956ddfa0a6790d594f5b34fc1bfa6098aca434696a03cfdbe469b8ed79285"}, + {file = "cryptography-44.0.0-cp39-abi3-win32.whl", hash = "sha256:eca27345e1214d1b9f9490d200f9db5a874479be914199194e746c893788d417"}, + {file = "cryptography-44.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:708ee5f1bafe76d041b53a4f95eb28cdeb8d18da17e597d46d7833ee59b97ede"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:37d76e6863da3774cd9db5b409a9ecfd2c71c981c38788d3fcfaf177f447b731"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:f677e1268c4e23420c3acade68fac427fffcb8d19d7df95ed7ad17cdef8404f4"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f5e7cb1e5e56ca0933b4873c0220a78b773b24d40d186b6738080b73d3d0a756"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:8b3e6eae66cf54701ee7d9c83c30ac0a1e3fa17be486033000f2a73a12ab507c"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:be4ce505894d15d5c5037167ffb7f0ae90b7be6f2a98f9a5c3442395501c32fa"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:62901fb618f74d7d81bf408c8719e9ec14d863086efe4185afd07c352aee1d2c"}, + {file = "cryptography-44.0.0.tar.gz", hash = "sha256:cd4e834f340b4293430701e772ec543b0fbe6c2dea510a5286fe0acabe153a02"}, ] [package.dependencies] cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} [package.extras] -docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] -docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] -nox = ["nox"] -pep8test = ["check-sdist", "click", "mypy", "ruff"] -sdist = ["build"] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=3.0.0)"] +docstest = ["pyenchant (>=3)", "readme-renderer (>=30.0)", "sphinxcontrib-spelling (>=7.3.1)"] +nox = ["nox (>=2024.4.15)", "nox[uv] (>=2024.3.2)"] +pep8test = ["check-sdist", "click (>=8.0.1)", "mypy (>=1.4)", "ruff (>=0.3.6)"] +sdist = ["build (>=1.0.0)"] ssh = ["bcrypt (>=3.1.5)"] -test = ["certifi", "cryptography-vectors (==43.0.0)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test = ["certifi (>=2024)", "cryptography-vectors (==44.0.0)", "pretend (>=0.7)", "pytest (>=7.4.0)", "pytest-benchmark (>=4.0)", "pytest-cov (>=2.10.1)", "pytest-xdist (>=3.5.0)"] test-randomorder = ["pytest-randomly"] [[package]] name = "cycler" version = "0.12.1" description = "Composable style cycles" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1123,6 +1185,7 @@ tests = ["pytest", "pytest-cov", "pytest-xdist"] name = "dagger-io" version = "0.9.11" description = "A client package for running Dagger pipelines in Python." +category = "dev" optional = false python-versions = ">=3.10" files = [ @@ -1144,6 +1207,7 @@ typing-extensions = ">=4.8.0" name = "dateparser" version = "1.2.0" description = "Date parsing library designed to parse dates from HTML pages" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1164,39 +1228,45 @@ langdetect = ["langdetect"] [[package]] name = "debugpy" -version = "1.8.1" +version = "1.8.9" description = "An implementation of the Debug Adapter Protocol for Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "debugpy-1.8.1-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:3bda0f1e943d386cc7a0e71bfa59f4137909e2ed947fb3946c506e113000f741"}, - {file = "debugpy-1.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dda73bf69ea479c8577a0448f8c707691152e6c4de7f0c4dec5a4bc11dee516e"}, - {file = "debugpy-1.8.1-cp310-cp310-win32.whl", hash = "sha256:3a79c6f62adef994b2dbe9fc2cc9cc3864a23575b6e387339ab739873bea53d0"}, - {file = "debugpy-1.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:7eb7bd2b56ea3bedb009616d9e2f64aab8fc7000d481faec3cd26c98a964bcdd"}, - {file = "debugpy-1.8.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:016a9fcfc2c6b57f939673c874310d8581d51a0fe0858e7fac4e240c5eb743cb"}, - {file = "debugpy-1.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd97ed11a4c7f6d042d320ce03d83b20c3fb40da892f994bc041bbc415d7a099"}, - {file = "debugpy-1.8.1-cp311-cp311-win32.whl", hash = "sha256:0de56aba8249c28a300bdb0672a9b94785074eb82eb672db66c8144fff673146"}, - {file = "debugpy-1.8.1-cp311-cp311-win_amd64.whl", hash = "sha256:1a9fe0829c2b854757b4fd0a338d93bc17249a3bf69ecf765c61d4c522bb92a8"}, - {file = "debugpy-1.8.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3ebb70ba1a6524d19fa7bb122f44b74170c447d5746a503e36adc244a20ac539"}, - {file = "debugpy-1.8.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2e658a9630f27534e63922ebf655a6ab60c370f4d2fc5c02a5b19baf4410ace"}, - {file = "debugpy-1.8.1-cp312-cp312-win32.whl", hash = "sha256:caad2846e21188797a1f17fc09c31b84c7c3c23baf2516fed5b40b378515bbf0"}, - {file = "debugpy-1.8.1-cp312-cp312-win_amd64.whl", hash = "sha256:edcc9f58ec0fd121a25bc950d4578df47428d72e1a0d66c07403b04eb93bcf98"}, - {file = "debugpy-1.8.1-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:7a3afa222f6fd3d9dfecd52729bc2e12c93e22a7491405a0ecbf9e1d32d45b39"}, - {file = "debugpy-1.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d915a18f0597ef685e88bb35e5d7ab968964b7befefe1aaea1eb5b2640b586c7"}, - {file = "debugpy-1.8.1-cp38-cp38-win32.whl", hash = "sha256:92116039b5500633cc8d44ecc187abe2dfa9b90f7a82bbf81d079fcdd506bae9"}, - {file = "debugpy-1.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:e38beb7992b5afd9d5244e96ad5fa9135e94993b0c551ceebf3fe1a5d9beb234"}, - {file = "debugpy-1.8.1-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:bfb20cb57486c8e4793d41996652e5a6a885b4d9175dd369045dad59eaacea42"}, - {file = "debugpy-1.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efd3fdd3f67a7e576dd869c184c5dd71d9aaa36ded271939da352880c012e703"}, - {file = "debugpy-1.8.1-cp39-cp39-win32.whl", hash = "sha256:58911e8521ca0c785ac7a0539f1e77e0ce2df753f786188f382229278b4cdf23"}, - {file = "debugpy-1.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:6df9aa9599eb05ca179fb0b810282255202a66835c6efb1d112d21ecb830ddd3"}, - {file = "debugpy-1.8.1-py2.py3-none-any.whl", hash = "sha256:28acbe2241222b87e255260c76741e1fbf04fdc3b6d094fcf57b6c6f75ce1242"}, - {file = "debugpy-1.8.1.zip", hash = "sha256:f696d6be15be87aef621917585f9bb94b1dc9e8aced570db1b8a6fc14e8f9b42"}, + {file = "debugpy-1.8.9-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:cfe1e6c6ad7178265f74981edf1154ffce97b69005212fbc90ca22ddfe3d017e"}, + {file = "debugpy-1.8.9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ada7fb65102a4d2c9ab62e8908e9e9f12aed9d76ef44880367bc9308ebe49a0f"}, + {file = "debugpy-1.8.9-cp310-cp310-win32.whl", hash = "sha256:c36856343cbaa448171cba62a721531e10e7ffb0abff838004701454149bc037"}, + {file = "debugpy-1.8.9-cp310-cp310-win_amd64.whl", hash = "sha256:17c5e0297678442511cf00a745c9709e928ea4ca263d764e90d233208889a19e"}, + {file = "debugpy-1.8.9-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:b74a49753e21e33e7cf030883a92fa607bddc4ede1aa4145172debc637780040"}, + {file = "debugpy-1.8.9-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62d22dacdb0e296966d7d74a7141aaab4bec123fa43d1a35ddcb39bf9fd29d70"}, + {file = "debugpy-1.8.9-cp311-cp311-win32.whl", hash = "sha256:8138efff315cd09b8dcd14226a21afda4ca582284bf4215126d87342bba1cc66"}, + {file = "debugpy-1.8.9-cp311-cp311-win_amd64.whl", hash = "sha256:ff54ef77ad9f5c425398efb150239f6fe8e20c53ae2f68367eba7ece1e96226d"}, + {file = "debugpy-1.8.9-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:957363d9a7a6612a37458d9a15e72d03a635047f946e5fceee74b50d52a9c8e2"}, + {file = "debugpy-1.8.9-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e565fc54b680292b418bb809f1386f17081d1346dca9a871bf69a8ac4071afe"}, + {file = "debugpy-1.8.9-cp312-cp312-win32.whl", hash = "sha256:3e59842d6c4569c65ceb3751075ff8d7e6a6ada209ceca6308c9bde932bcef11"}, + {file = "debugpy-1.8.9-cp312-cp312-win_amd64.whl", hash = "sha256:66eeae42f3137eb428ea3a86d4a55f28da9bd5a4a3d369ba95ecc3a92c1bba53"}, + {file = "debugpy-1.8.9-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:957ecffff80d47cafa9b6545de9e016ae8c9547c98a538ee96ab5947115fb3dd"}, + {file = "debugpy-1.8.9-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1efbb3ff61487e2c16b3e033bc8595aea578222c08aaf3c4bf0f93fadbd662ee"}, + {file = "debugpy-1.8.9-cp313-cp313-win32.whl", hash = "sha256:7c4d65d03bee875bcb211c76c1d8f10f600c305dbd734beaed4077e902606fee"}, + {file = "debugpy-1.8.9-cp313-cp313-win_amd64.whl", hash = "sha256:e46b420dc1bea64e5bbedd678148be512442bc589b0111bd799367cde051e71a"}, + {file = "debugpy-1.8.9-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:472a3994999fe6c0756945ffa359e9e7e2d690fb55d251639d07208dbc37caea"}, + {file = "debugpy-1.8.9-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:365e556a4772d7d0d151d7eb0e77ec4db03bcd95f26b67b15742b88cacff88e9"}, + {file = "debugpy-1.8.9-cp38-cp38-win32.whl", hash = "sha256:54a7e6d3014c408eb37b0b06021366ee985f1539e12fe49ca2ee0d392d9ceca5"}, + {file = "debugpy-1.8.9-cp38-cp38-win_amd64.whl", hash = "sha256:8e99c0b1cc7bf86d83fb95d5ccdc4ad0586d4432d489d1f54e4055bcc795f693"}, + {file = "debugpy-1.8.9-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:7e8b079323a56f719977fde9d8115590cb5e7a1cba2fcee0986ef8817116e7c1"}, + {file = "debugpy-1.8.9-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6953b335b804a41f16a192fa2e7851bdcfd92173cbb2f9f777bb934f49baab65"}, + {file = "debugpy-1.8.9-cp39-cp39-win32.whl", hash = "sha256:7e646e62d4602bb8956db88b1e72fe63172148c1e25c041e03b103a25f36673c"}, + {file = "debugpy-1.8.9-cp39-cp39-win_amd64.whl", hash = "sha256:3d9755e77a2d680ce3d2c5394a444cf42be4a592caaf246dbfbdd100ffcf7ae5"}, + {file = "debugpy-1.8.9-py2.py3-none-any.whl", hash = "sha256:cc37a6c9987ad743d9c3a14fa1b1a14b7e4e6041f9dd0c8abf8895fe7a97b899"}, + {file = "debugpy-1.8.9.zip", hash = "sha256:1339e14c7d980407248f09824d1b25ff5c5616651689f1e0f0e51bdead3ea13e"}, ] [[package]] name = "decorator" version = "5.1.1" description = "Decorators for Humans" +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -1208,6 +1278,7 @@ files = [ name = "defusedxml" version = "0.7.1" description = "XML bomb protection for Python stdlib modules" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1215,21 +1286,41 @@ files = [ {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, ] +[[package]] +name = "deprecated" +version = "1.2.15" +description = "Python @deprecated decorator to deprecate old python classes, functions or methods." +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" +files = [ + {file = "Deprecated-1.2.15-py2.py3-none-any.whl", hash = "sha256:353bc4a8ac4bfc96800ddab349d89c25dec1079f65fd53acdcc1e0b975b21320"}, + {file = "deprecated-1.2.15.tar.gz", hash = "sha256:683e561a90de76239796e6b6feac66b99030d2dd3fcf61ef996330f14bbb9b0d"}, +] + +[package.dependencies] +wrapt = ">=1.10,<2" + +[package.extras] +dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "jinja2 (>=3.0.3,<3.1.0)", "setuptools", "sphinx (<2)", "tox"] + [[package]] name = "distlib" -version = "0.3.8" +version = "0.3.9" description = "Distribution utilities" +category = "dev" optional = false python-versions = "*" files = [ - {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, - {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, + {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, + {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, ] [[package]] name = "docker" version = "7.1.0" description = "A Python library for the Docker Engine API." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1250,13 +1341,14 @@ websockets = ["websocket-client (>=1.3.0)"] [[package]] name = "exceptiongroup" -version = "1.2.1" +version = "1.2.2" description = "Backport of PEP 654 (exception groups)" +category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.2.1-py3-none-any.whl", hash = "sha256:5258b9ed329c5bbdd31a309f53cbfb0b155341807f6ff7606a1e801a891b29ad"}, - {file = "exceptiongroup-1.2.1.tar.gz", hash = "sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16"}, + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, ] [package.extras] @@ -1264,13 +1356,14 @@ test = ["pytest (>=6)"] [[package]] name = "executing" -version = "2.0.1" +version = "2.1.0" description = "Get the currently executing AST node of a frame, and other information" +category = "dev" optional = false -python-versions = ">=3.5" +python-versions = ">=3.8" files = [ - {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, - {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, + {file = "executing-2.1.0-py2.py3-none-any.whl", hash = "sha256:8d63781349375b5ebccc3142f4b30350c0cd9c79f921cde38be2be4637e98eaf"}, + {file = "executing-2.1.0.tar.gz", hash = "sha256:8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab"}, ] [package.extras] @@ -1278,33 +1371,35 @@ tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipyth [[package]] name = "fastapi" -version = "0.112.0" +version = "0.112.4" description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "fastapi-0.112.0-py3-none-any.whl", hash = "sha256:3487ded9778006a45834b8c816ec4a48d522e2631ca9e75ec5a774f1b052f821"}, - {file = "fastapi-0.112.0.tar.gz", hash = "sha256:d262bc56b7d101d1f4e8fc0ad2ac75bb9935fec504d2b7117686cec50710cf05"}, + {file = "fastapi-0.112.4-py3-none-any.whl", hash = "sha256:6d4f9c3301825d4620665cace8e2bc34e303f61c05a5382d1d61a048ea7f2f37"}, + {file = "fastapi-0.112.4.tar.gz", hash = "sha256:b1f72e1f72afe7902ccd639ba320abb5d57a309804f45c10ab0ce3693cadeb33"}, ] [package.dependencies] 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.37.2,<0.38.0" +starlette = ">=0.37.2,<0.39.0" typing-extensions = ">=4.8.0" [package.extras] -all = ["email_validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "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.7)", "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)"] -standard = ["email_validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "jinja2 (>=2.11.2)", "python-multipart (>=0.0.7)", "uvicorn[standard] (>=0.12.0)"] +all = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "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.7)", "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)"] +standard = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "jinja2 (>=2.11.2)", "python-multipart (>=0.0.7)", "uvicorn[standard] (>=0.12.0)"] [[package]] name = "fastjsonschema" -version = "2.19.1" +version = "2.21.1" description = "Fastest Python implementation of JSON schema" +category = "dev" optional = false python-versions = "*" files = [ - {file = "fastjsonschema-2.19.1-py3-none-any.whl", hash = "sha256:3672b47bc94178c9f23dbb654bf47440155d4db9df5f7bc47643315f9c405cd0"}, - {file = "fastjsonschema-2.19.1.tar.gz", hash = "sha256:e3126a94bdc4623d3de4485f8d468a12f02a67921315ddc87836d6e456dc789d"}, + {file = "fastjsonschema-2.21.1-py3-none-any.whl", hash = "sha256:c9e5b7e908310918cf494a434eeb31384dd84a98b57a30bcb1f535015b554667"}, + {file = "fastjsonschema-2.21.1.tar.gz", hash = "sha256:794d4f0a58f848961ba16af7b9c85a3e88cd360df008c59aac6fc5ae9323b5d4"}, ] [package.extras] @@ -1312,37 +1407,39 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc [[package]] name = "filelock" -version = "3.14.0" +version = "3.16.1" description = "A platform independent file lock." +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "filelock-3.14.0-py3-none-any.whl", hash = "sha256:43339835842f110ca7ae60f1e1c160714c5a6afd15a2873419ab185334975c0f"}, - {file = "filelock-3.14.0.tar.gz", hash = "sha256:6ea72da3be9b8c82afd3edcf99f2fffbb5076335a5ae4d03248bb5b6c3eae78a"}, + {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"}, + {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"}, ] [package.extras] -docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] -typing = ["typing-extensions (>=4.8)"] +docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4.1)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.2)", "pytest (>=8.3.3)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.4)"] +typing = ["typing-extensions (>=4.12.2)"] [[package]] name = "flask" -version = "3.0.3" +version = "3.1.0" description = "A simple framework for building complex web applications." +category = "dev" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "flask-3.0.3-py3-none-any.whl", hash = "sha256:34e815dfaa43340d1d15a5c3a02b8476004037eb4840b34910c6e21679d288f3"}, - {file = "flask-3.0.3.tar.gz", hash = "sha256:ceb27b0af3823ea2737928a4d99d125a06175b8512c445cbd9a9ce200ef76842"}, + {file = "flask-3.1.0-py3-none-any.whl", hash = "sha256:d667207822eb83f1c4b50949b1623c8fc8d51f2341d65f72e1a1815397551136"}, + {file = "flask-3.1.0.tar.gz", hash = "sha256:5f873c5184c897c8d9d1b05df1e3d01b14910ce69607a117bd3277098a5836ac"}, ] [package.dependencies] -blinker = ">=1.6.2" +blinker = ">=1.9" click = ">=8.1.3" -itsdangerous = ">=2.1.2" +itsdangerous = ">=2.2" Jinja2 = ">=3.1.2" -Werkzeug = ">=3.0.0" +Werkzeug = ">=3.1" [package.extras] async = ["asgiref (>=3.2)"] @@ -1350,13 +1447,14 @@ dotenv = ["python-dotenv"] [[package]] name = "flask-cors" -version = "4.0.1" +version = "5.0.0" description = "A Flask extension adding a decorator for CORS support" +category = "dev" optional = false python-versions = "*" files = [ - {file = "Flask_Cors-4.0.1-py2.py3-none-any.whl", hash = "sha256:f2a704e4458665580c074b714c4627dd5a306b333deb9074d0b1794dfa2fb677"}, - {file = "flask_cors-4.0.1.tar.gz", hash = "sha256:eeb69b342142fdbf4766ad99357a7f3876a2ceb77689dc10ff912aac06c389e4"}, + {file = "Flask_Cors-5.0.0-py2.py3-none-any.whl", hash = "sha256:b9e307d082a9261c100d8fb0ba909eec6a228ed1b60a8315fd85f783d61910bc"}, + {file = "flask_cors-5.0.0.tar.gz", hash = "sha256:5aadb4b950c4e93745034594d9f3ea6591f734bb3662e16e255ffbf5e89c88ef"}, ] [package.dependencies] @@ -1366,6 +1464,7 @@ Flask = ">=0.9" name = "flask-login" version = "0.6.3" description = "User authentication and session management for Flask." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1379,53 +1478,62 @@ Werkzeug = ">=1.0.1" [[package]] name = "fonttools" -version = "4.52.4" +version = "4.55.3" description = "Tools to manipulate font files" +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "fonttools-4.52.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fb8cd6559f0ae3a8f5e146f80ab2a90ad0325a759be8d48ee82758a0b89fa0aa"}, - {file = "fonttools-4.52.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ecb88318ff249bd2a715e7aec36774ce7ae3441128007ef72a39a60601f4a8f"}, - {file = "fonttools-4.52.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9a22cf1adaae7b2ba2ed7d8651a4193a4f348744925b4b740e6b38a94599c5b"}, - {file = "fonttools-4.52.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8873d6edd1dae5c088dd3d61c9fd4dd80c827c486fa224d368233e7f33dc98af"}, - {file = "fonttools-4.52.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:73ba38b98c012957940a04d9eb5439b42565ac892bba8cfc32e10d88e73921fe"}, - {file = "fonttools-4.52.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:9725687db3c1cef13c0f40b380c3c15bea0113f4d0231b204d58edd5f2a53d90"}, - {file = "fonttools-4.52.4-cp310-cp310-win32.whl", hash = "sha256:9180775c9535389a665cae7c5282f8e07754beabf59b66aeba7f6bfeb32a3652"}, - {file = "fonttools-4.52.4-cp310-cp310-win_amd64.whl", hash = "sha256:46cc5d06ee05fd239c45d7935aaffd060ee773a88b97e901df50478247472643"}, - {file = "fonttools-4.52.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d272c7e173c3085308345ccc7fb2ad6ce7f415d777791dd6ce4e8140e354d09c"}, - {file = "fonttools-4.52.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:21921e5855c399d10ddfc373538b425cabcf8b3258720b51450909e108896450"}, - {file = "fonttools-4.52.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52f6001814ec5e0c961cabe89642f7e8d7e07892b565057aa526569b9ebb711c"}, - {file = "fonttools-4.52.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b0b9eb0f55dce9c7278ad4175f1cbaed23b799dce5ecc20e3213da241584140"}, - {file = "fonttools-4.52.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:70d87f2099006304d33438bdaa5101953b7e22e23a93b1c7b7ed0f32ff44b423"}, - {file = "fonttools-4.52.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e176249292eccd89f81d39f514f2b5e8c75dfc9cef8653bdc3021d06697e9eff"}, - {file = "fonttools-4.52.4-cp311-cp311-win32.whl", hash = "sha256:bb7d206fa5ba6e082ba5d5e1b7107731029fc3a55c71c48de65121710d817986"}, - {file = "fonttools-4.52.4-cp311-cp311-win_amd64.whl", hash = "sha256:346d08ff92e577b2dc5a0c228487667d23fe2da35a8b9a8bba22c2b6ba8be21c"}, - {file = "fonttools-4.52.4-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d2cc7906bc0afdd2689aaf88b910307333b1f936262d1d98f25dbf8a5eb2e829"}, - {file = "fonttools-4.52.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:00d9abf4b400f98fb895566eb298f60432b4b29048e3dc02807427b09a06604e"}, - {file = "fonttools-4.52.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b419207e53db1599b3d385afd4bca6692c219d53732890d0814a2593104d0e2"}, - {file = "fonttools-4.52.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf694159528022daa71b1777cb6ec9e0ebbdd29859f3e9c845826cafaef4ca29"}, - {file = "fonttools-4.52.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9a5d1b0475050056d2e3bc378014f2ea2230e8ae434eeac8dfb182aa8efaf642"}, - {file = "fonttools-4.52.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4c3ad89204c2d7f419436f1d6fde681b070c5e20b888beb57ccf92f640628cc9"}, - {file = "fonttools-4.52.4-cp312-cp312-win32.whl", hash = "sha256:1dc626de4b204d025d029e646bae8fdbf5acd9217158283a567f4b523fda3bae"}, - {file = "fonttools-4.52.4-cp312-cp312-win_amd64.whl", hash = "sha256:309b617942041073ffa96090d320b99d75648ed16e0c67fb1aa7788e06c834de"}, - {file = "fonttools-4.52.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8b186cd6b8844f6cf04a7e0a174bc3649d3deddbfc10dc59846a4381f796d348"}, - {file = "fonttools-4.52.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9ed23a03b7d9f0e29ca0679eafe5152aeccb0580312a3fc36f0662e178b4791b"}, - {file = "fonttools-4.52.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89b53386214197bd5b3e3c753895bad691de84726ced3c222a59cde1dd12d57b"}, - {file = "fonttools-4.52.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7467161f1eed557dbcec152d5ee95540200b1935709fa73307da16bc0b7ca361"}, - {file = "fonttools-4.52.4-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:b4cba644e2515d685d4ee3ca2fbb5d53930a0e9ec2cf332ed704dc341b145878"}, - {file = "fonttools-4.52.4-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:890e7a657574610330e42dd1e38d3b9e0a8cb0eff3da080f80995460a256d3dd"}, - {file = "fonttools-4.52.4-cp38-cp38-win32.whl", hash = "sha256:7dccf4666f716e5e0753f0fa28dad2f4431154c87747bc781c838b8a5dca990e"}, - {file = "fonttools-4.52.4-cp38-cp38-win_amd64.whl", hash = "sha256:a791f002d1b717268235cfae7e4957b7fd132e92e2c5400e521bf191f1b3a9a5"}, - {file = "fonttools-4.52.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:05e4291db6af66f466a203d9922e4c1d3e18ef16868f76f10b00e2c3b9814df2"}, - {file = "fonttools-4.52.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a64e72d2c144630e017ac9c1c416ddf8ac43bef9a083bf81fe08c0695f0baa95"}, - {file = "fonttools-4.52.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebb183ed8b789cece0bd6363121913fb6da4034af89a2fa5408e42a1592889a8"}, - {file = "fonttools-4.52.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a4daf2751a98c69d9620717826ed6c5743b662ef0ae7bb33dc6c205425e48eba"}, - {file = "fonttools-4.52.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:15efb2ba4b8c2d012ee0bb7a850c2e4780c530cc83ec8e843b2a97f8b3a5fd4b"}, - {file = "fonttools-4.52.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:35af630404223273f1d7acd4761f399131c62820366f53eac029337069f5826a"}, - {file = "fonttools-4.52.4-cp39-cp39-win32.whl", hash = "sha256:d0184aa88865339d96f7f452e8c5b621186ef7638744d78bf9b775d67e206819"}, - {file = "fonttools-4.52.4-cp39-cp39-win_amd64.whl", hash = "sha256:e03dae26084bb3632b4a77b1cd0419159d2226911aff6dc4c7e3058df68648c6"}, - {file = "fonttools-4.52.4-py3-none-any.whl", hash = "sha256:95e8a5975d08d0b624a14eec0f987e204ad81b480e24c5436af99170054434b8"}, - {file = "fonttools-4.52.4.tar.gz", hash = "sha256:859399b7adc8ac067be8e5c80ef4bb2faddff97e9b40896a9de75606a43d0469"}, + {file = "fonttools-4.55.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1dcc07934a2165ccdc3a5a608db56fb3c24b609658a5b340aee4ecf3ba679dc0"}, + {file = "fonttools-4.55.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f7d66c15ba875432a2d2fb419523f5d3d347f91f48f57b8b08a2dfc3c39b8a3f"}, + {file = "fonttools-4.55.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27e4ae3592e62eba83cd2c4ccd9462dcfa603ff78e09110680a5444c6925d841"}, + {file = "fonttools-4.55.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62d65a3022c35e404d19ca14f291c89cc5890032ff04f6c17af0bd1927299674"}, + {file = "fonttools-4.55.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d342e88764fb201286d185093781bf6628bbe380a913c24adf772d901baa8276"}, + {file = "fonttools-4.55.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:dd68c87a2bfe37c5b33bcda0fba39b65a353876d3b9006fde3adae31f97b3ef5"}, + {file = "fonttools-4.55.3-cp310-cp310-win32.whl", hash = "sha256:1bc7ad24ff98846282eef1cbeac05d013c2154f977a79886bb943015d2b1b261"}, + {file = "fonttools-4.55.3-cp310-cp310-win_amd64.whl", hash = "sha256:b54baf65c52952db65df39fcd4820668d0ef4766c0ccdf32879b77f7c804d5c5"}, + {file = "fonttools-4.55.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8c4491699bad88efe95772543cd49870cf756b019ad56294f6498982408ab03e"}, + {file = "fonttools-4.55.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5323a22eabddf4b24f66d26894f1229261021dacd9d29e89f7872dd8c63f0b8b"}, + {file = "fonttools-4.55.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5480673f599ad410695ca2ddef2dfefe9df779a9a5cda89503881e503c9c7d90"}, + {file = "fonttools-4.55.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da9da6d65cd7aa6b0f806556f4985bcbf603bf0c5c590e61b43aa3e5a0f822d0"}, + {file = "fonttools-4.55.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e894b5bd60d9f473bed7a8f506515549cc194de08064d829464088d23097331b"}, + {file = "fonttools-4.55.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:aee3b57643827e237ff6ec6d28d9ff9766bd8b21e08cd13bff479e13d4b14765"}, + {file = "fonttools-4.55.3-cp311-cp311-win32.whl", hash = "sha256:eb6ca911c4c17eb51853143624d8dc87cdcdf12a711fc38bf5bd21521e79715f"}, + {file = "fonttools-4.55.3-cp311-cp311-win_amd64.whl", hash = "sha256:6314bf82c54c53c71805318fcf6786d986461622dd926d92a465199ff54b1b72"}, + {file = "fonttools-4.55.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f9e736f60f4911061235603a6119e72053073a12c6d7904011df2d8fad2c0e35"}, + {file = "fonttools-4.55.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7a8aa2c5e5b8b3bcb2e4538d929f6589a5c6bdb84fd16e2ed92649fb5454f11c"}, + {file = "fonttools-4.55.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07f8288aacf0a38d174445fc78377a97fb0b83cfe352a90c9d9c1400571963c7"}, + {file = "fonttools-4.55.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8d5e8916c0970fbc0f6f1bece0063363bb5857a7f170121a4493e31c3db3314"}, + {file = "fonttools-4.55.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ae3b6600565b2d80b7c05acb8e24d2b26ac407b27a3f2e078229721ba5698427"}, + {file = "fonttools-4.55.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:54153c49913f45065c8d9e6d0c101396725c5621c8aee744719300f79771d75a"}, + {file = "fonttools-4.55.3-cp312-cp312-win32.whl", hash = "sha256:827e95fdbbd3e51f8b459af5ea10ecb4e30af50221ca103bea68218e9615de07"}, + {file = "fonttools-4.55.3-cp312-cp312-win_amd64.whl", hash = "sha256:e6e8766eeeb2de759e862004aa11a9ea3d6f6d5ec710551a88b476192b64fd54"}, + {file = "fonttools-4.55.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a430178ad3e650e695167cb53242dae3477b35c95bef6525b074d87493c4bf29"}, + {file = "fonttools-4.55.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:529cef2ce91dc44f8e407cc567fae6e49a1786f2fefefa73a294704c415322a4"}, + {file = "fonttools-4.55.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e75f12c82127486fac2d8bfbf5bf058202f54bf4f158d367e41647b972342ca"}, + {file = "fonttools-4.55.3-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:859c358ebf41db18fb72342d3080bce67c02b39e86b9fbcf1610cca14984841b"}, + {file = "fonttools-4.55.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:546565028e244a701f73df6d8dd6be489d01617863ec0c6a42fa25bf45d43048"}, + {file = "fonttools-4.55.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:aca318b77f23523309eec4475d1fbbb00a6b133eb766a8bdc401faba91261abe"}, + {file = "fonttools-4.55.3-cp313-cp313-win32.whl", hash = "sha256:8c5ec45428edaa7022f1c949a632a6f298edc7b481312fc7dc258921e9399628"}, + {file = "fonttools-4.55.3-cp313-cp313-win_amd64.whl", hash = "sha256:11e5de1ee0d95af4ae23c1a138b184b7f06e0b6abacabf1d0db41c90b03d834b"}, + {file = "fonttools-4.55.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:caf8230f3e10f8f5d7593eb6d252a37caf58c480b19a17e250a63dad63834cf3"}, + {file = "fonttools-4.55.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b586ab5b15b6097f2fb71cafa3c98edfd0dba1ad8027229e7b1e204a58b0e09d"}, + {file = "fonttools-4.55.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8c2794ded89399cc2169c4d0bf7941247b8d5932b2659e09834adfbb01589aa"}, + {file = "fonttools-4.55.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf4fe7c124aa3f4e4c1940880156e13f2f4d98170d35c749e6b4f119a872551e"}, + {file = "fonttools-4.55.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:86721fbc389ef5cc1e2f477019e5069e8e4421e8d9576e9c26f840dbb04678de"}, + {file = "fonttools-4.55.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:89bdc5d88bdeec1b15af790810e267e8332d92561dce4f0748c2b95c9bdf3926"}, + {file = "fonttools-4.55.3-cp38-cp38-win32.whl", hash = "sha256:bc5dbb4685e51235ef487e4bd501ddfc49be5aede5e40f4cefcccabc6e60fb4b"}, + {file = "fonttools-4.55.3-cp38-cp38-win_amd64.whl", hash = "sha256:cd70de1a52a8ee2d1877b6293af8a2484ac82514f10b1c67c1c5762d38073e56"}, + {file = "fonttools-4.55.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bdcc9f04b36c6c20978d3f060e5323a43f6222accc4e7fcbef3f428e216d96af"}, + {file = "fonttools-4.55.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c3ca99e0d460eff46e033cd3992a969658c3169ffcd533e0a39c63a38beb6831"}, + {file = "fonttools-4.55.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22f38464daa6cdb7b6aebd14ab06609328fe1e9705bb0fcc7d1e69de7109ee02"}, + {file = "fonttools-4.55.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed63959d00b61959b035c7d47f9313c2c1ece090ff63afea702fe86de00dbed4"}, + {file = "fonttools-4.55.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5e8d657cd7326eeaba27de2740e847c6b39dde2f8d7cd7cc56f6aad404ddf0bd"}, + {file = "fonttools-4.55.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:fb594b5a99943042c702c550d5494bdd7577f6ef19b0bc73877c948a63184a32"}, + {file = "fonttools-4.55.3-cp39-cp39-win32.whl", hash = "sha256:dc5294a3d5c84226e3dbba1b6f61d7ad813a8c0238fceea4e09aa04848c3d851"}, + {file = "fonttools-4.55.3-cp39-cp39-win_amd64.whl", hash = "sha256:aedbeb1db64496d098e6be92b2e63b5fac4e53b1b92032dfc6988e1ea9134a4d"}, + {file = "fonttools-4.55.3-py3-none-any.whl", hash = "sha256:f412604ccbeee81b091b420272841e5ec5ef68967a9790e80bffd0e30b8e2977"}, + {file = "fonttools-4.55.3.tar.gz", hash = "sha256:3983313c2a04d6cc1fe9251f8fc647754cf49a61dac6cb1e7249ae67afaafc45"}, ] [package.extras] @@ -1446,6 +1554,7 @@ woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] name = "fqdn" version = "1.5.1" description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" +category = "dev" optional = false python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" files = [ @@ -1455,13 +1564,14 @@ files = [ [[package]] name = "fsspec" -version = "2024.6.1" +version = "2024.10.0" description = "File-system specification" +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "fsspec-2024.6.1-py3-none-any.whl", hash = "sha256:3cb443f8bcd2efb31295a5b9fdb02aee81d8452c80d28f97a6d0959e6cee101e"}, - {file = "fsspec-2024.6.1.tar.gz", hash = "sha256:fad7d7e209dd4c1208e3bbfda706620e0da5142bebbd9c384afb95b07e798e49"}, + {file = "fsspec-2024.10.0-py3-none-any.whl", hash = "sha256:03b9a6785766a4de40368b88906366755e2819e758b83705c88cd7cb5fe81871"}, + {file = "fsspec-2024.10.0.tar.gz", hash = "sha256:eda2d8a4116d4f2429db8550f2457da57279247dd930bb12f821b58391359493"}, ] [package.extras] @@ -1496,6 +1606,7 @@ tqdm = ["tqdm"] name = "geoalchemy2" version = "0.14.7" description = "Using SQLAlchemy with Spatial Databases" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1512,79 +1623,75 @@ shapely = ["Shapely (>=1.7)"] [[package]] name = "geojson-pydantic" -version = "1.1.0" +version = "1.1.2" description = "Pydantic data models for the GeoJSON spec." +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "geojson_pydantic-1.1.0-py3-none-any.whl", hash = "sha256:0de723719d66e585123db10ead99dfa51aff8cec08be512646df25224ac425f4"}, - {file = "geojson_pydantic-1.1.0.tar.gz", hash = "sha256:b214dc746f1e085641e32f0aaa47e0bfa67eefa2cf60a516326c68b87808e2ae"}, + {file = "geojson_pydantic-1.1.2-py3-none-any.whl", hash = "sha256:2488736307c1717469419110b31413277fc1095eb2137592d5417e6100268d0f"}, + {file = "geojson_pydantic-1.1.2.tar.gz", hash = "sha256:be3b686e059dad95caff1ea411f020333b2c6182d87fcc4f69d1cbde2cca2c09"}, ] [package.dependencies] pydantic = ">=2.0,<3.0" [package.extras] -dev = ["pre-commit"] +dev = ["bump-my-version", "pre-commit"] docs = ["mkdocs", "mkdocs-material", "pygments"] test = ["pytest", "pytest-cov", "shapely"] [[package]] name = "gevent" -version = "24.2.1" +version = "24.11.1" description = "Coroutine-based network library" +category = "dev" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "gevent-24.2.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:6f947a9abc1a129858391b3d9334c45041c08a0f23d14333d5b844b6e5c17a07"}, - {file = "gevent-24.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde283313daf0b34a8d1bab30325f5cb0f4e11b5869dbe5bc61f8fe09a8f66f3"}, - {file = "gevent-24.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5a1df555431f5cd5cc189a6ee3544d24f8c52f2529134685f1e878c4972ab026"}, - {file = "gevent-24.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:14532a67f7cb29fb055a0e9b39f16b88ed22c66b96641df8c04bdc38c26b9ea5"}, - {file = "gevent-24.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd23df885318391856415e20acfd51a985cba6919f0be78ed89f5db9ff3a31cb"}, - {file = "gevent-24.2.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:ca80b121bbec76d7794fcb45e65a7eca660a76cc1a104ed439cdbd7df5f0b060"}, - {file = "gevent-24.2.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b9913c45d1be52d7a5db0c63977eebb51f68a2d5e6fd922d1d9b5e5fd758cc98"}, - {file = "gevent-24.2.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:918cdf8751b24986f915d743225ad6b702f83e1106e08a63b736e3a4c6ead789"}, - {file = "gevent-24.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:3d5325ccfadfd3dcf72ff88a92fb8fc0b56cacc7225f0f4b6dcf186c1a6eeabc"}, - {file = "gevent-24.2.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:03aa5879acd6b7076f6a2a307410fb1e0d288b84b03cdfd8c74db8b4bc882fc5"}, - {file = "gevent-24.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8bb35ce57a63c9a6896c71a285818a3922d8ca05d150fd1fe49a7f57287b836"}, - {file = "gevent-24.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d7f87c2c02e03d99b95cfa6f7a776409083a9e4d468912e18c7680437b29222c"}, - {file = "gevent-24.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:968581d1717bbcf170758580f5f97a2925854943c45a19be4d47299507db2eb7"}, - {file = "gevent-24.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7899a38d0ae7e817e99adb217f586d0a4620e315e4de577444ebeeed2c5729be"}, - {file = "gevent-24.2.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:f5e8e8d60e18d5f7fd49983f0c4696deeddaf6e608fbab33397671e2fcc6cc91"}, - {file = "gevent-24.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:fbfdce91239fe306772faab57597186710d5699213f4df099d1612da7320d682"}, - {file = "gevent-24.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cdf66977a976d6a3cfb006afdf825d1482f84f7b81179db33941f2fc9673bb1d"}, - {file = "gevent-24.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:1dffb395e500613e0452b9503153f8f7ba587c67dd4a85fc7cd7aa7430cb02cc"}, - {file = "gevent-24.2.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:6c47ae7d1174617b3509f5d884935e788f325eb8f1a7efc95d295c68d83cce40"}, - {file = "gevent-24.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7cac622e11b4253ac4536a654fe221249065d9a69feb6cdcd4d9af3503602e0"}, - {file = "gevent-24.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bf5b9c72b884c6f0c4ed26ef204ee1f768b9437330422492c319470954bc4cc7"}, - {file = "gevent-24.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f5de3c676e57177b38857f6e3cdfbe8f38d1cd754b63200c0615eaa31f514b4f"}, - {file = "gevent-24.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4faf846ed132fd7ebfbbf4fde588a62d21faa0faa06e6f468b7faa6f436b661"}, - {file = "gevent-24.2.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:368a277bd9278ddb0fde308e6a43f544222d76ed0c4166e0d9f6b036586819d9"}, - {file = "gevent-24.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:f8a04cf0c5b7139bc6368b461257d4a757ea2fe89b3773e494d235b7dd51119f"}, - {file = "gevent-24.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9d8d0642c63d453179058abc4143e30718b19a85cbf58c2744c9a63f06a1d388"}, - {file = "gevent-24.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:94138682e68ec197db42ad7442d3cf9b328069c3ad8e4e5022e6b5cd3e7ffae5"}, - {file = "gevent-24.2.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:8f4b8e777d39013595a7740b4463e61b1cfe5f462f1b609b28fbc1e4c4ff01e5"}, - {file = "gevent-24.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:141a2b24ad14f7b9576965c0c84927fc85f824a9bb19f6ec1e61e845d87c9cd8"}, - {file = "gevent-24.2.1-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:9202f22ef811053077d01f43cc02b4aaf4472792f9fd0f5081b0b05c926cca19"}, - {file = "gevent-24.2.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2955eea9c44c842c626feebf4459c42ce168685aa99594e049d03bedf53c2800"}, - {file = "gevent-24.2.1-cp38-cp38-win32.whl", hash = "sha256:44098038d5e2749b0784aabb27f1fcbb3f43edebedf64d0af0d26955611be8d6"}, - {file = "gevent-24.2.1-cp38-cp38-win_amd64.whl", hash = "sha256:117e5837bc74a1673605fb53f8bfe22feb6e5afa411f524c835b2ddf768db0de"}, - {file = "gevent-24.2.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:2ae3a25ecce0a5b0cd0808ab716bfca180230112bb4bc89b46ae0061d62d4afe"}, - {file = "gevent-24.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7ceb59986456ce851160867ce4929edaffbd2f069ae25717150199f8e1548b8"}, - {file = "gevent-24.2.1-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:2e9ac06f225b696cdedbb22f9e805e2dd87bf82e8fa5e17756f94e88a9d37cf7"}, - {file = "gevent-24.2.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:90cbac1ec05b305a1b90ede61ef73126afdeb5a804ae04480d6da12c56378df1"}, - {file = "gevent-24.2.1-cp39-cp39-win32.whl", hash = "sha256:782a771424fe74bc7e75c228a1da671578c2ba4ddb2ca09b8f959abdf787331e"}, - {file = "gevent-24.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:3adfb96637f44010be8abd1b5e73b5070f851b817a0b182e601202f20fa06533"}, - {file = "gevent-24.2.1-pp310-pypy310_pp73-macosx_11_0_universal2.whl", hash = "sha256:7b00f8c9065de3ad226f7979154a7b27f3b9151c8055c162332369262fc025d8"}, - {file = "gevent-24.2.1.tar.gz", hash = "sha256:432fc76f680acf7cf188c2ee0f5d3ab73b63c1f03114c7cd8a34cebbe5aa2056"}, + {file = "gevent-24.11.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:92fe5dfee4e671c74ffaa431fd7ffd0ebb4b339363d24d0d944de532409b935e"}, + {file = "gevent-24.11.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7bfcfe08d038e1fa6de458891bca65c1ada6d145474274285822896a858c870"}, + {file = "gevent-24.11.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7398c629d43b1b6fd785db8ebd46c0a353880a6fab03d1cf9b6788e7240ee32e"}, + {file = "gevent-24.11.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d7886b63ebfb865178ab28784accd32f287d5349b3ed71094c86e4d3ca738af5"}, + {file = "gevent-24.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9ca80711e6553880974898d99357fb649e062f9058418a92120ca06c18c3c59"}, + {file = "gevent-24.11.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e24181d172f50097ac8fc272c8c5b030149b630df02d1c639ee9f878a470ba2b"}, + {file = "gevent-24.11.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1d4fadc319b13ef0a3c44d2792f7918cf1bca27cacd4d41431c22e6b46668026"}, + {file = "gevent-24.11.1-cp310-cp310-win_amd64.whl", hash = "sha256:3d882faa24f347f761f934786dde6c73aa6c9187ee710189f12dcc3a63ed4a50"}, + {file = "gevent-24.11.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:351d1c0e4ef2b618ace74c91b9b28b3eaa0dd45141878a964e03c7873af09f62"}, + {file = "gevent-24.11.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5efe72e99b7243e222ba0c2c2ce9618d7d36644c166d63373af239da1036bab"}, + {file = "gevent-24.11.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d3b249e4e1f40c598ab8393fc01ae6a3b4d51fc1adae56d9ba5b315f6b2d758"}, + {file = "gevent-24.11.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81d918e952954675f93fb39001da02113ec4d5f4921bf5a0cc29719af6824e5d"}, + {file = "gevent-24.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9c935b83d40c748b6421625465b7308d87c7b3717275acd587eef2bd1c39546"}, + {file = "gevent-24.11.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff96c5739834c9a594db0e12bf59cb3fa0e5102fc7b893972118a3166733d61c"}, + {file = "gevent-24.11.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d6c0a065e31ef04658f799215dddae8752d636de2bed61365c358f9c91e7af61"}, + {file = "gevent-24.11.1-cp311-cp311-win_amd64.whl", hash = "sha256:97e2f3999a5c0656f42065d02939d64fffaf55861f7d62b0107a08f52c984897"}, + {file = "gevent-24.11.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:a3d75fa387b69c751a3d7c5c3ce7092a171555126e136c1d21ecd8b50c7a6e46"}, + {file = "gevent-24.11.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:beede1d1cff0c6fafae3ab58a0c470d7526196ef4cd6cc18e7769f207f2ea4eb"}, + {file = "gevent-24.11.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:85329d556aaedced90a993226d7d1186a539c843100d393f2349b28c55131c85"}, + {file = "gevent-24.11.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:816b3883fa6842c1cf9d2786722014a0fd31b6312cca1f749890b9803000bad6"}, + {file = "gevent-24.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b24d800328c39456534e3bc3e1684a28747729082684634789c2f5a8febe7671"}, + {file = "gevent-24.11.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a5f1701ce0f7832f333dd2faf624484cbac99e60656bfbb72504decd42970f0f"}, + {file = "gevent-24.11.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:d740206e69dfdfdcd34510c20adcb9777ce2cc18973b3441ab9767cd8948ca8a"}, + {file = "gevent-24.11.1-cp312-cp312-win_amd64.whl", hash = "sha256:68bee86b6e1c041a187347ef84cf03a792f0b6c7238378bf6ba4118af11feaae"}, + {file = "gevent-24.11.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:d618e118fdb7af1d6c1a96597a5cd6ac84a9f3732b5be8515c6a66e098d498b6"}, + {file = "gevent-24.11.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2142704c2adce9cd92f6600f371afb2860a446bfd0be5bd86cca5b3e12130766"}, + {file = "gevent-24.11.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:92e0d7759de2450a501effd99374256b26359e801b2d8bf3eedd3751973e87f5"}, + {file = "gevent-24.11.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ca845138965c8c56d1550499d6b923eb1a2331acfa9e13b817ad8305dde83d11"}, + {file = "gevent-24.11.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:356b73d52a227d3313f8f828025b665deada57a43d02b1cf54e5d39028dbcf8d"}, + {file = "gevent-24.11.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:58851f23c4bdb70390f10fc020c973ffcf409eb1664086792c8b1e20f25eef43"}, + {file = "gevent-24.11.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:1ea50009ecb7f1327347c37e9eb6561bdbc7de290769ee1404107b9a9cba7cf1"}, + {file = "gevent-24.11.1-cp313-cp313-win_amd64.whl", hash = "sha256:ec68e270543ecd532c4c1d70fca020f90aa5486ad49c4f3b8b2e64a66f5c9274"}, + {file = "gevent-24.11.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9347690f4e53de2c4af74e62d6fabc940b6d4a6cad555b5a379f61e7d3f2a8e"}, + {file = "gevent-24.11.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8619d5c888cb7aebf9aec6703e410620ef5ad48cdc2d813dd606f8aa7ace675f"}, + {file = "gevent-24.11.1-cp39-cp39-win32.whl", hash = "sha256:c6b775381f805ff5faf250e3a07c0819529571d19bb2a9d474bee8c3f90d66af"}, + {file = "gevent-24.11.1-cp39-cp39-win_amd64.whl", hash = "sha256:1c3443b0ed23dcb7c36a748d42587168672953d368f2956b17fad36d43b58836"}, + {file = "gevent-24.11.1-pp310-pypy310_pp73-macosx_11_0_universal2.whl", hash = "sha256:f43f47e702d0c8e1b8b997c00f1601486f9f976f84ab704f8f11536e3fa144c9"}, + {file = "gevent-24.11.1.tar.gz", hash = "sha256:8bd1419114e9e4a3ed33a5bad766afff9a3cf765cb440a582a1b3a9bc80c1aca"}, ] [package.dependencies] -cffi = {version = ">=1.12.2", markers = "platform_python_implementation == \"CPython\" and sys_platform == \"win32\""} -greenlet = [ - {version = ">=2.0.0", markers = "platform_python_implementation == \"CPython\" and python_version < \"3.11\""}, - {version = ">=3.0rc3", markers = "platform_python_implementation == \"CPython\" and python_version >= \"3.11\""}, -] +cffi = {version = ">=1.17.1", markers = "platform_python_implementation == \"CPython\" and sys_platform == \"win32\""} +greenlet = {version = ">=3.1.1", markers = "platform_python_implementation == \"CPython\""} "zope.event" = "*" "zope.interface" = "*" @@ -1592,79 +1699,95 @@ greenlet = [ dnspython = ["dnspython (>=1.16.0,<2.0)", "idna"] docs = ["furo", "repoze.sphinx.autointerface", "sphinx", "sphinxcontrib-programoutput", "zope.schema"] monitor = ["psutil (>=5.7.0)"] -recommended = ["cffi (>=1.12.2)", "dnspython (>=1.16.0,<2.0)", "idna", "psutil (>=5.7.0)"] -test = ["cffi (>=1.12.2)", "coverage (>=5.0)", "dnspython (>=1.16.0,<2.0)", "idna", "objgraph", "psutil (>=5.7.0)", "requests"] +recommended = ["cffi (>=1.17.1)", "dnspython (>=1.16.0,<2.0)", "idna", "psutil (>=5.7.0)"] +test = ["cffi (>=1.17.1)", "coverage (>=5.0)", "dnspython (>=1.16.0,<2.0)", "idna", "objgraph", "psutil (>=5.7.0)", "requests"] [[package]] name = "geventhttpclient" -version = "2.3.1" +version = "2.3.3" description = "HTTP client library for gevent" +category = "dev" optional = false python-versions = ">=3.9" files = [ - {file = "geventhttpclient-2.3.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:da22ab7bf5af4ba3d07cffee6de448b42696e53e7ac1fe97ed289037733bf1c2"}, - {file = "geventhttpclient-2.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2399e3d4e2fae8bbd91756189da6e9d84adf8f3eaace5eef0667874a705a29f8"}, - {file = "geventhttpclient-2.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d3e33e87d0d5b9f5782c4e6d3cb7e3592fea41af52713137d04776df7646d71b"}, - {file = "geventhttpclient-2.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c071db313866c3d0510feb6c0f40ec086ccf7e4a845701b6316c82c06e8b9b29"}, - {file = "geventhttpclient-2.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f36f0c6ef88a27e60af8369d9c2189fe372c6f2943182a7568e0f2ad33bb69f1"}, - {file = "geventhttpclient-2.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c4624843c03a5337282a42247d987c2531193e57255ee307b36eeb4f243a0c21"}, - {file = "geventhttpclient-2.3.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d614573621ba827c417786057e1e20e9f96c4f6b3878c55b1b7b54e1026693bc"}, - {file = "geventhttpclient-2.3.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:5d51330a40ac9762879d0e296c279c1beae8cfa6484bb196ac829242c416b709"}, - {file = "geventhttpclient-2.3.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bc9f2162d4e8cb86bb5322d99bfd552088a3eacd540a841298f06bb8bc1f1f03"}, - {file = "geventhttpclient-2.3.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:06e59d3397e63c65ecc7a7561a5289f0cf2e2c2252e29632741e792f57f5d124"}, - {file = "geventhttpclient-2.3.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4436eef515b3e0c1d4a453ae32e047290e780a623c1eddb11026ae9d5fb03d42"}, - {file = "geventhttpclient-2.3.1-cp310-cp310-win32.whl", hash = "sha256:5d1cf7d8a4f8e15cc8fd7d88ac4cdb058d6274203a42587e594cc9f0850ac862"}, - {file = "geventhttpclient-2.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:4deaebc121036f7ea95430c2d0f80ab085b15280e6ab677a6360b70e57020e7f"}, - {file = "geventhttpclient-2.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f0ae055b9ce1704f2ce72c0847df28f4e14dbb3eea79256cda6c909d82688ea3"}, - {file = "geventhttpclient-2.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f087af2ac439495b5388841d6f3c4de8d2573ca9870593d78f7b554aa5cfa7f5"}, - {file = "geventhttpclient-2.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:76c367d175810facfe56281e516c9a5a4a191eff76641faaa30aa33882ed4b2f"}, - {file = "geventhttpclient-2.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a58376d0d461fe0322ff2ad362553b437daee1eeb92b4c0e3b1ffef9e77defbe"}, - {file = "geventhttpclient-2.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f440cc704f8a9869848a109b2c401805c17c070539b2014e7b884ecfc8591e33"}, - {file = "geventhttpclient-2.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f10c62994f9052f23948c19de930b2d1f063240462c8bd7077c2b3290e61f4fa"}, - {file = "geventhttpclient-2.3.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:52c45d9f3dd9627844c12e9ca347258c7be585bed54046336220e25ea6eac155"}, - {file = "geventhttpclient-2.3.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:77c1a2c6e3854bf87cd5588b95174640c8a881716bd07fa0d131d082270a6795"}, - {file = "geventhttpclient-2.3.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ce649d4e25c2d56023471df0bf1e8e2ab67dfe4ff12ce3e8fe7e6fae30cd672a"}, - {file = "geventhttpclient-2.3.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:265d9f31b4ac8f688eebef0bd4c814ffb37a16f769ad0c8c8b8c24a84db8eab5"}, - {file = "geventhttpclient-2.3.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2de436a9d61dae877e4e811fb3e2594e2a1df1b18f4280878f318aef48a562b9"}, - {file = "geventhttpclient-2.3.1-cp311-cp311-win32.whl", hash = "sha256:83e22178b9480b0a95edf0053d4f30b717d0b696b3c262beabe6964d9c5224b1"}, - {file = "geventhttpclient-2.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:97b072a282233384c1302a7dee88ad8bfedc916f06b1bc1da54f84980f1406a9"}, - {file = "geventhttpclient-2.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:e1c90abcc2735cd8dd2d2572a13da32f6625392dc04862decb5c6476a3ddee22"}, - {file = "geventhttpclient-2.3.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5deb41c2f51247b4e568c14964f59d7b8e537eff51900564c88af3200004e678"}, - {file = "geventhttpclient-2.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c6f1a56a66a90c4beae2f009b5e9d42db9a58ced165aa35441ace04d69cb7b37"}, - {file = "geventhttpclient-2.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8ee6e741849c29e3129b1ec3828ac3a5e5dcb043402f852ea92c52334fb8cabf"}, - {file = "geventhttpclient-2.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0d0972096a63b1ddaa73fa3dab2c7a136e3ab8bf7999a2f85a5dee851fa77cdd"}, - {file = "geventhttpclient-2.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:00675ba682fb7d19d659c14686fa8a52a65e3f301b56c2a4ee6333b380dd9467"}, - {file = "geventhttpclient-2.3.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea77b67c186df90473416f4403839728f70ef6cf1689cec97b4f6bbde392a8a8"}, - {file = "geventhttpclient-2.3.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ddcc3f0fdffd9a3801e1005b73026202cffed8199863fdef9315bea9a860a032"}, - {file = "geventhttpclient-2.3.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:c9f1ef4ec048563cc621a47ff01a4f10048ff8b676d7a4d75e5433ed8e703e56"}, - {file = "geventhttpclient-2.3.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:a364b30bec7a0a00dbe256e2b6807e4dc866bead7ac84aaa51ca5e2c3d15c258"}, - {file = "geventhttpclient-2.3.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:25d255383d3d6a6fbd643bb51ae1a7e4f6f7b0dbd5f3225b537d0bd0432eaf39"}, - {file = "geventhttpclient-2.3.1-cp312-cp312-win32.whl", hash = "sha256:ad0b507e354d2f398186dcb12fe526d0594e7c9387b514fb843f7a14fdf1729a"}, - {file = "geventhttpclient-2.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:7924e0883bc2b177cfe27aa65af6bb9dd57f3e26905c7675a2d1f3ef69df7cca"}, - {file = "geventhttpclient-2.3.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:fe912c6456faab196b952adcd63e9353a0d5c8deb31c8d733d38f4f0ab22e359"}, - {file = "geventhttpclient-2.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8b599359779c2278018786c35d70664d441a7cd0d6baef2b2cd0d1685cf478ed"}, - {file = "geventhttpclient-2.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:34107b506e2c40ec7784efa282469bf86888cacddced463dceeb58c201834897"}, - {file = "geventhttpclient-2.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc34031905b2b31a80d88cd33d7e42b81812950e5304860ab6a65ee2803e2046"}, - {file = "geventhttpclient-2.3.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:50b54f67ba2087f4d9d2172065c5c5de0f0c7f865ac350116e5452de4be31444"}, - {file = "geventhttpclient-2.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9ddeb431836c2ef7fd33c505a06180dc907b474e0e8537a43ff12e12c9bf0307"}, - {file = "geventhttpclient-2.3.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4890713433ca19b081f70b5f7ad258a0979ec3354f9538b50b3ad7d0a86f88de"}, - {file = "geventhttpclient-2.3.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b8ca7dcbe94cb563341087b00b6fbd0fdd70b2acc1b5d963f9ebbfbc1e5e2893"}, - {file = "geventhttpclient-2.3.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:05a1bbdd43ae36bcc10b3dbfa0806aefc5033a91efecfddfe56159446a46ea71"}, - {file = "geventhttpclient-2.3.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f82c454595a88a5e510ae0985711ef398386998b6f37d90fc30e9ff1a2001280"}, - {file = "geventhttpclient-2.3.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6b032a5cdb1721921f4cd36aad620af318263b462962cfb23d648cdb93aab232"}, - {file = "geventhttpclient-2.3.1-cp39-cp39-win32.whl", hash = "sha256:ce2c7d18bac7ffdacc4a86cd490bea6136a7d1e1170f8624f2e3bbe3b189d5b8"}, - {file = "geventhttpclient-2.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:6ca50dd9761971d3557b897108933b34fb4a11533d52f0f2753840c740a2861a"}, - {file = "geventhttpclient-2.3.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c31431e38df45b3c79bf3c9427c796adb8263d622bc6fa25e2f6ba916c2aad93"}, - {file = "geventhttpclient-2.3.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:855ab1e145575769b180b57accb0573a77cd6a7392f40a6ef7bc9a4926ebd77b"}, - {file = "geventhttpclient-2.3.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a374aad77c01539e786d0c7829bec2eba034ccd45733c1bf9811ad18d2a8ecd"}, - {file = "geventhttpclient-2.3.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66c1e97460608304f400485ac099736fff3566d3d8db2038533d466f8cf5de5a"}, - {file = "geventhttpclient-2.3.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:4f843f81ee44ba4c553a1b3f73115e0ad8f00044023c24db29f5b1df3da08465"}, - {file = "geventhttpclient-2.3.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:321b73c73d73b85cfeff36b9b5ee04174ec8406fb3dadc129558a26ccb879360"}, - {file = "geventhttpclient-2.3.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:829d03c2a140edbe74ad1fb4f850384f585f3e06fc47cfe647d065412b93926f"}, - {file = "geventhttpclient-2.3.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:994c543f156db7bce3bae15491a0e041eeb3f1cf467e0d1db0c161a900a90bec"}, - {file = "geventhttpclient-2.3.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4beff505306aa9da5cdfe2f206b403ec7c8d06a22d6b7248365772858c4ee8c"}, - {file = "geventhttpclient-2.3.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:fb0a9673074541ccda09a2423fa16f4528819ceb1ba19d252213f6aca7d4b44a"}, - {file = "geventhttpclient-2.3.1.tar.gz", hash = "sha256:b40ddac8517c456818942c7812f555f84702105c82783238c9fcb8dc12675185"}, + {file = "geventhttpclient-2.3.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d61cad95f80d5bd599e28933c187b3c4eeb0b2f6306e06fa0edcac5c9c4bac0a"}, + {file = "geventhttpclient-2.3.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7a00e130577c0cf9749d1143e71543c50c7103321b7f37afc42782ad1d3c0ef7"}, + {file = "geventhttpclient-2.3.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:14664f4a2d0296d6be5b65b6e57627987e0c2ecffd0ae6d7f9160bf119e8d728"}, + {file = "geventhttpclient-2.3.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8fdfcf45166cecdade78d3dcb9c7615793269fa3d2d7fea328fe007bd87d84c6"}, + {file = "geventhttpclient-2.3.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:35a6de7088ad69ba1561deaf854bf34c78a0eee33027b24aa7c44cdbe840b1d8"}, + {file = "geventhttpclient-2.3.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:61b34527938e3ab477ecc90ec6bcde9780468722abececf548cbae89e4cd9d0b"}, + {file = "geventhttpclient-2.3.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b366bf38dd5335868a2ea077091af707c1111f70ee4cc8aa60dc14f56928158e"}, + {file = "geventhttpclient-2.3.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:1fbfeea0242f30b9bfd2e982fc82aa2977eeef17e2526a681f7e8e1e37b2569a"}, + {file = "geventhttpclient-2.3.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:f584fa36981b8a93799c63226a3deb385d1cc4f19eacd5dd6c696da0ecb4cca6"}, + {file = "geventhttpclient-2.3.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:b29e1383725d99e583e8ad125cfa820b8368ae7cfad642167bca869f55c4b000"}, + {file = "geventhttpclient-2.3.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c02e50baf4589c7b35db0f96fae7f3bd7e2dfbed2e1a2c1a0aa5696b91dff889"}, + {file = "geventhttpclient-2.3.3-cp310-cp310-win32.whl", hash = "sha256:5865be94cf03aa219ff4d6fe3a01be798f1205d7d9611e51e75f2606c7c9ae35"}, + {file = "geventhttpclient-2.3.3-cp310-cp310-win_amd64.whl", hash = "sha256:53033fc1aac51b7513858662d8e17f44aa05207c3772d69fb1a07e2c5a2e45e4"}, + {file = "geventhttpclient-2.3.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0b1a60f810896a3e59a0e1036aa8fc31478e1ec0dd3faac7a771dd3d956580ce"}, + {file = "geventhttpclient-2.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:452c3c2c15830fc0be7ea76c6d98f49df0a94327fbdd63822a840ad3125796dc"}, + {file = "geventhttpclient-2.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:947e4f511e45abcc24fc982cee6042d14dc765d1a9ebd3c660cb93714002f950"}, + {file = "geventhttpclient-2.3.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6dea544c829894366cfaa4d36a2014557a99f8769c9dd7b8fbf9b607126e04a"}, + {file = "geventhttpclient-2.3.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b5eba36ea0ad819386e3850a71a42af53e6b9be86d4605d6ded061503573928"}, + {file = "geventhttpclient-2.3.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a96e96b63ddcea3d25f62b204aafb523782ff0fcf45b38eb596f8ae4a0f17326"}, + {file = "geventhttpclient-2.3.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:386f0c9215958b9c974031fdbaa84002b4291b67bfe6dc5833cfb6e28083bb95"}, + {file = "geventhttpclient-2.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2209e77a101ae67d3355d506f65257908f1eb41db74f765b01cb191e4a5160d5"}, + {file = "geventhttpclient-2.3.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:6552c4d91c38007824f43a13fbbf4c615b7c6abe94fc2d482752ea91d976e140"}, + {file = "geventhttpclient-2.3.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e4b503183be80a1fb027eb5582413ca2be60356a7cf8eb9d49b913703f4ecd93"}, + {file = "geventhttpclient-2.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c8831f3ff03c11f64ad3b306883a8b064ef75f16a9f6a85cd105286023fba030"}, + {file = "geventhttpclient-2.3.3-cp311-cp311-win32.whl", hash = "sha256:aa56b2b0477b4b9c325251c1672d29762d08c5d2ad8d9e5db0b8279872e0030d"}, + {file = "geventhttpclient-2.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:566d7fb431d416bfb0cc431ec74062858133ee94b5001e32f9607a9433cc1e4f"}, + {file = "geventhttpclient-2.3.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1ad896af16ffa276620f4f555ef057fe11a2aa6af21dc0136600d0b7738e67ae"}, + {file = "geventhttpclient-2.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:caf12944df25318a8c5b4deebc35ac94951562da154f039712ae3cde40ec5d95"}, + {file = "geventhttpclient-2.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c2586f3c2602cde0c3e5345813c0ab461142d1522667436b04d8a7dd7e7576c8"}, + {file = "geventhttpclient-2.3.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0248bbc2ff430dc2bec89e44715e4a38c7f2097ad2a133ca190f74fee51e5ef"}, + {file = "geventhttpclient-2.3.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:493d5deb230e28fdd8d0d0f8e7addb4e7b9761e6a1115ea72f22b231835e546b"}, + {file = "geventhttpclient-2.3.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:acccefebf3b1cc81f90d384dd17c1b3b58deee5ea1891025ef409307a22036b6"}, + {file = "geventhttpclient-2.3.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aadaabe9267aacec88912ae5ac84b232e16a0ed12c5256559637f4b74aa510e8"}, + {file = "geventhttpclient-2.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c16830c9cad42c50f87e939f8065dc922010bbcbfb801fa12fd74d091dae7bef"}, + {file = "geventhttpclient-2.3.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d686ce9ad28ddcb36b7748a59e64e2d8acfaa0145f0817becace36b1cfa4e5c6"}, + {file = "geventhttpclient-2.3.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:98bfa7cf5b6246b28e05a72505211b60a6ecb63c934dd70b806e662869b009f6"}, + {file = "geventhttpclient-2.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dc77b39246ba5d2484567100377f100e4aa50b6b8849d3e547d68dc0138087dd"}, + {file = "geventhttpclient-2.3.3-cp312-cp312-win32.whl", hash = "sha256:032b4c519b5e7022c9563dbc7d1fac21ededb49f9e46ff2a9c44d1095747d2ea"}, + {file = "geventhttpclient-2.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:cf1051cc18521cd0819d3d69d930a4de916fb6f62be829b675481ca47e960765"}, + {file = "geventhttpclient-2.3.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e5a14dd4e3504f05fc9febaedcb7cc91222da7176a6a9a2e703ab0cd85444016"}, + {file = "geventhttpclient-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4d6ae4ce130bf91cbdbab951b39a5faeb82b50f37a027afaac1cc956b344cc5d"}, + {file = "geventhttpclient-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f16cf2fd71e6b77e6153a66aae282da00958b43345879e222605a3a7556e3a"}, + {file = "geventhttpclient-2.3.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50c62dbe5f43c9e0ee43f872de44aebf4968695d90804d71fc1bf32b827fae16"}, + {file = "geventhttpclient-2.3.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d3a52ee992488ff087a3ec99d0076541ba1b07464c8eac22ad1a7778860bc345"}, + {file = "geventhttpclient-2.3.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52450392f3b9d32563c685013ba30b028f948612ebb9b1bfd6ba4ae113d985dc"}, + {file = "geventhttpclient-2.3.3-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1642c8b3042b675a5b7ad67bce9611415d7bce0cf0380c0be52b7e5f55bc3e8"}, + {file = "geventhttpclient-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a36145c0b34d3c0e8c0c4a9d2e6d6f2b9f382c12e698fadb6a646a9b320a6c69"}, + {file = "geventhttpclient-2.3.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:49512144af09fb2438a3e14e14863e7556434be3676efdaa0379198ce38bf1e2"}, + {file = "geventhttpclient-2.3.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:8b78a8e5ff3c06dfee63b8457740c1d7d2f0687f85ded76dfca2b25f52200a1c"}, + {file = "geventhttpclient-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8bba80efc5c95e94641dc3e9864ab37829111a4e90bdf2ef08b1206c7a89dd94"}, + {file = "geventhttpclient-2.3.3-cp313-cp313-win32.whl", hash = "sha256:4a942448e77c01286edc4c29c22575d701d0639d42d0061b37025e118129372a"}, + {file = "geventhttpclient-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:b1ee31fed440029e20c99c89e49a0f983b771e7529db81fab33d942193036c41"}, + {file = "geventhttpclient-2.3.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0e30bb1f0e754720ecbacf353db054ba1c3fa01d6016d00978eeed60b066703b"}, + {file = "geventhttpclient-2.3.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:72011601bcd0952a8f4188893307dc0263f96e967126bc4df2e15d2f74fa4622"}, + {file = "geventhttpclient-2.3.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:12354718a63e2314c6dd1a6cd4d65cb0db7423062fb0aaaf1dee258cfa51e795"}, + {file = "geventhttpclient-2.3.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6bbab6fef671cc7268cd54f9d018a703542ec767998da0164bb61eb789f8d069"}, + {file = "geventhttpclient-2.3.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:34622d675af26d9289d6bd5f03721cedc01db3ed99e1244360b48c73228d113c"}, + {file = "geventhttpclient-2.3.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:795ad495865fc535ceb19908c5b0b468d6ccf94b44c3c3229cae85616da400ab"}, + {file = "geventhttpclient-2.3.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0fbaedf4227f3691bc9e1080f42ebdf1b4131fc5aa09b00ed3934626197a9fbe"}, + {file = "geventhttpclient-2.3.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f062f4120661c25cc87b7cbec1c4b27e83f618604d1403e950191835b999a61a"}, + {file = "geventhttpclient-2.3.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:0d99d09fc20e91902a7b81000d4b819c4da1d5911b2452e948bffd00dbd3722e"}, + {file = "geventhttpclient-2.3.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:aafdd67e7c4163f0245e1785c1dc42b2f4fdaacae1f28c68758f06010335f93c"}, + {file = "geventhttpclient-2.3.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:36f9a4c93eb8927376c995cc91857a1e94dd4a68a0c459870adb11799ceea75d"}, + {file = "geventhttpclient-2.3.3-cp39-cp39-win32.whl", hash = "sha256:a4d4f777a9b55d6babbf5525623ad74e543e6fbb86bc3305bf24d80fcc0190dc"}, + {file = "geventhttpclient-2.3.3-cp39-cp39-win_amd64.whl", hash = "sha256:f5724370d95ce9753846ff90d7805a11f7981d9dc579e3a229fa594cb401da98"}, + {file = "geventhttpclient-2.3.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:a8519b9aacad25696a220c1217047d5277403df96cb8aa8e9a5ec5271798cb87"}, + {file = "geventhttpclient-2.3.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:cbfcb54ee015aa38c8e9eb3bb4be68f88fbce6cbf90f716fc3ffc5f49892f721"}, + {file = "geventhttpclient-2.3.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93e9c4f27d48ce4da6dde530aea00e8d427965ace0801fe3d7c4739e167c10de"}, + {file = "geventhttpclient-2.3.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:447fc2d49a41449684154c12c03ab80176a413e9810d974363a061b71bdbf5a0"}, + {file = "geventhttpclient-2.3.3-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4598c2aa14c866a10a07a2944e2c212f53d0c337ce211336ad68ae8243646216"}, + {file = "geventhttpclient-2.3.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:69d2bd7ab7f94a6c73325f4b88fd07b0d5f4865672ed7a519f2d896949353761"}, + {file = "geventhttpclient-2.3.3-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7a3182f1457599c2901c48a1def37a5bc4762f696077e186e2050fcc60b2fbdf"}, + {file = "geventhttpclient-2.3.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:86b489238dc2cbfa53cdd5621e888786a53031d327e0a8509529c7568292b0ce"}, + {file = "geventhttpclient-2.3.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4c8aca6ab5da4211870c1d8410c699a9d543e86304aac47e1558ec94d0da97a"}, + {file = "geventhttpclient-2.3.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:29fe3b6523efa8cdcb5e9bad379f9055e4f0ebb914e4dcd8a0ca33b003b402f5"}, + {file = "geventhttpclient-2.3.3-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e32313c833dfbe27d3f66feacac667ae937859dbbd58e25d1172329c8b368426"}, + {file = "geventhttpclient-2.3.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4fc1d824602d9590a2b88ac14cfe6d2ecc357e91472ecfe719973c40aab25f4e"}, + {file = "geventhttpclient-2.3.3.tar.gz", hash = "sha256:3e74c1570d01dd09cabdfe2667fbf072520ec9bb3a31a0fd1eae3d0f43847f9b"}, ] [package.dependencies] @@ -1682,6 +1805,7 @@ examples = ["oauth2"] name = "gql" version = "3.5.0" description = "GraphQL client for Python" +category = "dev" optional = false python-versions = "*" files = [ @@ -1709,19 +1833,21 @@ websockets = ["websockets (>=10,<12)"] [[package]] name = "graphql-core" -version = "3.2.3" +version = "3.2.5" description = "GraphQL implementation for Python, a port of GraphQL.js, the JavaScript reference implementation for GraphQL." +category = "dev" optional = false -python-versions = ">=3.6,<4" +python-versions = "<4,>=3.6" files = [ - {file = "graphql-core-3.2.3.tar.gz", hash = "sha256:06d2aad0ac723e35b1cb47885d3e5c45e956a53bc1b209a9fc5369007fe46676"}, - {file = "graphql_core-3.2.3-py3-none-any.whl", hash = "sha256:5766780452bd5ec8ba133f8bf287dc92713e3868ddd83aee4faab9fc3e303dc3"}, + {file = "graphql_core-3.2.5-py3-none-any.whl", hash = "sha256:2f150d5096448aa4f8ab26268567bbfeef823769893b39c1a2e1409590939c8a"}, + {file = "graphql_core-3.2.5.tar.gz", hash = "sha256:e671b90ed653c808715645e3998b7ab67d382d55467b7e2978549111bbabf8d5"}, ] [[package]] name = "graphviz" version = "0.20.3" description = "Simple Python interface for Graphviz" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1736,69 +1862,85 @@ test = ["coverage", "pytest (>=7,<8.1)", "pytest-cov", "pytest-mock (>=3)"] [[package]] name = "greenlet" -version = "3.0.3" +version = "3.1.1" description = "Lightweight in-process concurrent programming" +category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "greenlet-3.0.3-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:9da2bd29ed9e4f15955dd1595ad7bc9320308a3b766ef7f837e23ad4b4aac31a"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d353cadd6083fdb056bb46ed07e4340b0869c305c8ca54ef9da3421acbdf6881"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dca1e2f3ca00b84a396bc1bce13dd21f680f035314d2379c4160c98153b2059b"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ed7fb269f15dc662787f4119ec300ad0702fa1b19d2135a37c2c4de6fadfd4a"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd4f49ae60e10adbc94b45c0b5e6a179acc1736cf7a90160b404076ee283cf83"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:73a411ef564e0e097dbe7e866bb2dda0f027e072b04da387282b02c308807405"}, - {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7f362975f2d179f9e26928c5b517524e89dd48530a0202570d55ad6ca5d8a56f"}, - {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:649dde7de1a5eceb258f9cb00bdf50e978c9db1b996964cd80703614c86495eb"}, - {file = "greenlet-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:68834da854554926fbedd38c76e60c4a2e3198c6fbed520b106a8986445caaf9"}, - {file = "greenlet-3.0.3-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:b1b5667cced97081bf57b8fa1d6bfca67814b0afd38208d52538316e9422fc61"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52f59dd9c96ad2fc0d5724107444f76eb20aaccb675bf825df6435acb7703559"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:afaff6cf5200befd5cec055b07d1c0a5a06c040fe5ad148abcd11ba6ab9b114e"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe754d231288e1e64323cfad462fcee8f0288654c10bdf4f603a39ed923bef33"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2797aa5aedac23af156bbb5a6aa2cd3427ada2972c828244eb7d1b9255846379"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7f009caad047246ed379e1c4dbcb8b020f0a390667ea74d2387be2998f58a22"}, - {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c5e1536de2aad7bf62e27baf79225d0d64360d4168cf2e6becb91baf1ed074f3"}, - {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:894393ce10ceac937e56ec00bb71c4c2f8209ad516e96033e4b3b1de270e200d"}, - {file = "greenlet-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:1ea188d4f49089fc6fb283845ab18a2518d279c7cd9da1065d7a84e991748728"}, - {file = "greenlet-3.0.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:70fb482fdf2c707765ab5f0b6655e9cfcf3780d8d87355a063547b41177599be"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4d1ac74f5c0c0524e4a24335350edad7e5f03b9532da7ea4d3c54d527784f2e"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:149e94a2dd82d19838fe4b2259f1b6b9957d5ba1b25640d2380bea9c5df37676"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15d79dd26056573940fcb8c7413d84118086f2ec1a8acdfa854631084393efcc"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b7db1ebff4ba09aaaeae6aa491daeb226c8150fc20e836ad00041bcb11230"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fcd2469d6a2cf298f198f0487e0a5b1a47a42ca0fa4dfd1b6862c999f018ebbf"}, - {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1f672519db1796ca0d8753f9e78ec02355e862d0998193038c7073045899f305"}, - {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2516a9957eed41dd8f1ec0c604f1cdc86758b587d964668b5b196a9db5bfcde6"}, - {file = "greenlet-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:bba5387a6975598857d86de9eac14210a49d554a77eb8261cc68b7d082f78ce2"}, - {file = "greenlet-3.0.3-cp37-cp37m-macosx_11_0_universal2.whl", hash = "sha256:5b51e85cb5ceda94e79d019ed36b35386e8c37d22f07d6a751cb659b180d5274"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:daf3cb43b7cf2ba96d614252ce1684c1bccee6b2183a01328c98d36fcd7d5cb0"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99bf650dc5d69546e076f413a87481ee1d2d09aaaaaca058c9251b6d8c14783f"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dd6e660effd852586b6a8478a1d244b8dc90ab5b1321751d2ea15deb49ed414"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3391d1e16e2a5a1507d83e4a8b100f4ee626e8eca43cf2cadb543de69827c4c"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e1f145462f1fa6e4a4ae3c0f782e580ce44d57c8f2c7aae1b6fa88c0b2efdb41"}, - {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1a7191e42732df52cb5f39d3527217e7ab73cae2cb3694d241e18f53d84ea9a7"}, - {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0448abc479fab28b00cb472d278828b3ccca164531daab4e970a0458786055d6"}, - {file = "greenlet-3.0.3-cp37-cp37m-win32.whl", hash = "sha256:b542be2440edc2d48547b5923c408cbe0fc94afb9f18741faa6ae970dbcb9b6d"}, - {file = "greenlet-3.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:01bc7ea167cf943b4c802068e178bbf70ae2e8c080467070d01bfa02f337ee67"}, - {file = "greenlet-3.0.3-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:1996cb9306c8595335bb157d133daf5cf9f693ef413e7673cb07e3e5871379ca"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ddc0f794e6ad661e321caa8d2f0a55ce01213c74722587256fb6566049a8b04"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9db1c18f0eaad2f804728c67d6c610778456e3e1cc4ab4bbd5eeb8e6053c6fc"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7170375bcc99f1a2fbd9c306f5be8764eaf3ac6b5cb968862cad4c7057756506"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b66c9c1e7ccabad3a7d037b2bcb740122a7b17a53734b7d72a344ce39882a1b"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:098d86f528c855ead3479afe84b49242e174ed262456c342d70fc7f972bc13c4"}, - {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:81bb9c6d52e8321f09c3d165b2a78c680506d9af285bfccbad9fb7ad5a5da3e5"}, - {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fd096eb7ffef17c456cfa587523c5f92321ae02427ff955bebe9e3c63bc9f0da"}, - {file = "greenlet-3.0.3-cp38-cp38-win32.whl", hash = "sha256:d46677c85c5ba00a9cb6f7a00b2bfa6f812192d2c9f7d9c4f6a55b60216712f3"}, - {file = "greenlet-3.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:419b386f84949bf0e7c73e6032e3457b82a787c1ab4a0e43732898a761cc9dbf"}, - {file = "greenlet-3.0.3-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:da70d4d51c8b306bb7a031d5cff6cc25ad253affe89b70352af5f1cb68e74b53"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:086152f8fbc5955df88382e8a75984e2bb1c892ad2e3c80a2508954e52295257"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d73a9fe764d77f87f8ec26a0c85144d6a951a6c438dfe50487df5595c6373eac"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7dcbe92cc99f08c8dd11f930de4d99ef756c3591a5377d1d9cd7dd5e896da71"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1551a8195c0d4a68fac7a4325efac0d541b48def35feb49d803674ac32582f61"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64d7675ad83578e3fc149b617a444fab8efdafc9385471f868eb5ff83e446b8b"}, - {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b37eef18ea55f2ffd8f00ff8fe7c8d3818abd3e25fb73fae2ca3b672e333a7a6"}, - {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:77457465d89b8263bca14759d7c1684df840b6811b2499838cc5b040a8b5b113"}, - {file = "greenlet-3.0.3-cp39-cp39-win32.whl", hash = "sha256:57e8974f23e47dac22b83436bdcf23080ade568ce77df33159e019d161ce1d1e"}, - {file = "greenlet-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:c5ee858cfe08f34712f548c3c363e807e7186f03ad7a5039ebadb29e8c6be067"}, - {file = "greenlet-3.0.3.tar.gz", hash = "sha256:43374442353259554ce33599da8b692d5aa96f8976d567d4badf263371fbe491"}, + {file = "greenlet-3.1.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:0bbae94a29c9e5c7e4a2b7f0aae5c17e8e90acbfd3bf6270eeba60c39fce3563"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fde093fb93f35ca72a556cf72c92ea3ebfda3d79fc35bb19fbe685853869a83"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36b89d13c49216cadb828db8dfa6ce86bbbc476a82d3a6c397f0efae0525bdd0"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94b6150a85e1b33b40b1464a3f9988dcc5251d6ed06842abff82e42632fac120"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93147c513fac16385d1036b7e5b102c7fbbdb163d556b791f0f11eada7ba65dc"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da7a9bff22ce038e19bf62c4dd1ec8391062878710ded0a845bcf47cc0200617"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b2795058c23988728eec1f36a4e5e4ebad22f8320c85f3587b539b9ac84128d7"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ed10eac5830befbdd0c32f83e8aa6288361597550ba669b04c48f0f9a2c843c6"}, + {file = "greenlet-3.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:77c386de38a60d1dfb8e55b8c1101d68c79dfdd25c7095d51fec2dd800892b80"}, + {file = "greenlet-3.1.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:e4d333e558953648ca09d64f13e6d8f0523fa705f51cae3f03b5983489958c70"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09fc016b73c94e98e29af67ab7b9a879c307c6731a2c9da0db5a7d9b7edd1159"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d5e975ca70269d66d17dd995dafc06f1b06e8cb1ec1e9ed54c1d1e4a7c4cf26e"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b2813dc3de8c1ee3f924e4d4227999285fd335d1bcc0d2be6dc3f1f6a318ec1"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e347b3bfcf985a05e8c0b7d462ba6f15b1ee1c909e2dcad795e49e91b152c383"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e8f8c9cb53cdac7ba9793c276acd90168f416b9ce36799b9b885790f8ad6c0a"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62ee94988d6b4722ce0028644418d93a52429e977d742ca2ccbe1c4f4a792511"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1776fd7f989fc6b8d8c8cb8da1f6b82c5814957264d1f6cf818d475ec2bf6395"}, + {file = "greenlet-3.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:48ca08c771c268a768087b408658e216133aecd835c0ded47ce955381105ba39"}, + {file = "greenlet-3.1.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:4afe7ea89de619adc868e087b4d2359282058479d7cfb94970adf4b55284574d"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f406b22b7c9a9b4f8aa9d2ab13d6ae0ac3e85c9a809bd590ad53fed2bf70dc79"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3a701fe5a9695b238503ce5bbe8218e03c3bcccf7e204e455e7462d770268aa"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2846930c65b47d70b9d178e89c7e1a69c95c1f68ea5aa0a58646b7a96df12441"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99cfaa2110534e2cf3ba31a7abcac9d328d1d9f1b95beede58294a60348fba36"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1443279c19fca463fc33e65ef2a935a5b09bb90f978beab37729e1c3c6c25fe9"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b7cede291382a78f7bb5f04a529cb18e068dd29e0fb27376074b6d0317bf4dd0"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:23f20bb60ae298d7d8656c6ec6db134bca379ecefadb0b19ce6f19d1f232a942"}, + {file = "greenlet-3.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:7124e16b4c55d417577c2077be379514321916d5790fa287c9ed6f23bd2ffd01"}, + {file = "greenlet-3.1.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:05175c27cb459dcfc05d026c4232f9de8913ed006d42713cb8a5137bd49375f1"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:935e943ec47c4afab8965954bf49bfa639c05d4ccf9ef6e924188f762145c0ff"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:667a9706c970cb552ede35aee17339a18e8f2a87a51fba2ed39ceeeb1004798a"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8a678974d1f3aa55f6cc34dc480169d58f2e6d8958895d68845fa4ab566509e"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efc0f674aa41b92da8c49e0346318c6075d734994c3c4e4430b1c3f853e498e4"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0153404a4bb921f0ff1abeb5ce8a5131da56b953eda6e14b88dc6bbc04d2049e"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:275f72decf9932639c1c6dd1013a1bc266438eb32710016a1c742df5da6e60a1"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c4aab7f6381f38a4b42f269057aee279ab0fc7bf2e929e3d4abfae97b682a12c"}, + {file = "greenlet-3.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:b42703b1cf69f2aa1df7d1030b9d77d3e584a70755674d60e710f0af570f3761"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1695e76146579f8c06c1509c7ce4dfe0706f49c6831a817ac04eebb2fd02011"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7876452af029456b3f3549b696bb36a06db7c90747740c5302f74a9e9fa14b13"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ead44c85f8ab905852d3de8d86f6f8baf77109f9da589cb4fa142bd3b57b475"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8320f64b777d00dd7ccdade271eaf0cad6636343293a25074cc5566160e4de7b"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6510bf84a6b643dabba74d3049ead221257603a253d0a9873f55f6a59a65f822"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:04b013dc07c96f83134b1e99888e7a79979f1a247e2a9f59697fa14b5862ed01"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:411f015496fec93c1c8cd4e5238da364e1da7a124bcb293f085bf2860c32c6f6"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47da355d8687fd65240c364c90a31569a133b7b60de111c255ef5b606f2ae291"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98884ecf2ffb7d7fe6bd517e8eb99d31ff7855a840fa6d0d63cd07c037f6a981"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1d4aeb8891338e60d1ab6127af1fe45def5259def8094b9c7e34690c8858803"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db32b5348615a04b82240cc67983cb315309e88d444a288934ee6ceaebcad6cc"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dcc62f31eae24de7f8dce72134c8651c58000d3b1868e01392baea7c32c247de"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1d3755bcb2e02de341c55b4fca7a745a24a9e7212ac953f6b3a48d117d7257aa"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:b8da394b34370874b4572676f36acabac172602abf054cbc4ac910219f3340af"}, + {file = "greenlet-3.1.1-cp37-cp37m-win32.whl", hash = "sha256:a0dfc6c143b519113354e780a50381508139b07d2177cb6ad6a08278ec655798"}, + {file = "greenlet-3.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:54558ea205654b50c438029505def3834e80f0869a70fb15b871c29b4575ddef"}, + {file = "greenlet-3.1.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:346bed03fe47414091be4ad44786d1bd8bef0c3fcad6ed3dee074a032ab408a9"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfc59d69fc48664bc693842bd57acfdd490acafda1ab52c7836e3fc75c90a111"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21e10da6ec19b457b82636209cbe2331ff4306b54d06fa04b7c138ba18c8a81"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:37b9de5a96111fc15418819ab4c4432e4f3c2ede61e660b1e33971eba26ef9ba"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef9ea3f137e5711f0dbe5f9263e8c009b7069d8a1acea822bd5e9dae0ae49c8"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85f3ff71e2e60bd4b4932a043fbbe0f499e263c628390b285cb599154a3b03b1"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:95ffcf719966dd7c453f908e208e14cde192e09fde6c7186c8f1896ef778d8cd"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:03a088b9de532cbfe2ba2034b2b85e82df37874681e8c470d6fb2f8c04d7e4b7"}, + {file = "greenlet-3.1.1-cp38-cp38-win32.whl", hash = "sha256:8b8b36671f10ba80e159378df9c4f15c14098c4fd73a36b9ad715f057272fbef"}, + {file = "greenlet-3.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:7017b2be767b9d43cc31416aba48aab0d2309ee31b4dbf10a1d38fb7972bdf9d"}, + {file = "greenlet-3.1.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:396979749bd95f018296af156201d6211240e7a23090f50a8d5d18c370084dc3"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca9d0ff5ad43e785350894d97e13633a66e2b50000e8a183a50a88d834752d42"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f6ff3b14f2df4c41660a7dec01045a045653998784bf8cfcb5a525bdffffbc8f"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94ebba31df2aa506d7b14866fed00ac141a867e63143fe5bca82a8e503b36437"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73aaad12ac0ff500f62cebed98d8789198ea0e6f233421059fa68a5aa7220145"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63e4844797b975b9af3a3fb8f7866ff08775f5426925e1e0bbcfe7932059a12c"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7939aa3ca7d2a1593596e7ac6d59391ff30281ef280d8632fa03d81f7c5f955e"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d0028e725ee18175c6e422797c407874da24381ce0690d6b9396c204c7f7276e"}, + {file = "greenlet-3.1.1-cp39-cp39-win32.whl", hash = "sha256:5e06afd14cbaf9e00899fae69b24a32f2196c19de08fcb9f4779dd4f004e5e7c"}, + {file = "greenlet-3.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:3319aa75e0e0639bc15ff54ca327e8dc7a6fe404003496e3c6925cd3142e0e22"}, + {file = "greenlet-3.1.1.tar.gz", hash = "sha256:4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467"}, ] [package.extras] @@ -1807,13 +1949,14 @@ test = ["objgraph", "psutil"] [[package]] name = "griffe" -version = "0.47.0" +version = "1.5.1" description = "Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API." +category = "main" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "griffe-0.47.0-py3-none-any.whl", hash = "sha256:07a2fd6a8c3d21d0bbb0decf701d62042ccc8a576645c7f8799fe1f10de2b2de"}, - {file = "griffe-0.47.0.tar.gz", hash = "sha256:95119a440a3c932b13293538bdbc405bee4c36428547553dc6b327e7e7d35e5a"}, + {file = "griffe-1.5.1-py3-none-any.whl", hash = "sha256:ad6a7980f8c424c9102160aafa3bcdf799df0e75f7829d75af9ee5aef656f860"}, + {file = "griffe-1.5.1.tar.gz", hash = "sha256:72964f93e08c553257706d6cd2c42d1c172213feb48b2be386f243380b405d4b"}, ] [package.dependencies] @@ -1823,6 +1966,7 @@ colorama = ">=0.4" 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 = [ @@ -1834,6 +1978,7 @@ 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 = [ @@ -1849,6 +1994,7 @@ 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 = [ @@ -1858,13 +2004,14 @@ files = [ [[package]] name = "httpcore" -version = "1.0.5" +version = "1.0.7" description = "A minimal low-level HTTP client." +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "httpcore-1.0.5-py3-none-any.whl", hash = "sha256:421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5"}, - {file = "httpcore-1.0.5.tar.gz", hash = "sha256:34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61"}, + {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, + {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, ] [package.dependencies] @@ -1874,43 +2021,46 @@ h11 = ">=0.13,<0.15" [package.extras] asyncio = ["anyio (>=4.0,<5.0)"] http2 = ["h2 (>=3,<5)"] -socks = ["socksio (==1.*)"] -trio = ["trio (>=0.22.0,<0.26.0)"] +socks = ["socksio (>=1.0.0,<2.0.0)"] +trio = ["trio (>=0.22.0,<1.0)"] [[package]] name = "httpx" -version = "0.27.0" +version = "0.27.2" description = "The next generation HTTP client." +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "httpx-0.27.0-py3-none-any.whl", hash = "sha256:71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5"}, - {file = "httpx-0.27.0.tar.gz", hash = "sha256:a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5"}, + {file = "httpx-0.27.2-py3-none-any.whl", hash = "sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0"}, + {file = "httpx-0.27.2.tar.gz", hash = "sha256:f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2"}, ] [package.dependencies] anyio = "*" certifi = "*" h2 = {version = ">=3,<5", optional = true, markers = "extra == \"http2\""} -httpcore = "==1.*" +httpcore = ">=1.0.0,<2.0.0" idna = "*" sniffio = "*" [package.extras] brotli = ["brotli", "brotlicffi"] -cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +cli = ["click (>=8.0.0,<9.0.0)", "pygments (>=2.0.0,<3.0.0)", "rich (>=10,<14)"] http2 = ["h2 (>=3,<5)"] -socks = ["socksio (==1.*)"] +socks = ["socksio (>=1.0.0,<2.0.0)"] +zstd = ["zstandard (>=0.18.0)"] [[package]] name = "humanize" -version = "4.10.0" +version = "4.11.0" description = "Python humanize utilities" +category = "main" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "humanize-4.10.0-py3-none-any.whl", hash = "sha256:39e7ccb96923e732b5c2e27aeaa3b10a8dfeeba3eb965ba7b74a3eb0e30040a6"}, - {file = "humanize-4.10.0.tar.gz", hash = "sha256:06b6eb0293e4b85e8d385397c5868926820db32b9b654b932f57fa41c23c9978"}, + {file = "humanize-4.11.0-py3-none-any.whl", hash = "sha256:b53caaec8532bcb2fff70c8826f904c35943f8cecaca29d272d9df38092736c0"}, + {file = "humanize-4.11.0.tar.gz", hash = "sha256:e66f36020a2d5a974c504bd2555cf770621dbdbb6d82f94a6857c0b1ea2608be"}, ] [package.extras] @@ -1920,6 +2070,7 @@ tests = ["freezegun", "pytest", "pytest-cov"] name = "hyperframe" version = "6.0.1" description = "HTTP/2 framing layer for Python" +category = "main" optional = false python-versions = ">=3.6.1" files = [ @@ -1929,13 +2080,14 @@ files = [ [[package]] name = "identify" -version = "2.5.36" +version = "2.6.3" description = "File identification library for Python" +category = "dev" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "identify-2.5.36-py2.py3-none-any.whl", hash = "sha256:37d93f380f4de590500d9dba7db359d0d3da95ffe7f9de1753faa159e71e7dfa"}, - {file = "identify-2.5.36.tar.gz", hash = "sha256:e5e00f54165f9047fbebeb4a560f9acfb8af4c88232be60a488e9b68d122745d"}, + {file = "identify-2.6.3-py2.py3-none-any.whl", hash = "sha256:9edba65473324c2ea9684b1f944fe3191db3345e50b6d04571d10ed164f8d7bd"}, + {file = "identify-2.6.3.tar.gz", hash = "sha256:62f5dae9b5fef52c84cc188514e9ea4f3f636b1d8799ab5ebc475471f9e47a02"}, ] [package.extras] @@ -1943,34 +2095,48 @@ license = ["ukkonen"] [[package]] name = "idna" -version = "3.7" +version = "3.10" description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" optional = false -python-versions = ">=3.5" +python-versions = ">=3.6" files = [ - {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, - {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, + {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, + {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, ] +[package.extras] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] + [[package]] -name = "importlib-resources" -version = "6.1.3" -description = "Read resources from Python packages" +name = "importlib-metadata" +version = "8.5.0" +description = "Read metadata from Python packages" +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_resources-6.1.3-py3-none-any.whl", hash = "sha256:4c0269e3580fe2634d364b39b38b961540a7738c02cb984e98add8b4221d793d"}, - {file = "importlib_resources-6.1.3.tar.gz", hash = "sha256:56fb4525197b78544a3354ea27793952ab93f935bb4bf746b846bb1015020f2b"}, + {file = "importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b"}, + {file = "importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7"}, ] +[package.dependencies] +zipp = ">=3.20" + [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["jaraco.collections", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)", "zipp (>=3.17)"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +perf = ["ipython"] +test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] +type = ["pytest-mypy"] [[package]] name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1980,13 +2146,14 @@ files = [ [[package]] name = "ipykernel" -version = "6.29.4" +version = "6.29.5" description = "IPython Kernel for Jupyter" +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "ipykernel-6.29.4-py3-none-any.whl", hash = "sha256:1181e653d95c6808039c509ef8e67c4126b3b3af7781496c7cbfb5ed938a27da"}, - {file = "ipykernel-6.29.4.tar.gz", hash = "sha256:3d44070060f9475ac2092b760123fadf105d2e2493c24848b6691a7c4f42af5c"}, + {file = "ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5"}, + {file = "ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215"}, ] [package.dependencies] @@ -1995,7 +2162,7 @@ comm = ">=0.1.1" debugpy = ">=1.6.5" ipython = ">=7.23.1" jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" matplotlib-inline = ">=0.1" nest-asyncio = "*" packaging = "*" @@ -2015,6 +2182,7 @@ test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio name = "ipyleaflet" version = "0.19.2" description = "A Jupyter widget for dynamic Leaflet maps" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2033,6 +2201,7 @@ xyzservices = ">=2021.8.1" name = "ipympl" version = "0.9.4" description = "Matplotlib Jupyter Extension" +category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -2054,13 +2223,14 @@ docs = ["myst-nb", "sphinx (>=1.5)", "sphinx-book-theme", "sphinx-copybutton", " [[package]] name = "ipython" -version = "8.24.0" +version = "8.30.0" description = "IPython: Productive Interactive Computing" +category = "dev" optional = false python-versions = ">=3.10" files = [ - {file = "ipython-8.24.0-py3-none-any.whl", hash = "sha256:d7bf2f6c4314984e3e02393213bab8703cf163ede39672ce5918c51fe253a2a3"}, - {file = "ipython-8.24.0.tar.gz", hash = "sha256:010db3f8a728a578bb641fdd06c063b9fb8e96a9464c63aec6310fbcb5e80501"}, + {file = "ipython-8.30.0-py3-none-any.whl", hash = "sha256:85ec56a7e20f6c38fce7727dcca699ae4ffc85985aa7b23635a8008f918ae321"}, + {file = "ipython-8.30.0.tar.gz", hash = "sha256:cb0a405a306d2995a5cbb9901894d240784a9f341394c6ba3f4fe8c6eb89ff6e"}, ] [package.dependencies] @@ -2070,16 +2240,16 @@ exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} jedi = ">=0.16" matplotlib-inline = "*" pexpect = {version = ">4.3", markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\""} -prompt-toolkit = ">=3.0.41,<3.1.0" +prompt_toolkit = ">=3.0.41,<3.1.0" pygments = ">=2.4.0" -stack-data = "*" +stack_data = "*" traitlets = ">=5.13.0" -typing-extensions = {version = ">=4.6", markers = "python_version < \"3.12\""} +typing_extensions = {version = ">=4.6", markers = "python_version < \"3.12\""} [package.extras] all = ["ipython[black,doc,kernel,matplotlib,nbconvert,nbformat,notebook,parallel,qtconsole]", "ipython[test,test-extra]"] black = ["black"] -doc = ["docrepr", "exceptiongroup", "ipykernel", "ipython[test]", "matplotlib", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "sphinxcontrib-jquery", "stack-data", "typing-extensions"] +doc = ["docrepr", "exceptiongroup", "intersphinx_registry", "ipykernel", "ipython[test]", "matplotlib", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "sphinxcontrib-jquery", "tomli", "typing_extensions"] kernel = ["ipykernel"] matplotlib = ["matplotlib"] nbconvert = ["nbconvert"] @@ -2087,13 +2257,14 @@ nbformat = ["nbformat"] notebook = ["ipywidgets", "notebook"] parallel = ["ipyparallel"] qtconsole = ["qtconsole"] -test = ["pickleshare", "pytest", "pytest-asyncio (<0.22)", "testpath"] +test = ["packaging", "pickleshare", "pytest", "pytest-asyncio (<0.22)", "testpath"] test-extra = ["curio", "ipython[test]", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.23)", "pandas", "trio"] [[package]] name = "ipython-genutils" version = "0.2.0" description = "Vestigial utilities from IPython" +category = "dev" optional = false python-versions = "*" files = [ @@ -2103,21 +2274,22 @@ files = [ [[package]] name = "ipywidgets" -version = "8.1.3" +version = "8.1.5" description = "Jupyter interactive widgets" +category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "ipywidgets-8.1.3-py3-none-any.whl", hash = "sha256:efafd18f7a142248f7cb0ba890a68b96abd4d6e88ddbda483c9130d12667eaf2"}, - {file = "ipywidgets-8.1.3.tar.gz", hash = "sha256:f5f9eeaae082b1823ce9eac2575272952f40d748893972956dc09700a6392d9c"}, + {file = "ipywidgets-8.1.5-py3-none-any.whl", hash = "sha256:3290f526f87ae6e77655555baba4f36681c555b8bdbbff430b70e52c34c86245"}, + {file = "ipywidgets-8.1.5.tar.gz", hash = "sha256:870e43b1a35656a80c18c9503bbf2d16802db1cb487eec6fab27d683381dde17"}, ] [package.dependencies] comm = ">=0.1.3" ipython = ">=6.1.0" -jupyterlab-widgets = ">=3.0.11,<3.1.0" +jupyterlab-widgets = ">=3.0.12,<3.1.0" traitlets = ">=4.3.1" -widgetsnbextension = ">=4.0.11,<4.1.0" +widgetsnbextension = ">=4.0.12,<4.1.0" [package.extras] test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] @@ -2126,6 +2298,7 @@ test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] name = "isoduration" version = "20.11.0" description = "Operations with ISO 8601 durations" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2140,6 +2313,7 @@ arrow = ">=0.15.0" name = "itsdangerous" version = "2.2.0" description = "Safely pass data to untrusted environments and back." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2149,27 +2323,29 @@ files = [ [[package]] name = "jedi" -version = "0.19.1" +version = "0.19.2" description = "An autocompletion tool for Python that can be used for text editors." +category = "dev" optional = false python-versions = ">=3.6" files = [ - {file = "jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0"}, - {file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"}, + {file = "jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9"}, + {file = "jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0"}, ] [package.dependencies] -parso = ">=0.8.3,<0.9.0" +parso = ">=0.8.4,<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", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] +testing = ["Django", "attrs", "colorama", "docopt", "pytest (<9.0.0)"] [[package]] name = "jinja2" version = "3.1.4" description = "A very fast and expressive template engine." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2187,6 +2363,7 @@ i18n = ["Babel (>=2.7)"] name = "jinja2-humanize-extension" version = "0.4.0" description = "a jinja2 extension to use humanize library inside jinja2 templates" +category = "main" optional = false python-versions = ">=3.0" files = [ @@ -2200,19 +2377,24 @@ jinja2 = "*" [[package]] name = "json5" -version = "0.9.25" +version = "0.10.0" description = "A Python implementation of the JSON5 data format." +category = "dev" optional = false -python-versions = ">=3.8" +python-versions = ">=3.8.0" files = [ - {file = "json5-0.9.25-py3-none-any.whl", hash = "sha256:34ed7d834b1341a86987ed52f3f76cd8ee184394906b6e22a1e0deb9ab294e8f"}, - {file = "json5-0.9.25.tar.gz", hash = "sha256:548e41b9be043f9426776f05df8635a00fe06104ea51ed24b67f908856e151ae"}, + {file = "json5-0.10.0-py3-none-any.whl", hash = "sha256:19b23410220a7271e8377f81ba8aacba2fdd56947fbb137ee5977cbe1f5e8dfa"}, + {file = "json5-0.10.0.tar.gz", hash = "sha256:e66941c8f0a02026943c52c2eb34ebeb2a6f819a0be05920a6f5243cd30fd559"}, ] +[package.extras] +dev = ["build (==1.2.2.post1)", "coverage (==7.5.3)", "mypy (==1.13.0)", "pip (==24.3.1)", "pylint (==3.2.3)", "ruff (==0.7.3)", "twine (==5.1.1)", "uv (==0.5.1)"] + [[package]] name = "jsonpatch" version = "1.33" description = "Apply JSON-Patches (RFC 6902)" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" files = [ @@ -2225,24 +2407,26 @@ jsonpointer = ">=1.9" [[package]] name = "jsonpointer" -version = "2.4" +version = "3.0.0" description = "Identify specific nodes in a JSON document (RFC 6901)" +category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" +python-versions = ">=3.7" files = [ - {file = "jsonpointer-2.4-py2.py3-none-any.whl", hash = "sha256:15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a"}, - {file = "jsonpointer-2.4.tar.gz", hash = "sha256:585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88"}, + {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, + {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"}, ] [[package]] name = "jsonschema" -version = "4.22.0" +version = "4.23.0" description = "An implementation of JSON Schema validation for Python" +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema-4.22.0-py3-none-any.whl", hash = "sha256:ff4cfd6b1367a40e7bc6411caec72effadd3db0bbe5017de188f2d6108335802"}, - {file = "jsonschema-4.22.0.tar.gz", hash = "sha256:5b22d434a45935119af990552c862e5d6d564e8f6601206b305a61fdf661a2b7"}, + {file = "jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566"}, + {file = "jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4"}, ] [package.dependencies] @@ -2257,21 +2441,22 @@ rfc3339-validator = {version = "*", optional = true, markers = "extra == \"forma rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} rpds-py = ">=0.7.1" uri-template = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} -webcolors = {version = ">=1.11", optional = true, markers = "extra == \"format-nongpl\""} +webcolors = {version = ">=24.6.0", optional = true, markers = "extra == \"format-nongpl\""} [package.extras] format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] -format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=24.6.0)"] [[package]] name = "jsonschema-specifications" -version = "2023.12.1" +version = "2024.10.1" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +category = "main" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "jsonschema_specifications-2023.12.1-py3-none-any.whl", hash = "sha256:87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c"}, - {file = "jsonschema_specifications-2023.12.1.tar.gz", hash = "sha256:48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc"}, + {file = "jsonschema_specifications-2024.10.1-py3-none-any.whl", hash = "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf"}, + {file = "jsonschema_specifications-2024.10.1.tar.gz", hash = "sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272"}, ] [package.dependencies] @@ -2279,17 +2464,18 @@ referencing = ">=0.31.0" [[package]] name = "jupyter-client" -version = "8.6.2" +version = "8.6.3" description = "Jupyter protocol implementation and client libraries" +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_client-8.6.2-py3-none-any.whl", hash = "sha256:50cbc5c66fd1b8f65ecb66bc490ab73217993632809b6e505687de18e9dea39f"}, - {file = "jupyter_client-8.6.2.tar.gz", hash = "sha256:2bda14d55ee5ba58552a8c53ae43d215ad9868853489213f37da060ced54d8df"}, + {file = "jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f"}, + {file = "jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419"}, ] [package.dependencies] -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" python-dateutil = ">=2.8.2" pyzmq = ">=23.0" tornado = ">=6.2" @@ -2303,6 +2489,7 @@ test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pyt name = "jupyter-core" version = "5.7.2" description = "Jupyter core package. A base package on which Jupyter projects rely." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2323,6 +2510,7 @@ test = ["ipykernel", "pre-commit", "pytest (<8)", "pytest-cov", "pytest-timeout" name = "jupyter-events" version = "0.10.0" description = "Jupyter Event System library" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2348,6 +2536,7 @@ test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "p name = "jupyter-leaflet" version = "0.19.2" description = "ipyleaflet extensions for JupyterLab and Jupyter Notebook" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2359,6 +2548,7 @@ files = [ name = "jupyter-lsp" version = "2.2.5" description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2371,13 +2561,14 @@ jupyter-server = ">=1.1.2" [[package]] name = "jupyter-server" -version = "2.14.0" +version = "2.14.2" description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_server-2.14.0-py3-none-any.whl", hash = "sha256:fb6be52c713e80e004fac34b35a0990d6d36ba06fd0a2b2ed82b899143a64210"}, - {file = "jupyter_server-2.14.0.tar.gz", hash = "sha256:659154cea512083434fd7c93b7fe0897af7a2fd0b9dd4749282b42eaac4ae677"}, + {file = "jupyter_server-2.14.2-py3-none-any.whl", hash = "sha256:47ff506127c2f7851a17bf4713434208fc490955d0e8632e95014a9a9afbeefd"}, + {file = "jupyter_server-2.14.2.tar.gz", hash = "sha256:66095021aa9638ced276c248b1d81862e4c50f292d575920bbe960de1c56b12b"}, ] [package.dependencies] @@ -2385,7 +2576,7 @@ anyio = ">=3.1.0" argon2-cffi = ">=21.1" jinja2 = ">=3.0.3" jupyter-client = ">=7.4.4" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" jupyter-events = ">=0.9.0" jupyter-server-terminals = ">=0.4.4" nbconvert = ">=6.4.4" @@ -2402,13 +2593,14 @@ traitlets = ">=5.6.0" websocket-client = ">=1.7" [package.extras] -docs = ["ipykernel", "jinja2", "jupyter-client", "jupyter-server", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] +docs = ["ipykernel", "jinja2", "jupyter-client", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0,<9)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.7)", "pytest-timeout", "requests"] [[package]] name = "jupyter-server-terminals" version = "0.5.3" description = "A Jupyter Server Extension Providing Terminals." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2426,13 +2618,14 @@ test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (> [[package]] name = "jupyterlab" -version = "4.2.1" +version = "4.3.3" description = "JupyterLab computational environment" +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "jupyterlab-4.2.1-py3-none-any.whl", hash = "sha256:6ac6e3827b3c890e6e549800e8a4f4aaea6a69321e2240007902aa7a0c56a8e4"}, - {file = "jupyterlab-4.2.1.tar.gz", hash = "sha256:a10fb71085a6900820c62d43324005046402ffc8f0fde696103e37238a839507"}, + {file = "jupyterlab-4.3.3-py3-none-any.whl", hash = "sha256:32a8fd30677e734ffcc3916a4758b9dab21b02015b668c60eb36f84357b7d4b1"}, + {file = "jupyterlab-4.3.3.tar.gz", hash = "sha256:76fa39e548fdac94dc1204af5956c556f54c785f70ee26aa47ea08eda4d5bbcd"}, ] [package.dependencies] @@ -2446,21 +2639,23 @@ jupyter-server = ">=2.4.0,<3" jupyterlab-server = ">=2.27.1,<3" notebook-shim = ">=0.2" packaging = "*" +setuptools = ">=40.8.0" tomli = {version = ">=1.2.2", markers = "python_version < \"3.11\""} tornado = ">=6.2.0" traitlets = "*" [package.extras] -dev = ["build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.3.5)"] -docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-jupyter", "sphinx (>=1.8,<7.3.0)", "sphinx-copybutton"] -docs-screenshots = ["altair (==5.3.0)", "ipython (==8.16.1)", "ipywidgets (==8.1.2)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.1.post2)", "matplotlib (==3.8.3)", "nbconvert (>=7.0.0)", "pandas (==2.2.1)", "scipy (==1.12.0)", "vega-datasets (==0.9.0)"] +dev = ["build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.6.9)"] +docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-jupyter", "sphinx (>=1.8,<8.1.0)", "sphinx-copybutton"] +docs-screenshots = ["altair (==5.4.1)", "ipython (==8.16.1)", "ipywidgets (==8.1.5)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.2.post3)", "matplotlib (==3.9.2)", "nbconvert (>=7.0.0)", "pandas (==2.2.3)", "scipy (==1.14.1)", "vega-datasets (==0.9.0)"] test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter (>=0.5.3)", "pytest-timeout", "pytest-tornasync", "requests", "requests-cache", "virtualenv"] -upgrade-extension = ["copier (>=8,<10)", "jinja2-time (<0.3)", "pydantic (<2.0)", "pyyaml-include (<2.0)", "tomli-w (<2.0)"] +upgrade-extension = ["copier (>=9,<10)", "jinja2-time (<0.3)", "pydantic (<3.0)", "pyyaml-include (<3.0)", "tomli-w (<2.0)"] [[package]] name = "jupyterlab-pygments" version = "0.3.0" description = "Pygments theme using JupyterLab CSS variables" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2470,13 +2665,14 @@ files = [ [[package]] name = "jupyterlab-server" -version = "2.27.2" +version = "2.27.3" description = "A set of server components for JupyterLab and JupyterLab like applications." +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "jupyterlab_server-2.27.2-py3-none-any.whl", hash = "sha256:54aa2d64fd86383b5438d9f0c032f043c4d8c0264b8af9f60bd061157466ea43"}, - {file = "jupyterlab_server-2.27.2.tar.gz", hash = "sha256:15cbb349dc45e954e09bacf81b9f9bcb10815ff660fb2034ecd7417db3a7ea27"}, + {file = "jupyterlab_server-2.27.3-py3-none-any.whl", hash = "sha256:e697488f66c3db49df675158a77b3b017520d772c6e1548c7d9bcc5df7944ee4"}, + {file = "jupyterlab_server-2.27.3.tar.gz", hash = "sha256:eb36caca59e74471988f0ae25c77945610b887f777255aa21f8065def9e51ed4"}, ] [package.dependencies] @@ -2495,137 +2691,150 @@ test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-v [[package]] name = "jupyterlab-widgets" -version = "3.0.11" +version = "3.0.13" description = "Jupyter interactive widgets for JupyterLab" +category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "jupyterlab_widgets-3.0.11-py3-none-any.whl", hash = "sha256:78287fd86d20744ace330a61625024cf5521e1c012a352ddc0a3cdc2348becd0"}, - {file = "jupyterlab_widgets-3.0.11.tar.gz", hash = "sha256:dd5ac679593c969af29c9bed054c24f26842baa51352114736756bc035deee27"}, + {file = "jupyterlab_widgets-3.0.13-py3-none-any.whl", hash = "sha256:e3cda2c233ce144192f1e29914ad522b2f4c40e77214b0cc97377ca3d323db54"}, + {file = "jupyterlab_widgets-3.0.13.tar.gz", hash = "sha256:a2966d385328c1942b683a8cd96b89b8dd82c8b8f81dda902bb2bc06d46f5bed"}, ] [[package]] name = "kiwisolver" -version = "1.4.5" +version = "1.4.7" description = "A fast implementation of the Cassowary constraint solver" +category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af"}, - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:146d14bebb7f1dc4d5fbf74f8a6cb15ac42baadee8912eb84ac0b3b2a3dc6ac3"}, - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ef7afcd2d281494c0a9101d5c571970708ad911d028137cd558f02b851c08b4"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9eaa8b117dc8337728e834b9c6e2611f10c79e38f65157c4c38e9400286f5cb1"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ec20916e7b4cbfb1f12380e46486ec4bcbaa91a9c448b97023fde0d5bbf9e4ff"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39b42c68602539407884cf70d6a480a469b93b81b7701378ba5e2328660c847a"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa12042de0171fad672b6c59df69106d20d5596e4f87b5e8f76df757a7c399aa"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a40773c71d7ccdd3798f6489aaac9eee213d566850a9533f8d26332d626b82c"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:19df6e621f6d8b4b9c4d45f40a66839294ff2bb235e64d2178f7522d9170ac5b"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:83d78376d0d4fd884e2c114d0621624b73d2aba4e2788182d286309ebdeed770"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e391b1f0a8a5a10ab3b9bb6afcfd74f2175f24f8975fb87ecae700d1503cdee0"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:852542f9481f4a62dbb5dd99e8ab7aedfeb8fb6342349a181d4036877410f525"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59edc41b24031bc25108e210c0def6f6c2191210492a972d585a06ff246bb79b"}, - {file = "kiwisolver-1.4.5-cp310-cp310-win32.whl", hash = "sha256:a6aa6315319a052b4ee378aa171959c898a6183f15c1e541821c5c59beaa0238"}, - {file = "kiwisolver-1.4.5-cp310-cp310-win_amd64.whl", hash = "sha256:d0ef46024e6a3d79c01ff13801cb19d0cad7fd859b15037aec74315540acc276"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f"}, - {file = "kiwisolver-1.4.5-cp311-cp311-win32.whl", hash = "sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac"}, - {file = "kiwisolver-1.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a"}, - {file = "kiwisolver-1.4.5-cp312-cp312-win32.whl", hash = "sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20"}, - {file = "kiwisolver-1.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3a2b053a0ab7a3960c98725cfb0bf5b48ba82f64ec95fe06f1d06c99b552e130"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cd32d6c13807e5c66a7cbb79f90b553642f296ae4518a60d8d76243b0ad2898"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59ec7b7c7e1a61061850d53aaf8e93db63dce0c936db1fda2658b70e4a1be709"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da4cfb373035def307905d05041c1d06d8936452fe89d464743ae7fb8371078b"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2400873bccc260b6ae184b2b8a4fec0e4082d30648eadb7c3d9a13405d861e89"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1b04139c4236a0f3aff534479b58f6f849a8b351e1314826c2d230849ed48985"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:4e66e81a5779b65ac21764c295087de82235597a2293d18d943f8e9e32746265"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:7931d8f1f67c4be9ba1dd9c451fb0eeca1a25b89e4d3f89e828fe12a519b782a"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:b3f7e75f3015df442238cca659f8baa5f42ce2a8582727981cbfa15fee0ee205"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:bbf1d63eef84b2e8c89011b7f2235b1e0bf7dacc11cac9431fc6468e99ac77fb"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4c380469bd3f970ef677bf2bcba2b6b0b4d5c75e7a020fb863ef75084efad66f"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-win32.whl", hash = "sha256:9408acf3270c4b6baad483865191e3e582b638b1654a007c62e3efe96f09a9a3"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-win_amd64.whl", hash = "sha256:5b94529f9b2591b7af5f3e0e730a4e0a41ea174af35a4fd067775f9bdfeee01a"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:11c7de8f692fc99816e8ac50d1d1aef4f75126eefc33ac79aac02c099fd3db71"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:53abb58632235cd154176ced1ae8f0d29a6657aa1aa9decf50b899b755bc2b93"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:88b9f257ca61b838b6f8094a62418421f87ac2a1069f7e896c36a7d86b5d4c29"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3195782b26fc03aa9c6913d5bad5aeb864bdc372924c093b0f1cebad603dd712"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc579bf0f502e54926519451b920e875f433aceb4624a3646b3252b5caa9e0b6"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a580c91d686376f0f7c295357595c5a026e6cbc3d77b7c36e290201e7c11ecb"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cfe6ab8da05c01ba6fbea630377b5da2cd9bcbc6338510116b01c1bc939a2c18"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:d2e5a98f0ec99beb3c10e13b387f8db39106d53993f498b295f0c914328b1333"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a51a263952b1429e429ff236d2f5a21c5125437861baeed77f5e1cc2d2c7c6da"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3edd2fa14e68c9be82c5b16689e8d63d89fe927e56debd6e1dbce7a26a17f81b"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:74d1b44c6cfc897df648cc9fdaa09bc3e7679926e6f96df05775d4fb3946571c"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:76d9289ed3f7501012e05abb8358bbb129149dbd173f1f57a1bf1c22d19ab7cc"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:92dea1ffe3714fa8eb6a314d2b3c773208d865a0e0d35e713ec54eea08a66250"}, - {file = "kiwisolver-1.4.5-cp38-cp38-win32.whl", hash = "sha256:5c90ae8c8d32e472be041e76f9d2f2dbff4d0b0be8bd4041770eddb18cf49a4e"}, - {file = "kiwisolver-1.4.5-cp38-cp38-win_amd64.whl", hash = "sha256:c7940c1dc63eb37a67721b10d703247552416f719c4188c54e04334321351ced"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9407b6a5f0d675e8a827ad8742e1d6b49d9c1a1da5d952a67d50ef5f4170b18d"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15568384086b6df3c65353820a4473575dbad192e35010f622c6ce3eebd57af9"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0dc9db8e79f0036e8173c466d21ef18e1befc02de8bf8aa8dc0813a6dc8a7046"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cdc8a402aaee9a798b50d8b827d7ecf75edc5fb35ea0f91f213ff927c15f4ff0"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6c3bd3cde54cafb87d74d8db50b909705c62b17c2099b8f2e25b461882e544ff"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:955e8513d07a283056b1396e9a57ceddbd272d9252c14f154d450d227606eb54"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:346f5343b9e3f00b8db8ba359350eb124b98c99efd0b408728ac6ebf38173958"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9098e0049e88c6a24ff64545cdfc50807818ba6c1b739cae221bbbcbc58aad3"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:00bd361b903dc4bbf4eb165f24d1acbee754fce22ded24c3d56eec268658a5cf"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7b8b454bac16428b22560d0a1cf0a09875339cab69df61d7805bf48919415901"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f1d072c2eb0ad60d4c183f3fb44ac6f73fb7a8f16a2694a91f988275cbf352f9"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:31a82d498054cac9f6d0b53d02bb85811185bcb477d4b60144f915f3b3126342"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6512cb89e334e4700febbffaaa52761b65b4f5a3cf33f960213d5656cea36a77"}, - {file = "kiwisolver-1.4.5-cp39-cp39-win32.whl", hash = "sha256:9db8ea4c388fdb0f780fe91346fd438657ea602d58348753d9fb265ce1bca67f"}, - {file = "kiwisolver-1.4.5-cp39-cp39-win_amd64.whl", hash = "sha256:59415f46a37f7f2efeec758353dd2eae1b07640d8ca0f0c42548ec4125492635"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5c7b3b3a728dc6faf3fc372ef24f21d1e3cee2ac3e9596691d746e5a536de920"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:620ced262a86244e2be10a676b646f29c34537d0d9cc8eb26c08f53d98013390"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:378a214a1e3bbf5ac4a8708304318b4f890da88c9e6a07699c4ae7174c09a68d"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf7be1207676ac608a50cd08f102f6742dbfc70e8d60c4db1c6897f62f71523"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ba55dce0a9b8ff59495ddd050a0225d58bd0983d09f87cfe2b6aec4f2c1234e4"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd32ea360bcbb92d28933fc05ed09bffcb1704ba3fc7942e81db0fd4f81a7892"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5e7139af55d1688f8b960ee9ad5adafc4ac17c1c473fe07133ac092310d76544"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dced8146011d2bc2e883f9bd68618b8247387f4bbec46d7392b3c3b032640126"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9bf3325c47b11b2e51bca0824ea217c7cd84491d8ac4eefd1e409705ef092bd"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5794cf59533bc3f1b1c821f7206a3617999db9fbefc345360aafe2e067514929"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e368f200bbc2e4f905b8e71eb38b3c04333bddaa6a2464a6355487b02bb7fb09"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5d706eba36b4c4d5bc6c6377bb6568098765e990cfc21ee16d13963fab7b3e7"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85267bd1aa8880a9c88a8cb71e18d3d64d2751a790e6ca6c27b8ccc724bcd5ad"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:210ef2c3a1f03272649aff1ef992df2e724748918c4bc2d5a90352849eb40bea"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:11d011a7574eb3b82bcc9c1a1d35c1d7075677fdd15de527d91b46bd35e935ee"}, - {file = "kiwisolver-1.4.5.tar.gz", hash = "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec"}, + {file = "kiwisolver-1.4.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8a9c83f75223d5e48b0bc9cb1bf2776cf01563e00ade8775ffe13b0b6e1af3a6"}, + {file = "kiwisolver-1.4.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:58370b1ffbd35407444d57057b57da5d6549d2d854fa30249771775c63b5fe17"}, + {file = "kiwisolver-1.4.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:aa0abdf853e09aff551db11fce173e2177d00786c688203f52c87ad7fcd91ef9"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8d53103597a252fb3ab8b5845af04c7a26d5e7ea8122303dd7a021176a87e8b9"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:88f17c5ffa8e9462fb79f62746428dd57b46eb931698e42e990ad63103f35e6c"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a9ca9c710d598fd75ee5de59d5bda2684d9db36a9f50b6125eaea3969c2599"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f4d742cb7af1c28303a51b7a27aaee540e71bb8e24f68c736f6f2ffc82f2bf05"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e28c7fea2196bf4c2f8d46a0415c77a1c480cc0724722f23d7410ffe9842c407"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e968b84db54f9d42046cf154e02911e39c0435c9801681e3fc9ce8a3c4130278"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0c18ec74c0472de033e1bebb2911c3c310eef5649133dd0bedf2a169a1b269e5"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8f0ea6da6d393d8b2e187e6a5e3fb81f5862010a40c3945e2c6d12ae45cfb2ad"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:f106407dda69ae456dd1227966bf445b157ccc80ba0dff3802bb63f30b74e895"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84ec80df401cfee1457063732d90022f93951944b5b58975d34ab56bb150dfb3"}, + {file = "kiwisolver-1.4.7-cp310-cp310-win32.whl", hash = "sha256:71bb308552200fb2c195e35ef05de12f0c878c07fc91c270eb3d6e41698c3bcc"}, + {file = "kiwisolver-1.4.7-cp310-cp310-win_amd64.whl", hash = "sha256:44756f9fd339de0fb6ee4f8c1696cfd19b2422e0d70b4cefc1cc7f1f64045a8c"}, + {file = "kiwisolver-1.4.7-cp310-cp310-win_arm64.whl", hash = "sha256:78a42513018c41c2ffd262eb676442315cbfe3c44eed82385c2ed043bc63210a"}, + {file = "kiwisolver-1.4.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d2b0e12a42fb4e72d509fc994713d099cbb15ebf1103545e8a45f14da2dfca54"}, + {file = "kiwisolver-1.4.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2a8781ac3edc42ea4b90bc23e7d37b665d89423818e26eb6df90698aa2287c95"}, + {file = "kiwisolver-1.4.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:46707a10836894b559e04b0fd143e343945c97fd170d69a2d26d640b4e297935"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef97b8df011141c9b0f6caf23b29379f87dd13183c978a30a3c546d2c47314cb"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ab58c12a2cd0fc769089e6d38466c46d7f76aced0a1f54c77652446733d2d02"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:803b8e1459341c1bb56d1c5c010406d5edec8a0713a0945851290a7930679b51"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9a9e8a507420fe35992ee9ecb302dab68550dedc0da9e2880dd88071c5fb052"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18077b53dc3bb490e330669a99920c5e6a496889ae8c63b58fbc57c3d7f33a18"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6af936f79086a89b3680a280c47ea90b4df7047b5bdf3aa5c524bbedddb9e545"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:3abc5b19d24af4b77d1598a585b8a719beb8569a71568b66f4ebe1fb0449460b"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:933d4de052939d90afbe6e9d5273ae05fb836cc86c15b686edd4b3560cc0ee36"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:65e720d2ab2b53f1f72fb5da5fb477455905ce2c88aaa671ff0a447c2c80e8e3"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3bf1ed55088f214ba6427484c59553123fdd9b218a42bbc8c6496d6754b1e523"}, + {file = "kiwisolver-1.4.7-cp311-cp311-win32.whl", hash = "sha256:4c00336b9dd5ad96d0a558fd18a8b6f711b7449acce4c157e7343ba92dd0cf3d"}, + {file = "kiwisolver-1.4.7-cp311-cp311-win_amd64.whl", hash = "sha256:929e294c1ac1e9f615c62a4e4313ca1823ba37326c164ec720a803287c4c499b"}, + {file = "kiwisolver-1.4.7-cp311-cp311-win_arm64.whl", hash = "sha256:e33e8fbd440c917106b237ef1a2f1449dfbb9b6f6e1ce17c94cd6a1e0d438376"}, + {file = "kiwisolver-1.4.7-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:5360cc32706dab3931f738d3079652d20982511f7c0ac5711483e6eab08efff2"}, + {file = "kiwisolver-1.4.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:942216596dc64ddb25adb215c3c783215b23626f8d84e8eff8d6d45c3f29f75a"}, + {file = "kiwisolver-1.4.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:48b571ecd8bae15702e4f22d3ff6a0f13e54d3d00cd25216d5e7f658242065ee"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad42ba922c67c5f219097b28fae965e10045ddf145d2928bfac2eb2e17673640"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:612a10bdae23404a72941a0fc8fa2660c6ea1217c4ce0dbcab8a8f6543ea9e7f"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e838bba3a3bac0fe06d849d29772eb1afb9745a59710762e4ba3f4cb8424483"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22f499f6157236c19f4bbbd472fa55b063db77a16cd74d49afe28992dff8c258"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693902d433cf585133699972b6d7c42a8b9f8f826ebcaf0132ff55200afc599e"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4e77f2126c3e0b0d055f44513ed349038ac180371ed9b52fe96a32aa071a5107"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:657a05857bda581c3656bfc3b20e353c232e9193eb167766ad2dc58b56504948"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4bfa75a048c056a411f9705856abfc872558e33c055d80af6a380e3658766038"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:34ea1de54beef1c104422d210c47c7d2a4999bdecf42c7b5718fbe59a4cac383"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:90da3b5f694b85231cf93586dad5e90e2d71b9428f9aad96952c99055582f520"}, + {file = "kiwisolver-1.4.7-cp312-cp312-win32.whl", hash = "sha256:18e0cca3e008e17fe9b164b55735a325140a5a35faad8de92dd80265cd5eb80b"}, + {file = "kiwisolver-1.4.7-cp312-cp312-win_amd64.whl", hash = "sha256:58cb20602b18f86f83a5c87d3ee1c766a79c0d452f8def86d925e6c60fbf7bfb"}, + {file = "kiwisolver-1.4.7-cp312-cp312-win_arm64.whl", hash = "sha256:f5a8b53bdc0b3961f8b6125e198617c40aeed638b387913bf1ce78afb1b0be2a"}, + {file = "kiwisolver-1.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2e6039dcbe79a8e0f044f1c39db1986a1b8071051efba3ee4d74f5b365f5226e"}, + {file = "kiwisolver-1.4.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a1ecf0ac1c518487d9d23b1cd7139a6a65bc460cd101ab01f1be82ecf09794b6"}, + {file = "kiwisolver-1.4.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7ab9ccab2b5bd5702ab0803676a580fffa2aa178c2badc5557a84cc943fcf750"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f816dd2277f8d63d79f9c8473a79fe54047bc0467754962840782c575522224d"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf8bcc23ceb5a1b624572a1623b9f79d2c3b337c8c455405ef231933a10da379"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dea0bf229319828467d7fca8c7c189780aa9ff679c94539eed7532ebe33ed37c"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c06a4c7cf15ec739ce0e5971b26c93638730090add60e183530d70848ebdd34"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:913983ad2deb14e66d83c28b632fd35ba2b825031f2fa4ca29675e665dfecbe1"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5337ec7809bcd0f424c6b705ecf97941c46279cf5ed92311782c7c9c2026f07f"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4c26ed10c4f6fa6ddb329a5120ba3b6db349ca192ae211e882970bfc9d91420b"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c619b101e6de2222c1fcb0531e1b17bbffbe54294bfba43ea0d411d428618c27"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:073a36c8273647592ea332e816e75ef8da5c303236ec0167196793eb1e34657a"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3ce6b2b0231bda412463e152fc18335ba32faf4e8c23a754ad50ffa70e4091ee"}, + {file = "kiwisolver-1.4.7-cp313-cp313-win32.whl", hash = "sha256:f4c9aee212bc89d4e13f58be11a56cc8036cabad119259d12ace14b34476fd07"}, + {file = "kiwisolver-1.4.7-cp313-cp313-win_amd64.whl", hash = "sha256:8a3ec5aa8e38fc4c8af308917ce12c536f1c88452ce554027e55b22cbbfbff76"}, + {file = "kiwisolver-1.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:76c8094ac20ec259471ac53e774623eb62e6e1f56cd8690c67ce6ce4fcb05650"}, + {file = "kiwisolver-1.4.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5d5abf8f8ec1f4e22882273c423e16cae834c36856cac348cfbfa68e01c40f3a"}, + {file = "kiwisolver-1.4.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:aeb3531b196ef6f11776c21674dba836aeea9d5bd1cf630f869e3d90b16cfade"}, + {file = "kiwisolver-1.4.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b7d755065e4e866a8086c9bdada157133ff466476a2ad7861828e17b6026e22c"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08471d4d86cbaec61f86b217dd938a83d85e03785f51121e791a6e6689a3be95"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7bbfcb7165ce3d54a3dfbe731e470f65739c4c1f85bb1018ee912bae139e263b"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d34eb8494bea691a1a450141ebb5385e4b69d38bb8403b5146ad279f4b30fa3"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9242795d174daa40105c1d86aba618e8eab7bf96ba8c3ee614da8302a9f95503"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a0f64a48bb81af7450e641e3fe0b0394d7381e342805479178b3d335d60ca7cf"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8e045731a5416357638d1700927529e2b8ab304811671f665b225f8bf8d8f933"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:4322872d5772cae7369f8351da1edf255a604ea7087fe295411397d0cfd9655e"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:e1631290ee9271dffe3062d2634c3ecac02c83890ada077d225e081aca8aab89"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:edcfc407e4eb17e037bca59be0e85a2031a2ac87e4fed26d3e9df88b4165f92d"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:4d05d81ecb47d11e7f8932bd8b61b720bf0b41199358f3f5e36d38e28f0532c5"}, + {file = "kiwisolver-1.4.7-cp38-cp38-win32.whl", hash = "sha256:b38ac83d5f04b15e515fd86f312479d950d05ce2368d5413d46c088dda7de90a"}, + {file = "kiwisolver-1.4.7-cp38-cp38-win_amd64.whl", hash = "sha256:d83db7cde68459fc803052a55ace60bea2bae361fc3b7a6d5da07e11954e4b09"}, + {file = "kiwisolver-1.4.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3f9362ecfca44c863569d3d3c033dbe8ba452ff8eed6f6b5806382741a1334bd"}, + {file = "kiwisolver-1.4.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e8df2eb9b2bac43ef8b082e06f750350fbbaf2887534a5be97f6cf07b19d9583"}, + {file = "kiwisolver-1.4.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f32d6edbc638cde7652bd690c3e728b25332acbadd7cad670cc4a02558d9c417"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:e2e6c39bd7b9372b0be21456caab138e8e69cc0fc1190a9dfa92bd45a1e6e904"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dda56c24d869b1193fcc763f1284b9126550eaf84b88bbc7256e15028f19188a"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79849239c39b5e1fd906556c474d9b0439ea6792b637511f3fe3a41158d89ca8"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5e3bc157fed2a4c02ec468de4ecd12a6e22818d4f09cde2c31ee3226ffbefab2"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3da53da805b71e41053dc670f9a820d1157aae77b6b944e08024d17bcd51ef88"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8705f17dfeb43139a692298cb6637ee2e59c0194538153e83e9ee0c75c2eddde"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:82a5c2f4b87c26bb1a0ef3d16b5c4753434633b83d365cc0ddf2770c93829e3c"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce8be0466f4c0d585cdb6c1e2ed07232221df101a4c6f28821d2aa754ca2d9e2"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:409afdfe1e2e90e6ee7fc896f3df9a7fec8e793e58bfa0d052c8a82f99c37abb"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5b9c3f4ee0b9a439d2415012bd1b1cc2df59e4d6a9939f4d669241d30b414327"}, + {file = "kiwisolver-1.4.7-cp39-cp39-win32.whl", hash = "sha256:a79ae34384df2b615eefca647a2873842ac3b596418032bef9a7283675962644"}, + {file = "kiwisolver-1.4.7-cp39-cp39-win_amd64.whl", hash = "sha256:cf0438b42121a66a3a667de17e779330fc0f20b0d97d59d2f2121e182b0505e4"}, + {file = "kiwisolver-1.4.7-cp39-cp39-win_arm64.whl", hash = "sha256:764202cc7e70f767dab49e8df52c7455e8de0df5d858fa801a11aa0d882ccf3f"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:94252291e3fe68001b1dd747b4c0b3be12582839b95ad4d1b641924d68fd4643"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5b7dfa3b546da08a9f622bb6becdb14b3e24aaa30adba66749d38f3cc7ea9706"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd3de6481f4ed8b734da5df134cd5a6a64fe32124fe83dde1e5b5f29fe30b1e6"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a91b5f9f1205845d488c928e8570dcb62b893372f63b8b6e98b863ebd2368ff2"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40fa14dbd66b8b8f470d5fc79c089a66185619d31645f9b0773b88b19f7223c4"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:eb542fe7933aa09d8d8f9d9097ef37532a7df6497819d16efe4359890a2f417a"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bfa1acfa0c54932d5607e19a2c24646fb4c1ae2694437789129cf099789a3b00"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:eee3ea935c3d227d49b4eb85660ff631556841f6e567f0f7bda972df6c2c9935"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f3160309af4396e0ed04db259c3ccbfdc3621b5559b5453075e5de555e1f3a1b"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a17f6a29cf8935e587cc8a4dbfc8368c55edc645283db0ce9801016f83526c2d"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10849fb2c1ecbfae45a693c070e0320a91b35dd4bcf58172c023b994283a124d"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:ac542bf38a8a4be2dc6b15248d36315ccc65f0743f7b1a76688ffb6b5129a5c2"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8b01aac285f91ca889c800042c35ad3b239e704b150cfd3382adfc9dcc780e39"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:48be928f59a1f5c8207154f935334d374e79f2b5d212826307d072595ad76a2e"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f37cfe618a117e50d8c240555331160d73d0411422b59b5ee217843d7b693608"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:599b5c873c63a1f6ed7eead644a8a380cfbdf5db91dcb6f85707aaab213b1674"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:801fa7802e5cfabe3ab0c81a34c323a319b097dfb5004be950482d882f3d7225"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:0c6c43471bc764fad4bc99c5c2d6d16a676b1abf844ca7c8702bdae92df01ee0"}, + {file = "kiwisolver-1.4.7.tar.gz", hash = "sha256:9893ff81bd7107f7b685d3017cc6583daadb4fc26e4a888350df530e41980a60"}, ] [[package]] name = "locust" -version = "2.31.4" +version = "2.32.4" description = "Developer-friendly load testing framework" +category = "dev" optional = false python-versions = ">=3.9" files = [ - {file = "locust-2.31.4-py3-none-any.whl", hash = "sha256:566d89b5c4a7b69e3ab6844c1a373909918ee9d04f5d2bab6a8104e43a5721d8"}, - {file = "locust-2.31.4.tar.gz", hash = "sha256:1f056173aefa6ba42501c3bf04bb700df9eddd165e38bb721f7b00643b68b825"}, + {file = "locust-2.32.4-py3-none-any.whl", hash = "sha256:7c5b8767c0d771b5167d5d6b82878622faead74f394eb9cafe8891d89eb36b97"}, + {file = "locust-2.32.4.tar.gz", hash = "sha256:fd650cbc40842e721668a8d0f7f8224775432b40c63d0a378546b9a9f54b7559"}, ] [package.dependencies] @@ -2633,7 +2842,10 @@ ConfigArgParse = ">=1.5.5" flask = ">=2.0.0" Flask-Cors = ">=3.0.10" Flask-Login = ">=0.6.3" -gevent = ">=22.10.2" +gevent = [ + {version = ">=22.10.2", markers = "python_full_version <= \"3.12.0\""}, + {version = ">=24.10.1", markers = "python_full_version > \"3.13.0\""}, +] geventhttpclient = ">=2.3.1" msgpack = ">=1.0.0" psutil = ">=5.9.1" @@ -2643,159 +2855,157 @@ requests = [ {version = ">=2.26.0", markers = "python_full_version <= \"3.11.0\""}, {version = ">=2.32.2", markers = "python_full_version > \"3.11.0\""}, ] +setuptools = ">=70.0.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} typing_extensions = {version = ">=4.6.0", markers = "python_version < \"3.11\""} Werkzeug = ">=2.0.0" [[package]] name = "lxml" -version = "5.2.2" +version = "5.3.0" description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "lxml-5.2.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:364d03207f3e603922d0d3932ef363d55bbf48e3647395765f9bfcbdf6d23632"}, - {file = "lxml-5.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:50127c186f191b8917ea2fb8b206fbebe87fd414a6084d15568c27d0a21d60db"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:74e4f025ef3db1c6da4460dd27c118d8cd136d0391da4e387a15e48e5c975147"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:981a06a3076997adf7c743dcd0d7a0415582661e2517c7d961493572e909aa1d"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aef5474d913d3b05e613906ba4090433c515e13ea49c837aca18bde190853dff"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1e275ea572389e41e8b039ac076a46cb87ee6b8542df3fff26f5baab43713bca"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5b65529bb2f21ac7861a0e94fdbf5dc0daab41497d18223b46ee8515e5ad297"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bcc98f911f10278d1daf14b87d65325851a1d29153caaf146877ec37031d5f36"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_ppc64le.whl", hash = "sha256:b47633251727c8fe279f34025844b3b3a3e40cd1b198356d003aa146258d13a2"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_s390x.whl", hash = "sha256:fbc9d316552f9ef7bba39f4edfad4a734d3d6f93341232a9dddadec4f15d425f"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:13e69be35391ce72712184f69000cda04fc89689429179bc4c0ae5f0b7a8c21b"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3b6a30a9ab040b3f545b697cb3adbf3696c05a3a68aad172e3fd7ca73ab3c835"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:a233bb68625a85126ac9f1fc66d24337d6e8a0f9207b688eec2e7c880f012ec0"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:dfa7c241073d8f2b8e8dbc7803c434f57dbb83ae2a3d7892dd068d99e96efe2c"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1a7aca7964ac4bb07680d5c9d63b9d7028cace3e2d43175cb50bba8c5ad33316"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ae4073a60ab98529ab8a72ebf429f2a8cc612619a8c04e08bed27450d52103c0"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ffb2be176fed4457e445fe540617f0252a72a8bc56208fd65a690fdb1f57660b"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e290d79a4107d7d794634ce3e985b9ae4f920380a813717adf61804904dc4393"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:96e85aa09274955bb6bd483eaf5b12abadade01010478154b0ec70284c1b1526"}, - {file = "lxml-5.2.2-cp310-cp310-win32.whl", hash = "sha256:f956196ef61369f1685d14dad80611488d8dc1ef00be57c0c5a03064005b0f30"}, - {file = "lxml-5.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:875a3f90d7eb5c5d77e529080d95140eacb3c6d13ad5b616ee8095447b1d22e7"}, - {file = "lxml-5.2.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:45f9494613160d0405682f9eee781c7e6d1bf45f819654eb249f8f46a2c22545"}, - {file = "lxml-5.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b0b3f2df149efb242cee2ffdeb6674b7f30d23c9a7af26595099afaf46ef4e88"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d28cb356f119a437cc58a13f8135ab8a4c8ece18159eb9194b0d269ec4e28083"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:657a972f46bbefdbba2d4f14413c0d079f9ae243bd68193cb5061b9732fa54c1"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b74b9ea10063efb77a965a8d5f4182806fbf59ed068b3c3fd6f30d2ac7bee734"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:07542787f86112d46d07d4f3c4e7c760282011b354d012dc4141cc12a68cef5f"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:303f540ad2dddd35b92415b74b900c749ec2010e703ab3bfd6660979d01fd4ed"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:2eb2227ce1ff998faf0cd7fe85bbf086aa41dfc5af3b1d80867ecfe75fb68df3"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_ppc64le.whl", hash = "sha256:1d8a701774dfc42a2f0b8ccdfe7dbc140500d1049e0632a611985d943fcf12df"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_s390x.whl", hash = "sha256:56793b7a1a091a7c286b5f4aa1fe4ae5d1446fe742d00cdf2ffb1077865db10d"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:eb00b549b13bd6d884c863554566095bf6fa9c3cecb2e7b399c4bc7904cb33b5"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a2569a1f15ae6c8c64108a2cd2b4a858fc1e13d25846be0666fc144715e32ab"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:8cf85a6e40ff1f37fe0f25719aadf443686b1ac7652593dc53c7ef9b8492b115"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:d237ba6664b8e60fd90b8549a149a74fcc675272e0e95539a00522e4ca688b04"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0b3f5016e00ae7630a4b83d0868fca1e3d494c78a75b1c7252606a3a1c5fc2ad"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:23441e2b5339bc54dc949e9e675fa35efe858108404ef9aa92f0456929ef6fe8"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:2fb0ba3e8566548d6c8e7dd82a8229ff47bd8fb8c2da237607ac8e5a1b8312e5"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:79d1fb9252e7e2cfe4de6e9a6610c7cbb99b9708e2c3e29057f487de5a9eaefa"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6dcc3d17eac1df7859ae01202e9bb11ffa8c98949dcbeb1069c8b9a75917e01b"}, - {file = "lxml-5.2.2-cp311-cp311-win32.whl", hash = "sha256:4c30a2f83677876465f44c018830f608fa3c6a8a466eb223535035fbc16f3438"}, - {file = "lxml-5.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:49095a38eb333aaf44c06052fd2ec3b8f23e19747ca7ec6f6c954ffea6dbf7be"}, - {file = "lxml-5.2.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:7429e7faa1a60cad26ae4227f4dd0459efde239e494c7312624ce228e04f6391"}, - {file = "lxml-5.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:50ccb5d355961c0f12f6cf24b7187dbabd5433f29e15147a67995474f27d1776"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc911208b18842a3a57266d8e51fc3cfaccee90a5351b92079beed912a7914c2"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33ce9e786753743159799fdf8e92a5da351158c4bfb6f2db0bf31e7892a1feb5"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ec87c44f619380878bd49ca109669c9f221d9ae6883a5bcb3616785fa8f94c97"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08ea0f606808354eb8f2dfaac095963cb25d9d28e27edcc375d7b30ab01abbf6"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75a9632f1d4f698b2e6e2e1ada40e71f369b15d69baddb8968dcc8e683839b18"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:74da9f97daec6928567b48c90ea2c82a106b2d500f397eeb8941e47d30b1ca85"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_ppc64le.whl", hash = "sha256:0969e92af09c5687d769731e3f39ed62427cc72176cebb54b7a9d52cc4fa3b73"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_s390x.whl", hash = "sha256:9164361769b6ca7769079f4d426a41df6164879f7f3568be9086e15baca61466"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:d26a618ae1766279f2660aca0081b2220aca6bd1aa06b2cf73f07383faf48927"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab67ed772c584b7ef2379797bf14b82df9aa5f7438c5b9a09624dd834c1c1aaf"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:3d1e35572a56941b32c239774d7e9ad724074d37f90c7a7d499ab98761bd80cf"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:8268cbcd48c5375f46e000adb1390572c98879eb4f77910c6053d25cc3ac2c67"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e282aedd63c639c07c3857097fc0e236f984ceb4089a8b284da1c526491e3f3d"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfdc2bfe69e9adf0df4915949c22a25b39d175d599bf98e7ddf620a13678585"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4aefd911793b5d2d7a921233a54c90329bf3d4a6817dc465f12ffdfe4fc7b8fe"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:8b8df03a9e995b6211dafa63b32f9d405881518ff1ddd775db4e7b98fb545e1c"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f11ae142f3a322d44513de1018b50f474f8f736bc3cd91d969f464b5bfef8836"}, - {file = "lxml-5.2.2-cp312-cp312-win32.whl", hash = "sha256:16a8326e51fcdffc886294c1e70b11ddccec836516a343f9ed0f82aac043c24a"}, - {file = "lxml-5.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:bbc4b80af581e18568ff07f6395c02114d05f4865c2812a1f02f2eaecf0bfd48"}, - {file = "lxml-5.2.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e3d9d13603410b72787579769469af730c38f2f25505573a5888a94b62b920f8"}, - {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38b67afb0a06b8575948641c1d6d68e41b83a3abeae2ca9eed2ac59892b36706"}, - {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c689d0d5381f56de7bd6966a4541bff6e08bf8d3871bbd89a0c6ab18aa699573"}, - {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:cf2a978c795b54c539f47964ec05e35c05bd045db5ca1e8366988c7f2fe6b3ce"}, - {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:739e36ef7412b2bd940f75b278749106e6d025e40027c0b94a17ef7968d55d56"}, - {file = "lxml-5.2.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:d8bbcd21769594dbba9c37d3c819e2d5847656ca99c747ddb31ac1701d0c0ed9"}, - {file = "lxml-5.2.2-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:2304d3c93f2258ccf2cf7a6ba8c761d76ef84948d87bf9664e14d203da2cd264"}, - {file = "lxml-5.2.2-cp36-cp36m-win32.whl", hash = "sha256:02437fb7308386867c8b7b0e5bc4cd4b04548b1c5d089ffb8e7b31009b961dc3"}, - {file = "lxml-5.2.2-cp36-cp36m-win_amd64.whl", hash = "sha256:edcfa83e03370032a489430215c1e7783128808fd3e2e0a3225deee278585196"}, - {file = "lxml-5.2.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:28bf95177400066596cdbcfc933312493799382879da504633d16cf60bba735b"}, - {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a745cc98d504d5bd2c19b10c79c61c7c3df9222629f1b6210c0368177589fb8"}, - {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b590b39ef90c6b22ec0be925b211298e810b4856909c8ca60d27ffbca6c12e6"}, - {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b336b0416828022bfd5a2e3083e7f5ba54b96242159f83c7e3eebaec752f1716"}, - {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:c2faf60c583af0d135e853c86ac2735ce178f0e338a3c7f9ae8f622fd2eb788c"}, - {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:4bc6cb140a7a0ad1f7bc37e018d0ed690b7b6520ade518285dc3171f7a117905"}, - {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7ff762670cada8e05b32bf1e4dc50b140790909caa8303cfddc4d702b71ea184"}, - {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:57f0a0bbc9868e10ebe874e9f129d2917750adf008fe7b9c1598c0fbbfdde6a6"}, - {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:a6d2092797b388342c1bc932077ad232f914351932353e2e8706851c870bca1f"}, - {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:60499fe961b21264e17a471ec296dcbf4365fbea611bf9e303ab69db7159ce61"}, - {file = "lxml-5.2.2-cp37-cp37m-win32.whl", hash = "sha256:d9b342c76003c6b9336a80efcc766748a333573abf9350f4094ee46b006ec18f"}, - {file = "lxml-5.2.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b16db2770517b8799c79aa80f4053cd6f8b716f21f8aca962725a9565ce3ee40"}, - {file = "lxml-5.2.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7ed07b3062b055d7a7f9d6557a251cc655eed0b3152b76de619516621c56f5d3"}, - {file = "lxml-5.2.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f60fdd125d85bf9c279ffb8e94c78c51b3b6a37711464e1f5f31078b45002421"}, - {file = "lxml-5.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a7e24cb69ee5f32e003f50e016d5fde438010c1022c96738b04fc2423e61706"}, - {file = "lxml-5.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23cfafd56887eaed93d07bc4547abd5e09d837a002b791e9767765492a75883f"}, - {file = "lxml-5.2.2-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:19b4e485cd07b7d83e3fe3b72132e7df70bfac22b14fe4bf7a23822c3a35bff5"}, - {file = "lxml-5.2.2-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:7ce7ad8abebe737ad6143d9d3bf94b88b93365ea30a5b81f6877ec9c0dee0a48"}, - {file = "lxml-5.2.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e49b052b768bb74f58c7dda4e0bdf7b79d43a9204ca584ffe1fb48a6f3c84c66"}, - {file = "lxml-5.2.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d14a0d029a4e176795cef99c056d58067c06195e0c7e2dbb293bf95c08f772a3"}, - {file = "lxml-5.2.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:be49ad33819d7dcc28a309b86d4ed98e1a65f3075c6acd3cd4fe32103235222b"}, - {file = "lxml-5.2.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a6d17e0370d2516d5bb9062c7b4cb731cff921fc875644c3d751ad857ba9c5b1"}, - {file = "lxml-5.2.2-cp38-cp38-win32.whl", hash = "sha256:5b8c041b6265e08eac8a724b74b655404070b636a8dd6d7a13c3adc07882ef30"}, - {file = "lxml-5.2.2-cp38-cp38-win_amd64.whl", hash = "sha256:f61efaf4bed1cc0860e567d2ecb2363974d414f7f1f124b1df368bbf183453a6"}, - {file = "lxml-5.2.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:fb91819461b1b56d06fa4bcf86617fac795f6a99d12239fb0c68dbeba41a0a30"}, - {file = "lxml-5.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d4ed0c7cbecde7194cd3228c044e86bf73e30a23505af852857c09c24e77ec5d"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54401c77a63cc7d6dc4b4e173bb484f28a5607f3df71484709fe037c92d4f0ed"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:625e3ef310e7fa3a761d48ca7ea1f9d8718a32b1542e727d584d82f4453d5eeb"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:519895c99c815a1a24a926d5b60627ce5ea48e9f639a5cd328bda0515ea0f10c"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c7079d5eb1c1315a858bbf180000757db8ad904a89476653232db835c3114001"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:343ab62e9ca78094f2306aefed67dcfad61c4683f87eee48ff2fd74902447726"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:cd9e78285da6c9ba2d5c769628f43ef66d96ac3085e59b10ad4f3707980710d3"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_ppc64le.whl", hash = "sha256:546cf886f6242dff9ec206331209db9c8e1643ae642dea5fdbecae2453cb50fd"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_s390x.whl", hash = "sha256:02f6a8eb6512fdc2fd4ca10a49c341c4e109aa6e9448cc4859af5b949622715a"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:339ee4a4704bc724757cd5dd9dc8cf4d00980f5d3e6e06d5847c1b594ace68ab"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0a028b61a2e357ace98b1615fc03f76eb517cc028993964fe08ad514b1e8892d"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f90e552ecbad426eab352e7b2933091f2be77115bb16f09f78404861c8322981"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:d83e2d94b69bf31ead2fa45f0acdef0757fa0458a129734f59f67f3d2eb7ef32"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a02d3c48f9bb1e10c7788d92c0c7db6f2002d024ab6e74d6f45ae33e3d0288a3"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:6d68ce8e7b2075390e8ac1e1d3a99e8b6372c694bbe612632606d1d546794207"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:453d037e09a5176d92ec0fd282e934ed26d806331a8b70ab431a81e2fbabf56d"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:3b019d4ee84b683342af793b56bb35034bd749e4cbdd3d33f7d1107790f8c472"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:cb3942960f0beb9f46e2a71a3aca220d1ca32feb5a398656be934320804c0df9"}, - {file = "lxml-5.2.2-cp39-cp39-win32.whl", hash = "sha256:ac6540c9fff6e3813d29d0403ee7a81897f1d8ecc09a8ff84d2eea70ede1cdbf"}, - {file = "lxml-5.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:610b5c77428a50269f38a534057444c249976433f40f53e3b47e68349cca1425"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b537bd04d7ccd7c6350cdaaaad911f6312cbd61e6e6045542f781c7f8b2e99d2"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4820c02195d6dfb7b8508ff276752f6b2ff8b64ae5d13ebe02e7667e035000b9"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a09f6184f17a80897172863a655467da2b11151ec98ba8d7af89f17bf63dae"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:76acba4c66c47d27c8365e7c10b3d8016a7da83d3191d053a58382311a8bf4e1"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b128092c927eaf485928cec0c28f6b8bead277e28acf56800e972aa2c2abd7a2"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ae791f6bd43305aade8c0e22f816b34f3b72b6c820477aab4d18473a37e8090b"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a2f6a1bc2460e643785a2cde17293bd7a8f990884b822f7bca47bee0a82fc66b"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e8d351ff44c1638cb6e980623d517abd9f580d2e53bfcd18d8941c052a5a009"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bec4bd9133420c5c52d562469c754f27c5c9e36ee06abc169612c959bd7dbb07"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:55ce6b6d803890bd3cc89975fca9de1dff39729b43b73cb15ddd933b8bc20484"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:8ab6a358d1286498d80fe67bd3d69fcbc7d1359b45b41e74c4a26964ca99c3f8"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:06668e39e1f3c065349c51ac27ae430719d7806c026fec462e5693b08b95696b"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9cd5323344d8ebb9fb5e96da5de5ad4ebab993bbf51674259dbe9d7a18049525"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89feb82ca055af0fe797a2323ec9043b26bc371365847dbe83c7fd2e2f181c34"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e481bba1e11ba585fb06db666bfc23dbe181dbafc7b25776156120bf12e0d5a6"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:9d6c6ea6a11ca0ff9cd0390b885984ed31157c168565702959c25e2191674a14"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3d98de734abee23e61f6b8c2e08a88453ada7d6486dc7cdc82922a03968928db"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:69ab77a1373f1e7563e0fb5a29a8440367dec051da6c7405333699d07444f511"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:34e17913c431f5ae01d8658dbf792fdc457073dcdfbb31dc0cc6ab256e664a8d"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05f8757b03208c3f50097761be2dea0aba02e94f0dc7023ed73a7bb14ff11eb0"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a520b4f9974b0a0a6ed73c2154de57cdfd0c8800f4f15ab2b73238ffed0b36e"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5e097646944b66207023bc3c634827de858aebc226d5d4d6d16f0b77566ea182"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b5e4ef22ff25bfd4ede5f8fb30f7b24446345f3e79d9b7455aef2836437bc38a"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ff69a9a0b4b17d78170c73abe2ab12084bdf1691550c5629ad1fe7849433f324"}, - {file = "lxml-5.2.2.tar.gz", hash = "sha256:bb2dc4898180bea79863d5487e5f9c7c34297414bad54bcd0f0852aee9cfdb87"}, + {file = "lxml-5.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:dd36439be765e2dde7660212b5275641edbc813e7b24668831a5c8ac91180656"}, + {file = "lxml-5.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ae5fe5c4b525aa82b8076c1a59d642c17b6e8739ecf852522c6321852178119d"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:501d0d7e26b4d261fca8132854d845e4988097611ba2531408ec91cf3fd9d20a"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb66442c2546446944437df74379e9cf9e9db353e61301d1a0e26482f43f0dd8"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e41506fec7a7f9405b14aa2d5c8abbb4dbbd09d88f9496958b6d00cb4d45330"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f7d4a670107d75dfe5ad080bed6c341d18c4442f9378c9f58e5851e86eb79965"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41ce1f1e2c7755abfc7e759dc34d7d05fd221723ff822947132dc934d122fe22"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:44264ecae91b30e5633013fb66f6ddd05c006d3e0e884f75ce0b4755b3e3847b"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_ppc64le.whl", hash = "sha256:3c174dc350d3ec52deb77f2faf05c439331d6ed5e702fc247ccb4e6b62d884b7"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_s390x.whl", hash = "sha256:2dfab5fa6a28a0b60a20638dc48e6343c02ea9933e3279ccb132f555a62323d8"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b1c8c20847b9f34e98080da785bb2336ea982e7f913eed5809e5a3c872900f32"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2c86bf781b12ba417f64f3422cfc302523ac9cd1d8ae8c0f92a1c66e56ef2e86"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:c162b216070f280fa7da844531169be0baf9ccb17263cf5a8bf876fcd3117fa5"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:36aef61a1678cb778097b4a6eeae96a69875d51d1e8f4d4b491ab3cfb54b5a03"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f65e5120863c2b266dbcc927b306c5b78e502c71edf3295dfcb9501ec96e5fc7"}, + {file = "lxml-5.3.0-cp310-cp310-win32.whl", hash = "sha256:ef0c1fe22171dd7c7c27147f2e9c3e86f8bdf473fed75f16b0c2e84a5030ce80"}, + {file = "lxml-5.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:052d99051e77a4f3e8482c65014cf6372e61b0a6f4fe9edb98503bb5364cfee3"}, + {file = "lxml-5.3.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:74bcb423462233bc5d6066e4e98b0264e7c1bed7541fff2f4e34fe6b21563c8b"}, + {file = "lxml-5.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a3d819eb6f9b8677f57f9664265d0a10dd6551d227afb4af2b9cd7bdc2ccbf18"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b8f5db71b28b8c404956ddf79575ea77aa8b1538e8b2ef9ec877945b3f46442"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3406b63232fc7e9b8783ab0b765d7c59e7c59ff96759d8ef9632fca27c7ee4"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ecdd78ab768f844c7a1d4a03595038c166b609f6395e25af9b0f3f26ae1230f"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:168f2dfcfdedf611eb285efac1516c8454c8c99caf271dccda8943576b67552e"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa617107a410245b8660028a7483b68e7914304a6d4882b5ff3d2d3eb5948d8c"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:69959bd3167b993e6e710b99051265654133a98f20cec1d9b493b931942e9c16"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_ppc64le.whl", hash = "sha256:bd96517ef76c8654446fc3db9242d019a1bb5fe8b751ba414765d59f99210b79"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_s390x.whl", hash = "sha256:ab6dd83b970dc97c2d10bc71aa925b84788c7c05de30241b9e96f9b6d9ea3080"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:eec1bb8cdbba2925bedc887bc0609a80e599c75b12d87ae42ac23fd199445654"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6a7095eeec6f89111d03dabfe5883a1fd54da319c94e0fb104ee8f23616b572d"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6f651ebd0b21ec65dfca93aa629610a0dbc13dbc13554f19b0113da2e61a4763"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:f422a209d2455c56849442ae42f25dbaaba1c6c3f501d58761c619c7836642ec"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:62f7fdb0d1ed2065451f086519865b4c90aa19aed51081979ecd05a21eb4d1be"}, + {file = "lxml-5.3.0-cp311-cp311-win32.whl", hash = "sha256:c6379f35350b655fd817cd0d6cbeef7f265f3ae5fedb1caae2eb442bbeae9ab9"}, + {file = "lxml-5.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:9c52100e2c2dbb0649b90467935c4b0de5528833c76a35ea1a2691ec9f1ee7a1"}, + {file = "lxml-5.3.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:e99f5507401436fdcc85036a2e7dc2e28d962550afe1cbfc07c40e454256a859"}, + {file = "lxml-5.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:384aacddf2e5813a36495233b64cb96b1949da72bef933918ba5c84e06af8f0e"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:874a216bf6afaf97c263b56371434e47e2c652d215788396f60477540298218f"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65ab5685d56914b9a2a34d67dd5488b83213d680b0c5d10b47f81da5a16b0b0e"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aac0bbd3e8dd2d9c45ceb82249e8bdd3ac99131a32b4d35c8af3cc9db1657179"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b369d3db3c22ed14c75ccd5af429086f166a19627e84a8fdade3f8f31426e52a"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c24037349665434f375645fa9d1f5304800cec574d0310f618490c871fd902b3"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:62d172f358f33a26d6b41b28c170c63886742f5b6772a42b59b4f0fa10526cb1"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_ppc64le.whl", hash = "sha256:c1f794c02903c2824fccce5b20c339a1a14b114e83b306ff11b597c5f71a1c8d"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_s390x.whl", hash = "sha256:5d6a6972b93c426ace71e0be9a6f4b2cfae9b1baed2eed2006076a746692288c"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:3879cc6ce938ff4eb4900d901ed63555c778731a96365e53fadb36437a131a99"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:74068c601baff6ff021c70f0935b0c7bc528baa8ea210c202e03757c68c5a4ff"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ecd4ad8453ac17bc7ba3868371bffb46f628161ad0eefbd0a855d2c8c32dd81a"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7e2f58095acc211eb9d8b5771bf04df9ff37d6b87618d1cbf85f92399c98dae8"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e63601ad5cd8f860aa99d109889b5ac34de571c7ee902d6812d5d9ddcc77fa7d"}, + {file = "lxml-5.3.0-cp312-cp312-win32.whl", hash = "sha256:17e8d968d04a37c50ad9c456a286b525d78c4a1c15dd53aa46c1d8e06bf6fa30"}, + {file = "lxml-5.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:c1a69e58a6bb2de65902051d57fde951febad631a20a64572677a1052690482f"}, + {file = "lxml-5.3.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c72e9563347c7395910de6a3100a4840a75a6f60e05af5e58566868d5eb2d6a"}, + {file = "lxml-5.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e92ce66cd919d18d14b3856906a61d3f6b6a8500e0794142338da644260595cd"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d04f064bebdfef9240478f7a779e8c5dc32b8b7b0b2fc6a62e39b928d428e51"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c2fb570d7823c2bbaf8b419ba6e5662137f8166e364a8b2b91051a1fb40ab8b"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0c120f43553ec759f8de1fee2f4794452b0946773299d44c36bfe18e83caf002"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:562e7494778a69086f0312ec9689f6b6ac1c6b65670ed7d0267e49f57ffa08c4"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:423b121f7e6fa514ba0c7918e56955a1d4470ed35faa03e3d9f0e3baa4c7e492"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:c00f323cc00576df6165cc9d21a4c21285fa6b9989c5c39830c3903dc4303ef3"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_ppc64le.whl", hash = "sha256:1fdc9fae8dd4c763e8a31e7630afef517eab9f5d5d31a278df087f307bf601f4"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_s390x.whl", hash = "sha256:658f2aa69d31e09699705949b5fc4719cbecbd4a97f9656a232e7d6c7be1a367"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:1473427aff3d66a3fa2199004c3e601e6c4500ab86696edffdbc84954c72d832"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a87de7dd873bf9a792bf1e58b1c3887b9264036629a5bf2d2e6579fe8e73edff"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:0d7b36afa46c97875303a94e8f3ad932bf78bace9e18e603f2085b652422edcd"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:cf120cce539453ae086eacc0130a324e7026113510efa83ab42ef3fcfccac7fb"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:df5c7333167b9674aa8ae1d4008fa4bc17a313cc490b2cca27838bbdcc6bb15b"}, + {file = "lxml-5.3.0-cp313-cp313-win32.whl", hash = "sha256:c802e1c2ed9f0c06a65bc4ed0189d000ada8049312cfeab6ca635e39c9608957"}, + {file = "lxml-5.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:406246b96d552e0503e17a1006fd27edac678b3fcc9f1be71a2f94b4ff61528d"}, + {file = "lxml-5.3.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:8f0de2d390af441fe8b2c12626d103540b5d850d585b18fcada58d972b74a74e"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1afe0a8c353746e610bd9031a630a95bcfb1a720684c3f2b36c4710a0a96528f"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56b9861a71575f5795bde89256e7467ece3d339c9b43141dbdd54544566b3b94"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:9fb81d2824dff4f2e297a276297e9031f46d2682cafc484f49de182aa5e5df99"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:2c226a06ecb8cdef28845ae976da407917542c5e6e75dcac7cc33eb04aaeb237"}, + {file = "lxml-5.3.0-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:7d3d1ca42870cdb6d0d29939630dbe48fa511c203724820fc0fd507b2fb46577"}, + {file = "lxml-5.3.0-cp36-cp36m-win32.whl", hash = "sha256:094cb601ba9f55296774c2d57ad68730daa0b13dc260e1f941b4d13678239e70"}, + {file = "lxml-5.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:eafa2c8658f4e560b098fe9fc54539f86528651f61849b22111a9b107d18910c"}, + {file = "lxml-5.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cb83f8a875b3d9b458cada4f880fa498646874ba4011dc974e071a0a84a1b033"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:25f1b69d41656b05885aa185f5fdf822cb01a586d1b32739633679699f220391"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23e0553b8055600b3bf4a00b255ec5c92e1e4aebf8c2c09334f8368e8bd174d6"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ada35dd21dc6c039259596b358caab6b13f4db4d4a7f8665764d616daf9cc1d"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:81b4e48da4c69313192d8c8d4311e5d818b8be1afe68ee20f6385d0e96fc9512"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:2bc9fd5ca4729af796f9f59cd8ff160fe06a474da40aca03fcc79655ddee1a8b"}, + {file = "lxml-5.3.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:07da23d7ee08577760f0a71d67a861019103e4812c87e2fab26b039054594cc5"}, + {file = "lxml-5.3.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:ea2e2f6f801696ad7de8aec061044d6c8c0dd4037608c7cab38a9a4d316bfb11"}, + {file = "lxml-5.3.0-cp37-cp37m-win32.whl", hash = "sha256:5c54afdcbb0182d06836cc3d1be921e540be3ebdf8b8a51ee3ef987537455f84"}, + {file = "lxml-5.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:f2901429da1e645ce548bf9171784c0f74f0718c3f6150ce166be39e4dd66c3e"}, + {file = "lxml-5.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c56a1d43b2f9ee4786e4658c7903f05da35b923fb53c11025712562d5cc02753"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ee8c39582d2652dcd516d1b879451500f8db3fe3607ce45d7c5957ab2596040"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fdf3a3059611f7585a78ee10399a15566356116a4288380921a4b598d807a22"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:146173654d79eb1fc97498b4280c1d3e1e5d58c398fa530905c9ea50ea849b22"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:0a7056921edbdd7560746f4221dca89bb7a3fe457d3d74267995253f46343f15"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:9e4b47ac0f5e749cfc618efdf4726269441014ae1d5583e047b452a32e221920"}, + {file = "lxml-5.3.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:f914c03e6a31deb632e2daa881fe198461f4d06e57ac3d0e05bbcab8eae01945"}, + {file = "lxml-5.3.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:213261f168c5e1d9b7535a67e68b1f59f92398dd17a56d934550837143f79c42"}, + {file = "lxml-5.3.0-cp38-cp38-win32.whl", hash = "sha256:218c1b2e17a710e363855594230f44060e2025b05c80d1f0661258142b2add2e"}, + {file = "lxml-5.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:315f9542011b2c4e1d280e4a20ddcca1761993dda3afc7a73b01235f8641e903"}, + {file = "lxml-5.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1ffc23010330c2ab67fac02781df60998ca8fe759e8efde6f8b756a20599c5de"}, + {file = "lxml-5.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2b3778cb38212f52fac9fe913017deea2fdf4eb1a4f8e4cfc6b009a13a6d3fcc"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b0c7a688944891086ba192e21c5229dea54382f4836a209ff8d0a660fac06be"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:747a3d3e98e24597981ca0be0fd922aebd471fa99d0043a3842d00cdcad7ad6a"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86a6b24b19eaebc448dc56b87c4865527855145d851f9fc3891673ff97950540"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b11a5d918a6216e521c715b02749240fb07ae5a1fefd4b7bf12f833bc8b4fe70"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68b87753c784d6acb8a25b05cb526c3406913c9d988d51f80adecc2b0775d6aa"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:109fa6fede314cc50eed29e6e56c540075e63d922455346f11e4d7a036d2b8cf"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_ppc64le.whl", hash = "sha256:02ced472497b8362c8e902ade23e3300479f4f43e45f4105c85ef43b8db85229"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_s390x.whl", hash = "sha256:6b038cc86b285e4f9fea2ba5ee76e89f21ed1ea898e287dc277a25884f3a7dfe"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:7437237c6a66b7ca341e868cda48be24b8701862757426852c9b3186de1da8a2"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7f41026c1d64043a36fda21d64c5026762d53a77043e73e94b71f0521939cc71"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:482c2f67761868f0108b1743098640fbb2a28a8e15bf3f47ada9fa59d9fe08c3"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:1483fd3358963cc5c1c9b122c80606a3a79ee0875bcac0204149fa09d6ff2727"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2dec2d1130a9cda5b904696cec33b2cfb451304ba9081eeda7f90f724097300a"}, + {file = "lxml-5.3.0-cp39-cp39-win32.whl", hash = "sha256:a0eabd0a81625049c5df745209dc7fcef6e2aea7793e5f003ba363610aa0a3ff"}, + {file = "lxml-5.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:89e043f1d9d341c52bf2af6d02e6adde62e0a46e6755d5eb60dc6e4f0b8aeca2"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7b1cd427cb0d5f7393c31b7496419da594fe600e6fdc4b105a54f82405e6626c"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51806cfe0279e06ed8500ce19479d757db42a30fd509940b1701be9c86a5ff9a"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee70d08fd60c9565ba8190f41a46a54096afa0eeb8f76bd66f2c25d3b1b83005"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:8dc2c0395bea8254d8daebc76dcf8eb3a95ec2a46fa6fae5eaccee366bfe02ce"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6ba0d3dcac281aad8a0e5b14c7ed6f9fa89c8612b47939fc94f80b16e2e9bc83"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:6e91cf736959057f7aac7adfc83481e03615a8e8dd5758aa1d95ea69e8931dba"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:94d6c3782907b5e40e21cadf94b13b0842ac421192f26b84c45f13f3c9d5dc27"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c300306673aa0f3ed5ed9372b21867690a17dba38c68c44b287437c362ce486b"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78d9b952e07aed35fe2e1a7ad26e929595412db48535921c5013edc8aa4a35ce"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:01220dca0d066d1349bd6a1726856a78f7929f3878f7e2ee83c296c69495309e"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:2d9b8d9177afaef80c53c0a9e30fa252ff3036fb1c6494d427c066a4ce6a282f"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:20094fc3f21ea0a8669dc4c61ed7fa8263bd37d97d93b90f28fc613371e7a875"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ace2c2326a319a0bb8a8b0e5b570c764962e95818de9f259ce814ee666603f19"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92e67a0be1639c251d21e35fe74df6bcc40cba445c2cda7c4a967656733249e2"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd5350b55f9fecddc51385463a4f67a5da829bc741e38cf689f38ec9023f54ab"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:4c1fefd7e3d00921c44dc9ca80a775af49698bbfd92ea84498e56acffd4c5469"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:71a8dd38fbd2f2319136d4ae855a7078c69c9a38ae06e0c17c73fd70fc6caad8"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:97acf1e1fd66ab53dacd2c35b319d7e548380c2e9e8c54525c6e76d21b1ae3b1"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:68934b242c51eb02907c5b81d138cb977b2129a0a75a8f8b60b01cb8586c7b21"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b710bc2b8292966b23a6a0121f7a6c51d45d2347edcc75f016ac123b8054d3f2"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18feb4b93302091b1541221196a2155aa296c363fd233814fa11e181adebc52f"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:3eb44520c4724c2e1a57c0af33a379eee41792595023f367ba3952a2d96c2aab"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:609251a0ca4770e5a8768ff902aa02bf636339c5a93f9349b48eb1f606f7f3e9"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:516f491c834eb320d6c843156440fe7fc0d50b33e44387fcec5b02f0bc118a4c"}, + {file = "lxml-5.3.0.tar.gz", hash = "sha256:4e109ca30d1edec1ac60cdbe341905dc3b8f55b16855e03a54aaf59e51ec8c6f"}, ] [package.extras] @@ -2803,17 +3013,18 @@ cssselect = ["cssselect (>=0.7)"] html-clean = ["lxml-html-clean"] html5 = ["html5lib"] htmlsoup = ["BeautifulSoup4"] -source = ["Cython (>=3.0.10)"] +source = ["Cython (>=3.0.11)"] [[package]] name = "mako" -version = "1.3.5" +version = "1.3.8" description = "A super-fast templating language that borrows the best ideas from the existing templating languages." +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "Mako-1.3.5-py3-none-any.whl", hash = "sha256:260f1dbc3a519453a9c856dedfe4beb4e50bd5a26d96386cb6c80856556bb91a"}, - {file = "Mako-1.3.5.tar.gz", hash = "sha256:48dbc20568c1d276a2698b36d968fa76161bf127194907ea6fc594fa81f943bc"}, + {file = "Mako-1.3.8-py3-none-any.whl", hash = "sha256:42f48953c7eb91332040ff567eb7eea69b22e7a4affbc5ba8e845e8f730f6627"}, + {file = "mako-1.3.8.tar.gz", hash = "sha256:577b97e414580d3e088d47c2dbbe9594aa7a5146ed2875d4dfa9075af2dd3cc8"}, ] [package.dependencies] @@ -2826,13 +3037,14 @@ testing = ["pytest"] [[package]] name = "markdown" -version = "3.6" +version = "3.7" description = "Python implementation of John Gruber's Markdown." +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "Markdown-3.6-py3-none-any.whl", hash = "sha256:48f276f4d8cfb8ce6527c8f79e2ee29708508bf4d40aa410fbc3b4ee832c850f"}, - {file = "Markdown-3.6.tar.gz", hash = "sha256:ed4f41f6daecbeeb96e576ce414c41d2d876daa9a16cb35fa8ed8c2ddfad0224"}, + {file = "Markdown-3.7-py3-none-any.whl", hash = "sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803"}, + {file = "markdown-3.7.tar.gz", hash = "sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2"}, ] [package.extras] @@ -2843,6 +3055,7 @@ testing = ["coverage", "pyyaml"] name = "markdown-it-py" version = "3.0.0" description = "Python port of markdown-it. Markdown parsing, done right!" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2865,120 +3078,124 @@ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] [[package]] name = "markupsafe" -version = "2.1.5" +version = "3.0.2" description = "Safely add untrusted strings to HTML/XML markup." +category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" files = [ - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, - {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, ] [[package]] name = "matplotlib" -version = "3.9.2" +version = "3.9.4" description = "Python plotting package" +category = "main" optional = false python-versions = ">=3.9" files = [ - {file = "matplotlib-3.9.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:9d78bbc0cbc891ad55b4f39a48c22182e9bdaea7fc0e5dbd364f49f729ca1bbb"}, - {file = "matplotlib-3.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c375cc72229614632c87355366bdf2570c2dac01ac66b8ad048d2dabadf2d0d4"}, - {file = "matplotlib-3.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d94ff717eb2bd0b58fe66380bd8b14ac35f48a98e7c6765117fe67fb7684e64"}, - {file = "matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab68d50c06938ef28681073327795c5db99bb4666214d2d5f880ed11aeaded66"}, - {file = "matplotlib-3.9.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:65aacf95b62272d568044531e41de26285d54aec8cb859031f511f84bd8b495a"}, - {file = "matplotlib-3.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:3fd595f34aa8a55b7fc8bf9ebea8aa665a84c82d275190a61118d33fbc82ccae"}, - {file = "matplotlib-3.9.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d8dd059447824eec055e829258ab092b56bb0579fc3164fa09c64f3acd478772"}, - {file = "matplotlib-3.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c797dac8bb9c7a3fd3382b16fe8f215b4cf0f22adccea36f1545a6d7be310b41"}, - {file = "matplotlib-3.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d719465db13267bcef19ea8954a971db03b9f48b4647e3860e4bc8e6ed86610f"}, - {file = "matplotlib-3.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8912ef7c2362f7193b5819d17dae8629b34a95c58603d781329712ada83f9447"}, - {file = "matplotlib-3.9.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7741f26a58a240f43bee74965c4882b6c93df3e7eb3de160126d8c8f53a6ae6e"}, - {file = "matplotlib-3.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:ae82a14dab96fbfad7965403c643cafe6515e386de723e498cf3eeb1e0b70cc7"}, - {file = "matplotlib-3.9.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ac43031375a65c3196bee99f6001e7fa5bdfb00ddf43379d3c0609bdca042df9"}, - {file = "matplotlib-3.9.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:be0fc24a5e4531ae4d8e858a1a548c1fe33b176bb13eff7f9d0d38ce5112a27d"}, - {file = "matplotlib-3.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf81de2926c2db243c9b2cbc3917619a0fc85796c6ba4e58f541df814bbf83c7"}, - {file = "matplotlib-3.9.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6ee45bc4245533111ced13f1f2cace1e7f89d1c793390392a80c139d6cf0e6c"}, - {file = "matplotlib-3.9.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:306c8dfc73239f0e72ac50e5a9cf19cc4e8e331dd0c54f5e69ca8758550f1e1e"}, - {file = "matplotlib-3.9.2-cp312-cp312-win_amd64.whl", hash = "sha256:5413401594cfaff0052f9d8b1aafc6d305b4bd7c4331dccd18f561ff7e1d3bd3"}, - {file = "matplotlib-3.9.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:18128cc08f0d3cfff10b76baa2f296fc28c4607368a8402de61bb3f2eb33c7d9"}, - {file = "matplotlib-3.9.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4876d7d40219e8ae8bb70f9263bcbe5714415acfdf781086601211335e24f8aa"}, - {file = "matplotlib-3.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d9f07a80deab4bb0b82858a9e9ad53d1382fd122be8cde11080f4e7dfedb38b"}, - {file = "matplotlib-3.9.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7c0410f181a531ec4e93bbc27692f2c71a15c2da16766f5ba9761e7ae518413"}, - {file = "matplotlib-3.9.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:909645cce2dc28b735674ce0931a4ac94e12f5b13f6bb0b5a5e65e7cea2c192b"}, - {file = "matplotlib-3.9.2-cp313-cp313-win_amd64.whl", hash = "sha256:f32c7410c7f246838a77d6d1eff0c0f87f3cb0e7c4247aebea71a6d5a68cab49"}, - {file = "matplotlib-3.9.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:37e51dd1c2db16ede9cfd7b5cabdfc818b2c6397c83f8b10e0e797501c963a03"}, - {file = "matplotlib-3.9.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b82c5045cebcecd8496a4d694d43f9cc84aeeb49fe2133e036b207abe73f4d30"}, - {file = "matplotlib-3.9.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f053c40f94bc51bc03832a41b4f153d83f2062d88c72b5e79997072594e97e51"}, - {file = "matplotlib-3.9.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dbe196377a8248972f5cede786d4c5508ed5f5ca4a1e09b44bda889958b33f8c"}, - {file = "matplotlib-3.9.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5816b1e1fe8c192cbc013f8f3e3368ac56fbecf02fb41b8f8559303f24c5015e"}, - {file = "matplotlib-3.9.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:cef2a73d06601437be399908cf13aee74e86932a5ccc6ccdf173408ebc5f6bb2"}, - {file = "matplotlib-3.9.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e0830e188029c14e891fadd99702fd90d317df294c3298aad682739c5533721a"}, - {file = "matplotlib-3.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03ba9c1299c920964e8d3857ba27173b4dbb51ca4bab47ffc2c2ba0eb5e2cbc5"}, - {file = "matplotlib-3.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cd93b91ab47a3616b4d3c42b52f8363b88ca021e340804c6ab2536344fad9ca"}, - {file = "matplotlib-3.9.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6d1ce5ed2aefcdce11904fc5bbea7d9c21fff3d5f543841edf3dea84451a09ea"}, - {file = "matplotlib-3.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:b2696efdc08648536efd4e1601b5fd491fd47f4db97a5fbfd175549a7365c1b2"}, - {file = "matplotlib-3.9.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:d52a3b618cb1cbb769ce2ee1dcdb333c3ab6e823944e9a2d36e37253815f9556"}, - {file = "matplotlib-3.9.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:039082812cacd6c6bec8e17a9c1e6baca230d4116d522e81e1f63a74d01d2e21"}, - {file = "matplotlib-3.9.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6758baae2ed64f2331d4fd19be38b7b4eae3ecec210049a26b6a4f3ae1c85dcc"}, - {file = "matplotlib-3.9.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:050598c2b29e0b9832cde72bcf97627bf00262adbc4a54e2b856426bb2ef0697"}, - {file = "matplotlib-3.9.2.tar.gz", hash = "sha256:96ab43906269ca64a6366934106fa01534454a69e471b7bf3d79083981aaab92"}, + {file = "matplotlib-3.9.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:c5fdd7abfb706dfa8d307af64a87f1a862879ec3cd8d0ec8637458f0885b9c50"}, + {file = "matplotlib-3.9.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d89bc4e85e40a71d1477780366c27fb7c6494d293e1617788986f74e2a03d7ff"}, + {file = "matplotlib-3.9.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ddf9f3c26aae695c5daafbf6b94e4c1a30d6cd617ba594bbbded3b33a1fcfa26"}, + {file = "matplotlib-3.9.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18ebcf248030173b59a868fda1fe42397253f6698995b55e81e1f57431d85e50"}, + {file = "matplotlib-3.9.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:974896ec43c672ec23f3f8c648981e8bc880ee163146e0312a9b8def2fac66f5"}, + {file = "matplotlib-3.9.4-cp310-cp310-win_amd64.whl", hash = "sha256:4598c394ae9711cec135639374e70871fa36b56afae17bdf032a345be552a88d"}, + {file = "matplotlib-3.9.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d4dd29641d9fb8bc4492420c5480398dd40a09afd73aebe4eb9d0071a05fbe0c"}, + {file = "matplotlib-3.9.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30e5b22e8bcfb95442bf7d48b0d7f3bdf4a450cbf68986ea45fca3d11ae9d099"}, + {file = "matplotlib-3.9.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bb0030d1d447fd56dcc23b4c64a26e44e898f0416276cac1ebc25522e0ac249"}, + {file = "matplotlib-3.9.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aca90ed222ac3565d2752b83dbb27627480d27662671e4d39da72e97f657a423"}, + {file = "matplotlib-3.9.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a181b2aa2906c608fcae72f977a4a2d76e385578939891b91c2550c39ecf361e"}, + {file = "matplotlib-3.9.4-cp311-cp311-win_amd64.whl", hash = "sha256:1f6882828231eca17f501c4dcd98a05abb3f03d157fbc0769c6911fe08b6cfd3"}, + {file = "matplotlib-3.9.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:dfc48d67e6661378a21c2983200a654b72b5c5cdbd5d2cf6e5e1ece860f0cc70"}, + {file = "matplotlib-3.9.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:47aef0fab8332d02d68e786eba8113ffd6f862182ea2999379dec9e237b7e483"}, + {file = "matplotlib-3.9.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fba1f52c6b7dc764097f52fd9ab627b90db452c9feb653a59945de16752e965f"}, + {file = "matplotlib-3.9.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:173ac3748acaac21afcc3fa1633924609ba1b87749006bc25051c52c422a5d00"}, + {file = "matplotlib-3.9.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:320edea0cadc07007765e33f878b13b3738ffa9745c5f707705692df70ffe0e0"}, + {file = "matplotlib-3.9.4-cp312-cp312-win_amd64.whl", hash = "sha256:a4a4cfc82330b27042a7169533da7991e8789d180dd5b3daeaee57d75cd5a03b"}, + {file = "matplotlib-3.9.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:37eeffeeca3c940985b80f5b9a7b95ea35671e0e7405001f249848d2b62351b6"}, + {file = "matplotlib-3.9.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3e7465ac859ee4abcb0d836137cd8414e7bb7ad330d905abced457217d4f0f45"}, + {file = "matplotlib-3.9.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4c12302c34afa0cf061bea23b331e747e5e554b0fa595c96e01c7b75bc3b858"}, + {file = "matplotlib-3.9.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b8c97917f21b75e72108b97707ba3d48f171541a74aa2a56df7a40626bafc64"}, + {file = "matplotlib-3.9.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0229803bd7e19271b03cb09f27db76c918c467aa4ce2ae168171bc67c3f508df"}, + {file = "matplotlib-3.9.4-cp313-cp313-win_amd64.whl", hash = "sha256:7c0d8ef442ebf56ff5e206f8083d08252ee738e04f3dc88ea882853a05488799"}, + {file = "matplotlib-3.9.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a04c3b00066a688834356d196136349cb32f5e1003c55ac419e91585168b88fb"}, + {file = "matplotlib-3.9.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:04c519587f6c210626741a1e9a68eefc05966ede24205db8982841826af5871a"}, + {file = "matplotlib-3.9.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:308afbf1a228b8b525fcd5cec17f246bbbb63b175a3ef6eb7b4d33287ca0cf0c"}, + {file = "matplotlib-3.9.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ddb3b02246ddcffd3ce98e88fed5b238bc5faff10dbbaa42090ea13241d15764"}, + {file = "matplotlib-3.9.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8a75287e9cb9eee48cb79ec1d806f75b29c0fde978cb7223a1f4c5848d696041"}, + {file = "matplotlib-3.9.4-cp313-cp313t-win_amd64.whl", hash = "sha256:488deb7af140f0ba86da003e66e10d55ff915e152c78b4b66d231638400b1965"}, + {file = "matplotlib-3.9.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:3c3724d89a387ddf78ff88d2a30ca78ac2b4c89cf37f2db4bd453c34799e933c"}, + {file = "matplotlib-3.9.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d5f0a8430ffe23d7e32cfd86445864ccad141797f7d25b7c41759a5b5d17cfd7"}, + {file = "matplotlib-3.9.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6bb0141a21aef3b64b633dc4d16cbd5fc538b727e4958be82a0e1c92a234160e"}, + {file = "matplotlib-3.9.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:57aa235109e9eed52e2c2949db17da185383fa71083c00c6c143a60e07e0888c"}, + {file = "matplotlib-3.9.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:b18c600061477ccfdd1e6fd050c33d8be82431700f3452b297a56d9ed7037abb"}, + {file = "matplotlib-3.9.4-cp39-cp39-win_amd64.whl", hash = "sha256:ef5f2d1b67d2d2145ff75e10f8c008bfbf71d45137c4b648c87193e7dd053eac"}, + {file = "matplotlib-3.9.4-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:44e0ed786d769d85bc787b0606a53f2d8d2d1d3c8a2608237365e9121c1a338c"}, + {file = "matplotlib-3.9.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:09debb9ce941eb23ecdbe7eab972b1c3e0276dcf01688073faff7b0f61d6c6ca"}, + {file = "matplotlib-3.9.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bcc53cf157a657bfd03afab14774d54ba73aa84d42cfe2480c91bd94873952db"}, + {file = "matplotlib-3.9.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ad45da51be7ad02387801fd154ef74d942f49fe3fcd26a64c94842ba7ec0d865"}, + {file = "matplotlib-3.9.4.tar.gz", hash = "sha256:1e00e8be7393cbdc6fedfa8a6fba02cf3e83814b285db1c60b906a023ba41bc3"}, ] [package.dependencies] @@ -2993,12 +3210,13 @@ pyparsing = ">=2.3.1" python-dateutil = ">=2.7" [package.extras] -dev = ["meson-python (>=0.13.1)", "numpy (>=1.25)", "pybind11 (>=2.6)", "setuptools (>=64)", "setuptools_scm (>=7)"] +dev = ["meson-python (>=0.13.1,<0.17.0)", "numpy (>=1.25)", "pybind11 (>=2.6,!=2.13.3)", "setuptools (>=64)", "setuptools_scm (>=7)"] [[package]] name = "matplotlib-inline" version = "0.1.7" description = "Inline Matplotlib backend for Jupyter" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3013,6 +3231,7 @@ traitlets = "*" name = "mdurl" version = "0.1.2" description = "Markdown URL utilities" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3024,6 +3243,7 @@ files = [ name = "mistune" version = "3.0.2" description = "A sane and fast Markdown parser with useful plugins and renderers" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3033,194 +3253,211 @@ files = [ [[package]] name = "msgpack" -version = "1.0.8" +version = "1.1.0" description = "MessagePack serializer" +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "msgpack-1.0.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:505fe3d03856ac7d215dbe005414bc28505d26f0c128906037e66d98c4e95868"}, - {file = "msgpack-1.0.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e6b7842518a63a9f17107eb176320960ec095a8ee3b4420b5f688e24bf50c53c"}, - {file = "msgpack-1.0.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:376081f471a2ef24828b83a641a02c575d6103a3ad7fd7dade5486cad10ea659"}, - {file = "msgpack-1.0.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e390971d082dba073c05dbd56322427d3280b7cc8b53484c9377adfbae67dc2"}, - {file = "msgpack-1.0.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e073efcba9ea99db5acef3959efa45b52bc67b61b00823d2a1a6944bf45982"}, - {file = "msgpack-1.0.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82d92c773fbc6942a7a8b520d22c11cfc8fd83bba86116bfcf962c2f5c2ecdaa"}, - {file = "msgpack-1.0.8-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9ee32dcb8e531adae1f1ca568822e9b3a738369b3b686d1477cbc643c4a9c128"}, - {file = "msgpack-1.0.8-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e3aa7e51d738e0ec0afbed661261513b38b3014754c9459508399baf14ae0c9d"}, - {file = "msgpack-1.0.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:69284049d07fce531c17404fcba2bb1df472bc2dcdac642ae71a2d079d950653"}, - {file = "msgpack-1.0.8-cp310-cp310-win32.whl", hash = "sha256:13577ec9e247f8741c84d06b9ece5f654920d8365a4b636ce0e44f15e07ec693"}, - {file = "msgpack-1.0.8-cp310-cp310-win_amd64.whl", hash = "sha256:e532dbd6ddfe13946de050d7474e3f5fb6ec774fbb1a188aaf469b08cf04189a"}, - {file = "msgpack-1.0.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9517004e21664f2b5a5fd6333b0731b9cf0817403a941b393d89a2f1dc2bd836"}, - {file = "msgpack-1.0.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d16a786905034e7e34098634b184a7d81f91d4c3d246edc6bd7aefb2fd8ea6ad"}, - {file = "msgpack-1.0.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e2872993e209f7ed04d963e4b4fbae72d034844ec66bc4ca403329db2074377b"}, - {file = "msgpack-1.0.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c330eace3dd100bdb54b5653b966de7f51c26ec4a7d4e87132d9b4f738220ba"}, - {file = "msgpack-1.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83b5c044f3eff2a6534768ccfd50425939e7a8b5cf9a7261c385de1e20dcfc85"}, - {file = "msgpack-1.0.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1876b0b653a808fcd50123b953af170c535027bf1d053b59790eebb0aeb38950"}, - {file = "msgpack-1.0.8-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:dfe1f0f0ed5785c187144c46a292b8c34c1295c01da12e10ccddfc16def4448a"}, - {file = "msgpack-1.0.8-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3528807cbbb7f315bb81959d5961855e7ba52aa60a3097151cb21956fbc7502b"}, - {file = "msgpack-1.0.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e2f879ab92ce502a1e65fce390eab619774dda6a6ff719718069ac94084098ce"}, - {file = "msgpack-1.0.8-cp311-cp311-win32.whl", hash = "sha256:26ee97a8261e6e35885c2ecd2fd4a6d38252246f94a2aec23665a4e66d066305"}, - {file = "msgpack-1.0.8-cp311-cp311-win_amd64.whl", hash = "sha256:eadb9f826c138e6cf3c49d6f8de88225a3c0ab181a9b4ba792e006e5292d150e"}, - {file = "msgpack-1.0.8-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:114be227f5213ef8b215c22dde19532f5da9652e56e8ce969bf0a26d7c419fee"}, - {file = "msgpack-1.0.8-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d661dc4785affa9d0edfdd1e59ec056a58b3dbb9f196fa43587f3ddac654ac7b"}, - {file = "msgpack-1.0.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d56fd9f1f1cdc8227d7b7918f55091349741904d9520c65f0139a9755952c9e8"}, - {file = "msgpack-1.0.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0726c282d188e204281ebd8de31724b7d749adebc086873a59efb8cf7ae27df3"}, - {file = "msgpack-1.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8db8e423192303ed77cff4dce3a4b88dbfaf43979d280181558af5e2c3c71afc"}, - {file = "msgpack-1.0.8-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:99881222f4a8c2f641f25703963a5cefb076adffd959e0558dc9f803a52d6a58"}, - {file = "msgpack-1.0.8-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b5505774ea2a73a86ea176e8a9a4a7c8bf5d521050f0f6f8426afe798689243f"}, - {file = "msgpack-1.0.8-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:ef254a06bcea461e65ff0373d8a0dd1ed3aa004af48839f002a0c994a6f72d04"}, - {file = "msgpack-1.0.8-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e1dd7839443592d00e96db831eddb4111a2a81a46b028f0facd60a09ebbdd543"}, - {file = "msgpack-1.0.8-cp312-cp312-win32.whl", hash = "sha256:64d0fcd436c5683fdd7c907eeae5e2cbb5eb872fafbc03a43609d7941840995c"}, - {file = "msgpack-1.0.8-cp312-cp312-win_amd64.whl", hash = "sha256:74398a4cf19de42e1498368c36eed45d9528f5fd0155241e82c4082b7e16cffd"}, - {file = "msgpack-1.0.8-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0ceea77719d45c839fd73abcb190b8390412a890df2f83fb8cf49b2a4b5c2f40"}, - {file = "msgpack-1.0.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1ab0bbcd4d1f7b6991ee7c753655b481c50084294218de69365f8f1970d4c151"}, - {file = "msgpack-1.0.8-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1cce488457370ffd1f953846f82323cb6b2ad2190987cd4d70b2713e17268d24"}, - {file = "msgpack-1.0.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3923a1778f7e5ef31865893fdca12a8d7dc03a44b33e2a5f3295416314c09f5d"}, - {file = "msgpack-1.0.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a22e47578b30a3e199ab067a4d43d790249b3c0587d9a771921f86250c8435db"}, - {file = "msgpack-1.0.8-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd739c9251d01e0279ce729e37b39d49a08c0420d3fee7f2a4968c0576678f77"}, - {file = "msgpack-1.0.8-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d3420522057ebab1728b21ad473aa950026d07cb09da41103f8e597dfbfaeb13"}, - {file = "msgpack-1.0.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5845fdf5e5d5b78a49b826fcdc0eb2e2aa7191980e3d2cfd2a30303a74f212e2"}, - {file = "msgpack-1.0.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a0e76621f6e1f908ae52860bdcb58e1ca85231a9b0545e64509c931dd34275a"}, - {file = "msgpack-1.0.8-cp38-cp38-win32.whl", hash = "sha256:374a8e88ddab84b9ada695d255679fb99c53513c0a51778796fcf0944d6c789c"}, - {file = "msgpack-1.0.8-cp38-cp38-win_amd64.whl", hash = "sha256:f3709997b228685fe53e8c433e2df9f0cdb5f4542bd5114ed17ac3c0129b0480"}, - {file = "msgpack-1.0.8-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f51bab98d52739c50c56658cc303f190785f9a2cd97b823357e7aeae54c8f68a"}, - {file = "msgpack-1.0.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:73ee792784d48aa338bba28063e19a27e8d989344f34aad14ea6e1b9bd83f596"}, - {file = "msgpack-1.0.8-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f9904e24646570539a8950400602d66d2b2c492b9010ea7e965025cb71d0c86d"}, - {file = "msgpack-1.0.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e75753aeda0ddc4c28dce4c32ba2f6ec30b1b02f6c0b14e547841ba5b24f753f"}, - {file = "msgpack-1.0.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5dbf059fb4b7c240c873c1245ee112505be27497e90f7c6591261c7d3c3a8228"}, - {file = "msgpack-1.0.8-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4916727e31c28be8beaf11cf117d6f6f188dcc36daae4e851fee88646f5b6b18"}, - {file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7938111ed1358f536daf311be244f34df7bf3cdedb3ed883787aca97778b28d8"}, - {file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:493c5c5e44b06d6c9268ce21b302c9ca055c1fd3484c25ba41d34476c76ee746"}, - {file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fbb160554e319f7b22ecf530a80a3ff496d38e8e07ae763b9e82fadfe96f273"}, - {file = "msgpack-1.0.8-cp39-cp39-win32.whl", hash = "sha256:f9af38a89b6a5c04b7d18c492c8ccf2aee7048aff1ce8437c4683bb5a1df893d"}, - {file = "msgpack-1.0.8-cp39-cp39-win_amd64.whl", hash = "sha256:ed59dd52075f8fc91da6053b12e8c89e37aa043f8986efd89e61fae69dc1b011"}, - {file = "msgpack-1.0.8.tar.gz", hash = "sha256:95c02b0e27e706e48d0e5426d1710ca78e0f0628d6e89d5b5a5b91a5f12274f3"}, + {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7ad442d527a7e358a469faf43fda45aaf4ac3249c8310a82f0ccff9164e5dccd"}, + {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:74bed8f63f8f14d75eec75cf3d04ad581da6b914001b474a5d3cd3372c8cc27d"}, + {file = "msgpack-1.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:914571a2a5b4e7606997e169f64ce53a8b1e06f2cf2c3a7273aa106236d43dd5"}, + {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c921af52214dcbb75e6bdf6a661b23c3e6417f00c603dd2070bccb5c3ef499f5"}, + {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8ce0b22b890be5d252de90d0e0d119f363012027cf256185fc3d474c44b1b9e"}, + {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:73322a6cc57fcee3c0c57c4463d828e9428275fb85a27aa2aa1a92fdc42afd7b"}, + {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e1f3c3d21f7cf67bcf2da8e494d30a75e4cf60041d98b3f79875afb5b96f3a3f"}, + {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:64fc9068d701233effd61b19efb1485587560b66fe57b3e50d29c5d78e7fef68"}, + {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:42f754515e0f683f9c79210a5d1cad631ec3d06cea5172214d2176a42e67e19b"}, + {file = "msgpack-1.1.0-cp310-cp310-win32.whl", hash = "sha256:3df7e6b05571b3814361e8464f9304c42d2196808e0119f55d0d3e62cd5ea044"}, + {file = "msgpack-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:685ec345eefc757a7c8af44a3032734a739f8c45d1b0ac45efc5d8977aa4720f"}, + {file = "msgpack-1.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3d364a55082fb2a7416f6c63ae383fbd903adb5a6cf78c5b96cc6316dc1cedc7"}, + {file = "msgpack-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:79ec007767b9b56860e0372085f8504db5d06bd6a327a335449508bbee9648fa"}, + {file = "msgpack-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6ad622bf7756d5a497d5b6836e7fc3752e2dd6f4c648e24b1803f6048596f701"}, + {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e59bca908d9ca0de3dc8684f21ebf9a690fe47b6be93236eb40b99af28b6ea6"}, + {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e1da8f11a3dd397f0a32c76165cf0c4eb95b31013a94f6ecc0b280c05c91b59"}, + {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:452aff037287acb1d70a804ffd022b21fa2bb7c46bee884dbc864cc9024128a0"}, + {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8da4bf6d54ceed70e8861f833f83ce0814a2b72102e890cbdfe4b34764cdd66e"}, + {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:41c991beebf175faf352fb940bf2af9ad1fb77fd25f38d9142053914947cdbf6"}, + {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a52a1f3a5af7ba1c9ace055b659189f6c669cf3657095b50f9602af3a3ba0fe5"}, + {file = "msgpack-1.1.0-cp311-cp311-win32.whl", hash = "sha256:58638690ebd0a06427c5fe1a227bb6b8b9fdc2bd07701bec13c2335c82131a88"}, + {file = "msgpack-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fd2906780f25c8ed5d7b323379f6138524ba793428db5d0e9d226d3fa6aa1788"}, + {file = "msgpack-1.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d46cf9e3705ea9485687aa4001a76e44748b609d260af21c4ceea7f2212a501d"}, + {file = "msgpack-1.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5dbad74103df937e1325cc4bfeaf57713be0b4f15e1c2da43ccdd836393e2ea2"}, + {file = "msgpack-1.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:58dfc47f8b102da61e8949708b3eafc3504509a5728f8b4ddef84bd9e16ad420"}, + {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4676e5be1b472909b2ee6356ff425ebedf5142427842aa06b4dfd5117d1ca8a2"}, + {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17fb65dd0bec285907f68b15734a993ad3fc94332b5bb21b0435846228de1f39"}, + {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a51abd48c6d8ac89e0cfd4fe177c61481aca2d5e7ba42044fd218cfd8ea9899f"}, + {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2137773500afa5494a61b1208619e3871f75f27b03bcfca7b3a7023284140247"}, + {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:398b713459fea610861c8a7b62a6fec1882759f308ae0795b5413ff6a160cf3c"}, + {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:06f5fd2f6bb2a7914922d935d3b8bb4a7fff3a9a91cfce6d06c13bc42bec975b"}, + {file = "msgpack-1.1.0-cp312-cp312-win32.whl", hash = "sha256:ad33e8400e4ec17ba782f7b9cf868977d867ed784a1f5f2ab46e7ba53b6e1e1b"}, + {file = "msgpack-1.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:115a7af8ee9e8cddc10f87636767857e7e3717b7a2e97379dc2054712693e90f"}, + {file = "msgpack-1.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:071603e2f0771c45ad9bc65719291c568d4edf120b44eb36324dcb02a13bfddf"}, + {file = "msgpack-1.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0f92a83b84e7c0749e3f12821949d79485971f087604178026085f60ce109330"}, + {file = "msgpack-1.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a1964df7b81285d00a84da4e70cb1383f2e665e0f1f2a7027e683956d04b734"}, + {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59caf6a4ed0d164055ccff8fe31eddc0ebc07cf7326a2aaa0dbf7a4001cd823e"}, + {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0907e1a7119b337971a689153665764adc34e89175f9a34793307d9def08e6ca"}, + {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:65553c9b6da8166e819a6aa90ad15288599b340f91d18f60b2061f402b9a4915"}, + {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7a946a8992941fea80ed4beae6bff74ffd7ee129a90b4dd5cf9c476a30e9708d"}, + {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4b51405e36e075193bc051315dbf29168d6141ae2500ba8cd80a522964e31434"}, + {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4c01941fd2ff87c2a934ee6055bda4ed353a7846b8d4f341c428109e9fcde8c"}, + {file = "msgpack-1.1.0-cp313-cp313-win32.whl", hash = "sha256:7c9a35ce2c2573bada929e0b7b3576de647b0defbd25f5139dcdaba0ae35a4cc"}, + {file = "msgpack-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:bce7d9e614a04d0883af0b3d4d501171fbfca038f12c77fa838d9f198147a23f"}, + {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c40ffa9a15d74e05ba1fe2681ea33b9caffd886675412612d93ab17b58ea2fec"}, + {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1ba6136e650898082d9d5a5217d5906d1e138024f836ff48691784bbe1adf96"}, + {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0856a2b7e8dcb874be44fea031d22e5b3a19121be92a1e098f46068a11b0870"}, + {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:471e27a5787a2e3f974ba023f9e265a8c7cfd373632247deb225617e3100a3c7"}, + {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:646afc8102935a388ffc3914b336d22d1c2d6209c773f3eb5dd4d6d3b6f8c1cb"}, + {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:13599f8829cfbe0158f6456374e9eea9f44eee08076291771d8ae93eda56607f"}, + {file = "msgpack-1.1.0-cp38-cp38-win32.whl", hash = "sha256:8a84efb768fb968381e525eeeb3d92857e4985aacc39f3c47ffd00eb4509315b"}, + {file = "msgpack-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:879a7b7b0ad82481c52d3c7eb99bf6f0645dbdec5134a4bddbd16f3506947feb"}, + {file = "msgpack-1.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:53258eeb7a80fc46f62fd59c876957a2d0e15e6449a9e71842b6d24419d88ca1"}, + {file = "msgpack-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7e7b853bbc44fb03fbdba34feb4bd414322180135e2cb5164f20ce1c9795ee48"}, + {file = "msgpack-1.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3e9b4936df53b970513eac1758f3882c88658a220b58dcc1e39606dccaaf01c"}, + {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46c34e99110762a76e3911fc923222472c9d681f1094096ac4102c18319e6468"}, + {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a706d1e74dd3dea05cb54580d9bd8b2880e9264856ce5068027eed09680aa74"}, + {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:534480ee5690ab3cbed89d4c8971a5c631b69a8c0883ecfea96c19118510c846"}, + {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8cf9e8c3a2153934a23ac160cc4cba0ec035f6867c8013cc6077a79823370346"}, + {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3180065ec2abbe13a4ad37688b61b99d7f9e012a535b930e0e683ad6bc30155b"}, + {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c5a91481a3cc573ac8c0d9aace09345d989dc4a0202b7fcb312c88c26d4e71a8"}, + {file = "msgpack-1.1.0-cp39-cp39-win32.whl", hash = "sha256:f80bc7d47f76089633763f952e67f8214cb7b3ee6bfa489b3cb6a84cfac114cd"}, + {file = "msgpack-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:4d1b7ff2d6146e16e8bd665ac726a89c74163ef8cd39fa8c1087d4e52d3a2325"}, + {file = "msgpack-1.1.0.tar.gz", hash = "sha256:dd432ccc2c72b914e4cb77afce64aab761c1137cc698be3984eee260bcb2896e"}, ] [[package]] name = "multidict" -version = "6.0.5" +version = "6.1.0" description = "multidict implementation" +category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:228b644ae063c10e7f324ab1ab6b548bdf6f8b47f3ec234fef1093bc2735e5f9"}, - {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:896ebdcf62683551312c30e20614305f53125750803b614e9e6ce74a96232604"}, - {file = "multidict-6.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:411bf8515f3be9813d06004cac41ccf7d1cd46dfe233705933dd163b60e37600"}, - {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d147090048129ce3c453f0292e7697d333db95e52616b3793922945804a433c"}, - {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:215ed703caf15f578dca76ee6f6b21b7603791ae090fbf1ef9d865571039ade5"}, - {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c6390cf87ff6234643428991b7359b5f59cc15155695deb4eda5c777d2b880f"}, - {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21fd81c4ebdb4f214161be351eb5bcf385426bf023041da2fd9e60681f3cebae"}, - {file = "multidict-6.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3cc2ad10255f903656017363cd59436f2111443a76f996584d1077e43ee51182"}, - {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6939c95381e003f54cd4c5516740faba40cf5ad3eeff460c3ad1d3e0ea2549bf"}, - {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:220dd781e3f7af2c2c1053da9fa96d9cf3072ca58f057f4c5adaaa1cab8fc442"}, - {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:766c8f7511df26d9f11cd3a8be623e59cca73d44643abab3f8c8c07620524e4a"}, - {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:fe5d7785250541f7f5019ab9cba2c71169dc7d74d0f45253f8313f436458a4ef"}, - {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c1c1496e73051918fcd4f58ff2e0f2f3066d1c76a0c6aeffd9b45d53243702cc"}, - {file = "multidict-6.0.5-cp310-cp310-win32.whl", hash = "sha256:7afcdd1fc07befad18ec4523a782cde4e93e0a2bf71239894b8d61ee578c1319"}, - {file = "multidict-6.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:99f60d34c048c5c2fabc766108c103612344c46e35d4ed9ae0673d33c8fb26e8"}, - {file = "multidict-6.0.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f285e862d2f153a70586579c15c44656f888806ed0e5b56b64489afe4a2dbfba"}, - {file = "multidict-6.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:53689bb4e102200a4fafa9de9c7c3c212ab40a7ab2c8e474491914d2305f187e"}, - {file = "multidict-6.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:612d1156111ae11d14afaf3a0669ebf6c170dbb735e510a7438ffe2369a847fd"}, - {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7be7047bd08accdb7487737631d25735c9a04327911de89ff1b26b81745bd4e3"}, - {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de170c7b4fe6859beb8926e84f7d7d6c693dfe8e27372ce3b76f01c46e489fcf"}, - {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04bde7a7b3de05732a4eb39c94574db1ec99abb56162d6c520ad26f83267de29"}, - {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85f67aed7bb647f93e7520633d8f51d3cbc6ab96957c71272b286b2f30dc70ed"}, - {file = "multidict-6.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425bf820055005bfc8aa9a0b99ccb52cc2f4070153e34b701acc98d201693733"}, - {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d3eb1ceec286eba8220c26f3b0096cf189aea7057b6e7b7a2e60ed36b373b77f"}, - {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7901c05ead4b3fb75113fb1dd33eb1253c6d3ee37ce93305acd9d38e0b5f21a4"}, - {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e0e79d91e71b9867c73323a3444724d496c037e578a0e1755ae159ba14f4f3d1"}, - {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:29bfeb0dff5cb5fdab2023a7a9947b3b4af63e9c47cae2a10ad58394b517fddc"}, - {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e030047e85cbcedbfc073f71836d62dd5dadfbe7531cae27789ff66bc551bd5e"}, - {file = "multidict-6.0.5-cp311-cp311-win32.whl", hash = "sha256:2f4848aa3baa109e6ab81fe2006c77ed4d3cd1e0ac2c1fbddb7b1277c168788c"}, - {file = "multidict-6.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:2faa5ae9376faba05f630d7e5e6be05be22913782b927b19d12b8145968a85ea"}, - {file = "multidict-6.0.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:51d035609b86722963404f711db441cf7134f1889107fb171a970c9701f92e1e"}, - {file = "multidict-6.0.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cbebcd5bcaf1eaf302617c114aa67569dd3f090dd0ce8ba9e35e9985b41ac35b"}, - {file = "multidict-6.0.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2ffc42c922dbfddb4a4c3b438eb056828719f07608af27d163191cb3e3aa6cc5"}, - {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ceb3b7e6a0135e092de86110c5a74e46bda4bd4fbfeeb3a3bcec79c0f861e450"}, - {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:79660376075cfd4b2c80f295528aa6beb2058fd289f4c9252f986751a4cd0496"}, - {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e4428b29611e989719874670fd152b6625500ad6c686d464e99f5aaeeaca175a"}, - {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d84a5c3a5f7ce6db1f999fb9438f686bc2e09d38143f2d93d8406ed2dd6b9226"}, - {file = "multidict-6.0.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:76c0de87358b192de7ea9649beb392f107dcad9ad27276324c24c91774ca5271"}, - {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:79a6d2ba910adb2cbafc95dad936f8b9386e77c84c35bc0add315b856d7c3abb"}, - {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:92d16a3e275e38293623ebf639c471d3e03bb20b8ebb845237e0d3664914caef"}, - {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:fb616be3538599e797a2017cccca78e354c767165e8858ab5116813146041a24"}, - {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:14c2976aa9038c2629efa2c148022ed5eb4cb939e15ec7aace7ca932f48f9ba6"}, - {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:435a0984199d81ca178b9ae2c26ec3d49692d20ee29bc4c11a2a8d4514c67eda"}, - {file = "multidict-6.0.5-cp312-cp312-win32.whl", hash = "sha256:9fe7b0653ba3d9d65cbe7698cca585bf0f8c83dbbcc710db9c90f478e175f2d5"}, - {file = "multidict-6.0.5-cp312-cp312-win_amd64.whl", hash = "sha256:01265f5e40f5a17f8241d52656ed27192be03bfa8764d88e8220141d1e4b3556"}, - {file = "multidict-6.0.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:19fe01cea168585ba0f678cad6f58133db2aa14eccaf22f88e4a6dccadfad8b3"}, - {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6bf7a982604375a8d49b6cc1b781c1747f243d91b81035a9b43a2126c04766f5"}, - {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:107c0cdefe028703fb5dafe640a409cb146d44a6ae201e55b35a4af8e95457dd"}, - {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:403c0911cd5d5791605808b942c88a8155c2592e05332d2bf78f18697a5fa15e"}, - {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aeaf541ddbad8311a87dd695ed9642401131ea39ad7bc8cf3ef3967fd093b626"}, - {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e4972624066095e52b569e02b5ca97dbd7a7ddd4294bf4e7247d52635630dd83"}, - {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d946b0a9eb8aaa590df1fe082cee553ceab173e6cb5b03239716338629c50c7a"}, - {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b55358304d7a73d7bdf5de62494aaf70bd33015831ffd98bc498b433dfe5b10c"}, - {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:a3145cb08d8625b2d3fee1b2d596a8766352979c9bffe5d7833e0503d0f0b5e5"}, - {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:d65f25da8e248202bd47445cec78e0025c0fe7582b23ec69c3b27a640dd7a8e3"}, - {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c9bf56195c6bbd293340ea82eafd0071cb3d450c703d2c93afb89f93b8386ccc"}, - {file = "multidict-6.0.5-cp37-cp37m-win32.whl", hash = "sha256:69db76c09796b313331bb7048229e3bee7928eb62bab5e071e9f7fcc4879caee"}, - {file = "multidict-6.0.5-cp37-cp37m-win_amd64.whl", hash = "sha256:fce28b3c8a81b6b36dfac9feb1de115bab619b3c13905b419ec71d03a3fc1423"}, - {file = "multidict-6.0.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:76f067f5121dcecf0d63a67f29080b26c43c71a98b10c701b0677e4a065fbd54"}, - {file = "multidict-6.0.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b82cc8ace10ab5bd93235dfaab2021c70637005e1ac787031f4d1da63d493c1d"}, - {file = "multidict-6.0.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5cb241881eefd96b46f89b1a056187ea8e9ba14ab88ba632e68d7a2ecb7aadf7"}, - {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8e94e6912639a02ce173341ff62cc1201232ab86b8a8fcc05572741a5dc7d93"}, - {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09a892e4a9fb47331da06948690ae38eaa2426de97b4ccbfafbdcbe5c8f37ff8"}, - {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55205d03e8a598cfc688c71ca8ea5f66447164efff8869517f175ea632c7cb7b"}, - {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37b15024f864916b4951adb95d3a80c9431299080341ab9544ed148091b53f50"}, - {file = "multidict-6.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2a1dee728b52b33eebff5072817176c172050d44d67befd681609b4746e1c2e"}, - {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:edd08e6f2f1a390bf137080507e44ccc086353c8e98c657e666c017718561b89"}, - {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:60d698e8179a42ec85172d12f50b1668254628425a6bd611aba022257cac1386"}, - {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:3d25f19500588cbc47dc19081d78131c32637c25804df8414463ec908631e453"}, - {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:4cc0ef8b962ac7a5e62b9e826bd0cd5040e7d401bc45a6835910ed699037a461"}, - {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:eca2e9d0cc5a889850e9bbd68e98314ada174ff6ccd1129500103df7a94a7a44"}, - {file = "multidict-6.0.5-cp38-cp38-win32.whl", hash = "sha256:4a6a4f196f08c58c59e0b8ef8ec441d12aee4125a7d4f4fef000ccb22f8d7241"}, - {file = "multidict-6.0.5-cp38-cp38-win_amd64.whl", hash = "sha256:0275e35209c27a3f7951e1ce7aaf93ce0d163b28948444bec61dd7badc6d3f8c"}, - {file = "multidict-6.0.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e7be68734bd8c9a513f2b0cfd508802d6609da068f40dc57d4e3494cefc92929"}, - {file = "multidict-6.0.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1d9ea7a7e779d7a3561aade7d596649fbecfa5c08a7674b11b423783217933f9"}, - {file = "multidict-6.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ea1456df2a27c73ce51120fa2f519f1bea2f4a03a917f4a43c8707cf4cbbae1a"}, - {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf590b134eb70629e350691ecca88eac3e3b8b3c86992042fb82e3cb1830d5e1"}, - {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5c0631926c4f58e9a5ccce555ad7747d9a9f8b10619621f22f9635f069f6233e"}, - {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dce1c6912ab9ff5f179eaf6efe7365c1f425ed690b03341911bf4939ef2f3046"}, - {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0868d64af83169e4d4152ec612637a543f7a336e4a307b119e98042e852ad9c"}, - {file = "multidict-6.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:141b43360bfd3bdd75f15ed811850763555a251e38b2405967f8e25fb43f7d40"}, - {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7df704ca8cf4a073334e0427ae2345323613e4df18cc224f647f251e5e75a527"}, - {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6214c5a5571802c33f80e6c84713b2c79e024995b9c5897f794b43e714daeec9"}, - {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:cd6c8fca38178e12c00418de737aef1261576bd1b6e8c6134d3e729a4e858b38"}, - {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:e02021f87a5b6932fa6ce916ca004c4d441509d33bbdbeca70d05dff5e9d2479"}, - {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ebd8d160f91a764652d3e51ce0d2956b38efe37c9231cd82cfc0bed2e40b581c"}, - {file = "multidict-6.0.5-cp39-cp39-win32.whl", hash = "sha256:04da1bb8c8dbadf2a18a452639771951c662c5ad03aefe4884775454be322c9b"}, - {file = "multidict-6.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:d6f6d4f185481c9669b9447bf9d9cf3b95a0e9df9d169bbc17e363b7d5487755"}, - {file = "multidict-6.0.5-py3-none-any.whl", hash = "sha256:0d63c74e3d7ab26de115c49bffc92cc77ed23395303d496eae515d4204a625e7"}, - {file = "multidict-6.0.5.tar.gz", hash = "sha256:f7e301075edaf50500f0b341543c41194d8df3ae5caf4702f2095f3ca73dd8da"}, + {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60"}, + {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1"}, + {file = "multidict-6.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a114d03b938376557927ab23f1e950827c3b893ccb94b62fd95d430fd0e5cf53"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1c416351ee6271b2f49b56ad7f308072f6f44b37118d69c2cad94f3fa8a40d5"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b5d83030255983181005e6cfbac1617ce9746b219bc2aad52201ad121226581"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e97b5e938051226dc025ec80980c285b053ffb1e25a3db2a3aa3bc046bf7f56"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d618649d4e70ac6efcbba75be98b26ef5078faad23592f9b51ca492953012429"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10524ebd769727ac77ef2278390fb0068d83f3acb7773792a5080f2b0abf7748"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ff3827aef427c89a25cc96ded1759271a93603aba9fb977a6d264648ebf989db"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:06809f4f0f7ab7ea2cabf9caca7d79c22c0758b58a71f9d32943ae13c7ace056"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f179dee3b863ab1c59580ff60f9d99f632f34ccb38bf67a33ec6b3ecadd0fd76"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:aaed8b0562be4a0876ee3b6946f6869b7bcdb571a5d1496683505944e268b160"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3c8b88a2ccf5493b6c8da9076fb151ba106960a2df90c2633f342f120751a9e7"}, + {file = "multidict-6.1.0-cp310-cp310-win32.whl", hash = "sha256:4a9cb68166a34117d6646c0023c7b759bf197bee5ad4272f420a0141d7eb03a0"}, + {file = "multidict-6.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:20b9b5fbe0b88d0bdef2012ef7dee867f874b72528cf1d08f1d59b0e3850129d"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3efe2c2cb5763f2f1b275ad2bf7a287d3f7ebbef35648a9726e3b69284a4f3d6"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7053d3b0353a8b9de430a4f4b4268ac9a4fb3481af37dfe49825bf45ca24156"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27e5fc84ccef8dfaabb09d82b7d179c7cf1a3fbc8a966f8274fcb4ab2eb4cadb"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e2b90b43e696f25c62656389d32236e049568b39320e2735d51f08fd362761b"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d83a047959d38a7ff552ff94be767b7fd79b831ad1cd9920662db05fec24fe72"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1a9dd711d0877a1ece3d2e4fea11a8e75741ca21954c919406b44e7cf971304"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec2abea24d98246b94913b76a125e855eb5c434f7c46546046372fe60f666351"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4867cafcbc6585e4b678876c489b9273b13e9fff9f6d6d66add5e15d11d926cb"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b48204e8d955c47c55b72779802b219a39acc3ee3d0116d5080c388970b76e3"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8fff389528cad1618fb4b26b95550327495462cd745d879a8c7c2115248e399"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a7a9541cd308eed5e30318430a9c74d2132e9a8cb46b901326272d780bf2d423"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:da1758c76f50c39a2efd5e9859ce7d776317eb1dd34317c8152ac9251fc574a3"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c943a53e9186688b45b323602298ab727d8865d8c9ee0b17f8d62d14b56f0753"}, + {file = "multidict-6.1.0-cp311-cp311-win32.whl", hash = "sha256:90f8717cb649eea3504091e640a1b8568faad18bd4b9fcd692853a04475a4b80"}, + {file = "multidict-6.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:82176036e65644a6cc5bd619f65f6f19781e8ec2e5330f51aa9ada7504cc1926"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b04772ed465fa3cc947db808fa306d79b43e896beb677a56fb2347ca1a49c1fa"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6180c0ae073bddeb5a97a38c03f30c233e0a4d39cd86166251617d1bbd0af436"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:071120490b47aa997cca00666923a83f02c7fbb44f71cf7f136df753f7fa8761"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50b3a2710631848991d0bf7de077502e8994c804bb805aeb2925a981de58ec2e"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b58c621844d55e71c1b7f7c498ce5aa6985d743a1a59034c57a905b3f153c1ef"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b6d90641869892caa9ca42ff913f7ff1c5ece06474fbd32fb2cf6834726c95"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b820514bfc0b98a30e3d85462084779900347e4d49267f747ff54060cc33925"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10a9b09aba0c5b48c53761b7c720aaaf7cf236d5fe394cd399c7ba662d5f9966"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e16bf3e5fc9f44632affb159d30a437bfe286ce9e02754759be5536b169b305"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76f364861c3bfc98cbbcbd402d83454ed9e01a5224bb3a28bf70002a230f73e2"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:820c661588bd01a0aa62a1283f20d2be4281b086f80dad9e955e690c75fb54a2"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0e5f362e895bc5b9e67fe6e4ded2492d8124bdf817827f33c5b46c2fe3ffaca6"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ec660d19bbc671e3a6443325f07263be452c453ac9e512f5eb935e7d4ac28b3"}, + {file = "multidict-6.1.0-cp312-cp312-win32.whl", hash = "sha256:58130ecf8f7b8112cdb841486404f1282b9c86ccb30d3519faf301b2e5659133"}, + {file = "multidict-6.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:188215fc0aafb8e03341995e7c4797860181562380f81ed0a87ff455b70bf1f1"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d569388c381b24671589335a3be6e1d45546c2988c2ebe30fdcada8457a31008"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:052e10d2d37810b99cc170b785945421141bf7bb7d2f8799d431e7db229c385f"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f90c822a402cb865e396a504f9fc8173ef34212a342d92e362ca498cad308e28"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b225d95519a5bf73860323e633a664b0d85ad3d5bede6d30d95b35d4dfe8805b"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23bfd518810af7de1116313ebd9092cb9aa629beb12f6ed631ad53356ed6b86c"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c09fcfdccdd0b57867577b719c69e347a436b86cd83747f179dbf0cc0d4c1f3"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf6bea52ec97e95560af5ae576bdac3aa3aae0b6758c6efa115236d9e07dae44"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57feec87371dbb3520da6192213c7d6fc892d5589a93db548331954de8248fd2"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0c3f390dc53279cbc8ba976e5f8035eab997829066756d811616b652b00a23a3"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:59bfeae4b25ec05b34f1956eaa1cb38032282cd4dfabc5056d0a1ec4d696d3aa"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f59caeaf7632cc633b5cf6fc449372b83bbdf0da4ae04d5be36118e46cc0aa"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:37bb93b2178e02b7b618893990941900fd25b6b9ac0fa49931a40aecdf083fe4"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4e9f48f58c2c523d5a06faea47866cd35b32655c46b443f163d08c6d0ddb17d6"}, + {file = "multidict-6.1.0-cp313-cp313-win32.whl", hash = "sha256:3a37ffb35399029b45c6cc33640a92bef403c9fd388acce75cdc88f58bd19a81"}, + {file = "multidict-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e9aa71e15d9d9beaad2c6b9319edcdc0a49a43ef5c0a4c8265ca9ee7d6c67774"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:db7457bac39421addd0c8449933ac32d8042aae84a14911a757ae6ca3eef1392"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d094ddec350a2fb899fec68d8353c78233debde9b7d8b4beeafa70825f1c281a"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5845c1fd4866bb5dd3125d89b90e57ed3138241540897de748cdf19de8a2fca2"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9079dfc6a70abe341f521f78405b8949f96db48da98aeb43f9907f342f627cdc"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3914f5aaa0f36d5d60e8ece6a308ee1c9784cd75ec8151062614657a114c4478"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c08be4f460903e5a9d0f76818db3250f12e9c344e79314d1d570fc69d7f4eae4"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d093be959277cb7dee84b801eb1af388b6ad3ca6a6b6bf1ed7585895789d027d"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3702ea6872c5a2a4eeefa6ffd36b042e9773f05b1f37ae3ef7264b1163c2dcf6"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2090f6a85cafc5b2db085124d752757c9d251548cedabe9bd31afe6363e0aff2"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:f67f217af4b1ff66c68a87318012de788dd95fcfeb24cc889011f4e1c7454dfd"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:189f652a87e876098bbc67b4da1049afb5f5dfbaa310dd67c594b01c10388db6"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:6bb5992037f7a9eff7991ebe4273ea7f51f1c1c511e6a2ce511d0e7bdb754492"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f4c2b9e770c4e393876e35a7046879d195cd123b4f116d299d442b335bcd"}, + {file = "multidict-6.1.0-cp38-cp38-win32.whl", hash = "sha256:e27bbb6d14416713a8bd7aaa1313c0fc8d44ee48d74497a0ff4c3a1b6ccb5167"}, + {file = "multidict-6.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:22f3105d4fb15c8f57ff3959a58fcab6ce36814486500cd7485651230ad4d4ef"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4e18b656c5e844539d506a0a06432274d7bd52a7487e6828c63a63d69185626c"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a185f876e69897a6f3325c3f19f26a297fa058c5e456bfcff8015e9a27e83ae1"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab7c4ceb38d91570a650dba194e1ca87c2b543488fe9309b4212694174fd539c"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e617fb6b0b6953fffd762669610c1c4ffd05632c138d61ac7e14ad187870669c"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16e5f4bf4e603eb1fdd5d8180f1a25f30056f22e55ce51fb3d6ad4ab29f7d96f"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c035da3f544b1882bac24115f3e2e8760f10a0107614fc9839fd232200b875"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:957cf8e4b6e123a9eea554fa7ebc85674674b713551de587eb318a2df3e00255"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:483a6aea59cb89904e1ceabd2b47368b5600fb7de78a6e4a2c2987b2d256cf30"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:87701f25a2352e5bf7454caa64757642734da9f6b11384c1f9d1a8e699758057"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:682b987361e5fd7a139ed565e30d81fd81e9629acc7d925a205366877d8c8657"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce2186a7df133a9c895dea3331ddc5ddad42cdd0d1ea2f0a51e5d161e4762f28"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9f636b730f7e8cb19feb87094949ba54ee5357440b9658b2a32a5ce4bce53972"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:73eae06aa53af2ea5270cc066dcaf02cc60d2994bbb2c4ef5764949257d10f43"}, + {file = "multidict-6.1.0-cp39-cp39-win32.whl", hash = "sha256:1ca0083e80e791cffc6efce7660ad24af66c8d4079d2a750b29001b53ff59ada"}, + {file = "multidict-6.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa466da5b15ccea564bdab9c89175c762bc12825f4659c11227f515cee76fa4a"}, + {file = "multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506"}, + {file = "multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a"}, ] +[package.dependencies] +typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} + [[package]] name = "nbclient" -version = "0.10.0" +version = "0.10.1" description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." +category = "dev" optional = false python-versions = ">=3.8.0" files = [ - {file = "nbclient-0.10.0-py3-none-any.whl", hash = "sha256:f13e3529332a1f1f81d82a53210322476a168bb7090a0289c795fe9cc11c9d3f"}, - {file = "nbclient-0.10.0.tar.gz", hash = "sha256:4b3f1b7dba531e498449c4db4f53da339c91d449dc11e9af3a43b4eb5c5abb09"}, + {file = "nbclient-0.10.1-py3-none-any.whl", hash = "sha256:949019b9240d66897e442888cfb618f69ef23dc71c01cb5fced8499c2cfc084d"}, + {file = "nbclient-0.10.1.tar.gz", hash = "sha256:3e93e348ab27e712acd46fccd809139e356eb9a31aab641d1a7991a6eb4e6f68"}, ] [package.dependencies] jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" nbformat = ">=5.1" traitlets = ">=5.4" [package.extras] dev = ["pre-commit"] -docs = ["autodoc-traits", "mock", "moto", "myst-parser", "nbclient[test]", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling"] +docs = ["autodoc-traits", "flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "mock", "moto", "myst-parser", "nbconvert (>=7.0.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling", "testpath", "xmltodict"] test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] [[package]] name = "nbconvert" version = "7.16.4" description = "Converting Jupyter Notebooks (.ipynb files) to other formats. Output formats include asciidoc, html, latex, markdown, pdf, py, rst, script. nbconvert can be used both as a Python library (`import nbconvert`) or as a command line tool (invoked as `jupyter nbconvert ...`)." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3258,6 +3495,7 @@ webpdf = ["playwright"] name = "nbformat" version = "5.10.4" description = "The Jupyter Notebook format" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3268,7 +3506,7 @@ files = [ [package.dependencies] fastjsonschema = ">=2.15" jsonschema = ">=2.6" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" traitlets = ">=5.1" [package.extras] @@ -3279,6 +3517,7 @@ test = ["pep440", "pre-commit", "pytest", "testpath"] name = "nest-asyncio" version = "1.6.0" description = "Patch asyncio to allow nested event loops" +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -3290,6 +3529,7 @@ files = [ name = "netcdf4" version = "1.6.5" description = "Provides an object-oriented python interface to the netCDF version 4 library" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3332,19 +3572,21 @@ tests = ["Cython", "packaging", "pytest"] [[package]] name = "nodeenv" -version = "1.9.0" +version = "1.9.1" description = "Node.js virtual environment builder" +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ - {file = "nodeenv-1.9.0-py2.py3-none-any.whl", hash = "sha256:508ecec98f9f3330b636d4448c0f1a56fc68017c68f1e7857ebc52acf0eb879a"}, - {file = "nodeenv-1.9.0.tar.gz", hash = "sha256:07f144e90dae547bf0d4ee8da0ee42664a42a04e02ed68e06324348dafe4bdb1"}, + {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, + {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, ] [[package]] name = "notebook-shim" version = "0.2.4" description = "A shim layer for notebook traits and config" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3360,53 +3602,74 @@ test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync" [[package]] name = "numpy" -version = "1.26.4" +version = "2.2.0" description = "Fundamental package for array computing in Python" +category = "main" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" files = [ - {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, - {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, - {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, - {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, - {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, - {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, - {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, - {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, - {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, - {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, - {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, - {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, - {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, - {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, - {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, - {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, - {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, + {file = "numpy-2.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1e25507d85da11ff5066269d0bd25d06e0a0f2e908415534f3e603d2a78e4ffa"}, + {file = "numpy-2.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a62eb442011776e4036af5c8b1a00b706c5bc02dc15eb5344b0c750428c94219"}, + {file = "numpy-2.2.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:b606b1aaf802e6468c2608c65ff7ece53eae1a6874b3765f69b8ceb20c5fa78e"}, + {file = "numpy-2.2.0-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:36b2b43146f646642b425dd2027730f99bac962618ec2052932157e213a040e9"}, + {file = "numpy-2.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7fe8f3583e0607ad4e43a954e35c1748b553bfe9fdac8635c02058023277d1b3"}, + {file = "numpy-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:122fd2fcfafdefc889c64ad99c228d5a1f9692c3a83f56c292618a59aa60ae83"}, + {file = "numpy-2.2.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3f2f5cddeaa4424a0a118924b988746db6ffa8565e5829b1841a8a3bd73eb59a"}, + {file = "numpy-2.2.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7fe4bb0695fe986a9e4deec3b6857003b4cfe5c5e4aac0b95f6a658c14635e31"}, + {file = "numpy-2.2.0-cp310-cp310-win32.whl", hash = "sha256:b30042fe92dbd79f1ba7f6898fada10bdaad1847c44f2dff9a16147e00a93661"}, + {file = "numpy-2.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:54dc1d6d66f8d37843ed281773c7174f03bf7ad826523f73435deb88ba60d2d4"}, + {file = "numpy-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9874bc2ff574c40ab7a5cbb7464bf9b045d617e36754a7bc93f933d52bd9ffc6"}, + {file = "numpy-2.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0da8495970f6b101ddd0c38ace92edea30e7e12b9a926b57f5fabb1ecc25bb90"}, + {file = "numpy-2.2.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:0557eebc699c1c34cccdd8c3778c9294e8196df27d713706895edc6f57d29608"}, + {file = "numpy-2.2.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:3579eaeb5e07f3ded59298ce22b65f877a86ba8e9fe701f5576c99bb17c283da"}, + {file = "numpy-2.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40deb10198bbaa531509aad0cd2f9fadb26c8b94070831e2208e7df543562b74"}, + {file = "numpy-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c2aed8fcf8abc3020d6a9ccb31dbc9e7d7819c56a348cc88fd44be269b37427e"}, + {file = "numpy-2.2.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a222d764352c773aa5ebde02dd84dba3279c81c6db2e482d62a3fa54e5ece69b"}, + {file = "numpy-2.2.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4e58666988605e251d42c2818c7d3d8991555381be26399303053b58a5bbf30d"}, + {file = "numpy-2.2.0-cp311-cp311-win32.whl", hash = "sha256:4723a50e1523e1de4fccd1b9a6dcea750c2102461e9a02b2ac55ffeae09a4410"}, + {file = "numpy-2.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:16757cf28621e43e252c560d25b15f18a2f11da94fea344bf26c599b9cf54b73"}, + {file = "numpy-2.2.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cff210198bb4cae3f3c100444c5eaa573a823f05c253e7188e1362a5555235b3"}, + {file = "numpy-2.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:58b92a5828bd4d9aa0952492b7de803135038de47343b2aa3cc23f3b71a3dc4e"}, + {file = "numpy-2.2.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:ebe5e59545401fbb1b24da76f006ab19734ae71e703cdb4a8b347e84a0cece67"}, + {file = "numpy-2.2.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:e2b8cd48a9942ed3f85b95ca4105c45758438c7ed28fff1e4ce3e57c3b589d8e"}, + {file = "numpy-2.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57fcc997ffc0bef234b8875a54d4058afa92b0b0c4223fc1f62f24b3b5e86038"}, + {file = "numpy-2.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85ad7d11b309bd132d74397fcf2920933c9d1dc865487128f5c03d580f2c3d03"}, + {file = "numpy-2.2.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cb24cca1968b21355cc6f3da1a20cd1cebd8a023e3c5b09b432444617949085a"}, + {file = "numpy-2.2.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0798b138c291d792f8ea40fe3768610f3c7dd2574389e37c3f26573757c8f7ef"}, + {file = "numpy-2.2.0-cp312-cp312-win32.whl", hash = "sha256:afe8fb968743d40435c3827632fd36c5fbde633b0423da7692e426529b1759b1"}, + {file = "numpy-2.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:3a4199f519e57d517ebd48cb76b36c82da0360781c6a0353e64c0cac30ecaad3"}, + {file = "numpy-2.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f8c8b141ef9699ae777c6278b52c706b653bf15d135d302754f6b2e90eb30367"}, + {file = "numpy-2.2.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0f0986e917aca18f7a567b812ef7ca9391288e2acb7a4308aa9d265bd724bdae"}, + {file = "numpy-2.2.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:1c92113619f7b272838b8d6702a7f8ebe5edea0df48166c47929611d0b4dea69"}, + {file = "numpy-2.2.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:5a145e956b374e72ad1dff82779177d4a3c62bc8248f41b80cb5122e68f22d13"}, + {file = "numpy-2.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18142b497d70a34b01642b9feabb70156311b326fdddd875a9981f34a369b671"}, + {file = "numpy-2.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7d41d1612c1a82b64697e894b75db6758d4f21c3ec069d841e60ebe54b5b571"}, + {file = "numpy-2.2.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a98f6f20465e7618c83252c02041517bd2f7ea29be5378f09667a8f654a5918d"}, + {file = "numpy-2.2.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e09d40edfdb4e260cb1567d8ae770ccf3b8b7e9f0d9b5c2a9992696b30ce2742"}, + {file = "numpy-2.2.0-cp313-cp313-win32.whl", hash = "sha256:3905a5fffcc23e597ee4d9fb3fcd209bd658c352657548db7316e810ca80458e"}, + {file = "numpy-2.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:a184288538e6ad699cbe6b24859206e38ce5fba28f3bcfa51c90d0502c1582b2"}, + {file = "numpy-2.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7832f9e8eb00be32f15fdfb9a981d6955ea9adc8574c521d48710171b6c55e95"}, + {file = "numpy-2.2.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f0dd071b95bbca244f4cb7f70b77d2ff3aaaba7fa16dc41f58d14854a6204e6c"}, + {file = "numpy-2.2.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:b0b227dcff8cdc3efbce66d4e50891f04d0a387cce282fe1e66199146a6a8fca"}, + {file = "numpy-2.2.0-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:6ab153263a7c5ccaf6dfe7e53447b74f77789f28ecb278c3b5d49db7ece10d6d"}, + {file = "numpy-2.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e500aba968a48e9019e42c0c199b7ec0696a97fa69037bea163b55398e390529"}, + {file = "numpy-2.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:440cfb3db4c5029775803794f8638fbdbf71ec702caf32735f53b008e1eaece3"}, + {file = "numpy-2.2.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a55dc7a7f0b6198b07ec0cd445fbb98b05234e8b00c5ac4874a63372ba98d4ab"}, + {file = "numpy-2.2.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4bddbaa30d78c86329b26bd6aaaea06b1e47444da99eddac7bf1e2fab717bd72"}, + {file = "numpy-2.2.0-cp313-cp313t-win32.whl", hash = "sha256:30bf971c12e4365153afb31fc73f441d4da157153f3400b82db32d04de1e4066"}, + {file = "numpy-2.2.0-cp313-cp313t-win_amd64.whl", hash = "sha256:d35717333b39d1b6bb8433fa758a55f1081543de527171543a2b710551d40881"}, + {file = "numpy-2.2.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e12c6c1ce84628c52d6367863773f7c8c8241be554e8b79686e91a43f1733773"}, + {file = "numpy-2.2.0-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:b6207dc8fb3c8cb5668e885cef9ec7f70189bec4e276f0ff70d5aa078d32c88e"}, + {file = "numpy-2.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a50aeff71d0f97b6450d33940c7181b08be1441c6c193e678211bff11aa725e7"}, + {file = "numpy-2.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:df12a1f99b99f569a7c2ae59aa2d31724e8d835fc7f33e14f4792e3071d11221"}, + {file = "numpy-2.2.0.tar.gz", hash = "sha256:140dd80ff8981a583a60980be1a655068f8adebf7a45a06a6858c873fcdcd4a0"}, ] [[package]] name = "oauthlib" version = "3.2.2" description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3419,72 +3682,112 @@ rsa = ["cryptography (>=3.0.0)"] signals = ["blinker (>=1.4.0)"] signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"] +[[package]] +name = "opentelemetry-api" +version = "1.29.0" +description = "OpenTelemetry Python API" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "opentelemetry_api-1.29.0-py3-none-any.whl", hash = "sha256:5fcd94c4141cc49c736271f3e1efb777bebe9cc535759c54c936cca4f1b312b8"}, + {file = "opentelemetry_api-1.29.0.tar.gz", hash = "sha256:d04a6cf78aad09614f52964ecb38021e248f5714dc32c2e0d8fd99517b4d69cf"}, +] + +[package.dependencies] +deprecated = ">=1.2.6" +importlib-metadata = ">=6.0,<=8.5.0" + [[package]] name = "orjson" -version = "3.10.6" +version = "3.10.12" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "orjson-3.10.6-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:fb0ee33124db6eaa517d00890fc1a55c3bfe1cf78ba4a8899d71a06f2d6ff5c7"}, - {file = "orjson-3.10.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c1c4b53b24a4c06547ce43e5fee6ec4e0d8fe2d597f4647fc033fd205707365"}, - {file = "orjson-3.10.6-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eadc8fd310edb4bdbd333374f2c8fec6794bbbae99b592f448d8214a5e4050c0"}, - {file = "orjson-3.10.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:61272a5aec2b2661f4fa2b37c907ce9701e821b2c1285d5c3ab0207ebd358d38"}, - {file = "orjson-3.10.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57985ee7e91d6214c837936dc1608f40f330a6b88bb13f5a57ce5257807da143"}, - {file = "orjson-3.10.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:633a3b31d9d7c9f02d49c4ab4d0a86065c4a6f6adc297d63d272e043472acab5"}, - {file = "orjson-3.10.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:1c680b269d33ec444afe2bdc647c9eb73166fa47a16d9a75ee56a374f4a45f43"}, - {file = "orjson-3.10.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f759503a97a6ace19e55461395ab0d618b5a117e8d0fbb20e70cfd68a47327f2"}, - {file = "orjson-3.10.6-cp310-none-win32.whl", hash = "sha256:95a0cce17f969fb5391762e5719575217bd10ac5a189d1979442ee54456393f3"}, - {file = "orjson-3.10.6-cp310-none-win_amd64.whl", hash = "sha256:df25d9271270ba2133cc88ee83c318372bdc0f2cd6f32e7a450809a111efc45c"}, - {file = "orjson-3.10.6-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:b1ec490e10d2a77c345def52599311849fc063ae0e67cf4f84528073152bb2ba"}, - {file = "orjson-3.10.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55d43d3feb8f19d07e9f01e5b9be4f28801cf7c60d0fa0d279951b18fae1932b"}, - {file = "orjson-3.10.6-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac3045267e98fe749408eee1593a142e02357c5c99be0802185ef2170086a863"}, - {file = "orjson-3.10.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c27bc6a28ae95923350ab382c57113abd38f3928af3c80be6f2ba7eb8d8db0b0"}, - {file = "orjson-3.10.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d27456491ca79532d11e507cadca37fb8c9324a3976294f68fb1eff2dc6ced5a"}, - {file = "orjson-3.10.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05ac3d3916023745aa3b3b388e91b9166be1ca02b7c7e41045da6d12985685f0"}, - {file = "orjson-3.10.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1335d4ef59ab85cab66fe73fd7a4e881c298ee7f63ede918b7faa1b27cbe5212"}, - {file = "orjson-3.10.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4bbc6d0af24c1575edc79994c20e1b29e6fb3c6a570371306db0993ecf144dc5"}, - {file = "orjson-3.10.6-cp311-none-win32.whl", hash = "sha256:450e39ab1f7694465060a0550b3f6d328d20297bf2e06aa947b97c21e5241fbd"}, - {file = "orjson-3.10.6-cp311-none-win_amd64.whl", hash = "sha256:227df19441372610b20e05bdb906e1742ec2ad7a66ac8350dcfd29a63014a83b"}, - {file = "orjson-3.10.6-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ea2977b21f8d5d9b758bb3f344a75e55ca78e3ff85595d248eee813ae23ecdfb"}, - {file = "orjson-3.10.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b6f3d167d13a16ed263b52dbfedff52c962bfd3d270b46b7518365bcc2121eed"}, - {file = "orjson-3.10.6-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f710f346e4c44a4e8bdf23daa974faede58f83334289df80bc9cd12fe82573c7"}, - {file = "orjson-3.10.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7275664f84e027dcb1ad5200b8b18373e9c669b2a9ec33d410c40f5ccf4b257e"}, - {file = "orjson-3.10.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0943e4c701196b23c240b3d10ed8ecd674f03089198cf503105b474a4f77f21f"}, - {file = "orjson-3.10.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:446dee5a491b5bc7d8f825d80d9637e7af43f86a331207b9c9610e2f93fee22a"}, - {file = "orjson-3.10.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:64c81456d2a050d380786413786b057983892db105516639cb5d3ee3c7fd5148"}, - {file = "orjson-3.10.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:960db0e31c4e52fa0fc3ecbaea5b2d3b58f379e32a95ae6b0ebeaa25b93dfd34"}, - {file = "orjson-3.10.6-cp312-none-win32.whl", hash = "sha256:a6ea7afb5b30b2317e0bee03c8d34c8181bc5a36f2afd4d0952f378972c4efd5"}, - {file = "orjson-3.10.6-cp312-none-win_amd64.whl", hash = "sha256:874ce88264b7e655dde4aeaacdc8fd772a7962faadfb41abe63e2a4861abc3dc"}, - {file = "orjson-3.10.6-cp313-none-win32.whl", hash = "sha256:efdf2c5cde290ae6b83095f03119bdc00303d7a03b42b16c54517baa3c4ca3d0"}, - {file = "orjson-3.10.6-cp313-none-win_amd64.whl", hash = "sha256:8e190fe7888e2e4392f52cafb9626113ba135ef53aacc65cd13109eb9746c43e"}, - {file = "orjson-3.10.6-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:66680eae4c4e7fc193d91cfc1353ad6d01b4801ae9b5314f17e11ba55e934183"}, - {file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:caff75b425db5ef8e8f23af93c80f072f97b4fb3afd4af44482905c9f588da28"}, - {file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3722fddb821b6036fd2a3c814f6bd9b57a89dc6337b9924ecd614ebce3271394"}, - {file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c2c116072a8533f2fec435fde4d134610f806bdac20188c7bd2081f3e9e0133f"}, - {file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6eeb13218c8cf34c61912e9df2de2853f1d009de0e46ea09ccdf3d757896af0a"}, - {file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:965a916373382674e323c957d560b953d81d7a8603fbeee26f7b8248638bd48b"}, - {file = "orjson-3.10.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:03c95484d53ed8e479cade8628c9cea00fd9d67f5554764a1110e0d5aa2de96e"}, - {file = "orjson-3.10.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:e060748a04cccf1e0a6f2358dffea9c080b849a4a68c28b1b907f272b5127e9b"}, - {file = "orjson-3.10.6-cp38-none-win32.whl", hash = "sha256:738dbe3ef909c4b019d69afc19caf6b5ed0e2f1c786b5d6215fbb7539246e4c6"}, - {file = "orjson-3.10.6-cp38-none-win_amd64.whl", hash = "sha256:d40f839dddf6a7d77114fe6b8a70218556408c71d4d6e29413bb5f150a692ff7"}, - {file = "orjson-3.10.6-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:697a35a083c4f834807a6232b3e62c8b280f7a44ad0b759fd4dce748951e70db"}, - {file = "orjson-3.10.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd502f96bf5ea9a61cbc0b2b5900d0dd68aa0da197179042bdd2be67e51a1e4b"}, - {file = "orjson-3.10.6-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f215789fb1667cdc874c1b8af6a84dc939fd802bf293a8334fce185c79cd359b"}, - {file = "orjson-3.10.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2debd8ddce948a8c0938c8c93ade191d2f4ba4649a54302a7da905a81f00b56"}, - {file = "orjson-3.10.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5410111d7b6681d4b0d65e0f58a13be588d01b473822483f77f513c7f93bd3b2"}, - {file = "orjson-3.10.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb1f28a137337fdc18384079fa5726810681055b32b92253fa15ae5656e1dddb"}, - {file = "orjson-3.10.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:bf2fbbce5fe7cd1aa177ea3eab2b8e6a6bc6e8592e4279ed3db2d62e57c0e1b2"}, - {file = "orjson-3.10.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:79b9b9e33bd4c517445a62b90ca0cc279b0f1f3970655c3df9e608bc3f91741a"}, - {file = "orjson-3.10.6-cp39-none-win32.whl", hash = "sha256:30b0a09a2014e621b1adf66a4f705f0809358350a757508ee80209b2d8dae219"}, - {file = "orjson-3.10.6-cp39-none-win_amd64.whl", hash = "sha256:49e3bc615652617d463069f91b867a4458114c5b104e13b7ae6872e5f79d0844"}, - {file = "orjson-3.10.6.tar.gz", hash = "sha256:e54b63d0a7c6c54a5f5f726bc93a2078111ef060fec4ecbf34c5db800ca3b3a7"}, + {file = "orjson-3.10.12-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ece01a7ec71d9940cc654c482907a6b65df27251255097629d0dea781f255c6d"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c34ec9aebc04f11f4b978dd6caf697a2df2dd9b47d35aa4cc606cabcb9df69d7"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd6ec8658da3480939c79b9e9e27e0db31dffcd4ba69c334e98c9976ac29140e"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f17e6baf4cf01534c9de8a16c0c611f3d94925d1701bf5f4aff17003677d8ced"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6402ebb74a14ef96f94a868569f5dccf70d791de49feb73180eb3c6fda2ade56"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0000758ae7c7853e0a4a6063f534c61656ebff644391e1f81698c1b2d2fc8cd2"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:888442dcee99fd1e5bd37a4abb94930915ca6af4db50e23e746cdf4d1e63db13"}, + {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c1f7a3ce79246aa0e92f5458d86c54f257fb5dfdc14a192651ba7ec2c00f8a05"}, + {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:802a3935f45605c66fb4a586488a38af63cb37aaad1c1d94c982c40dcc452e85"}, + {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1da1ef0113a2be19bb6c557fb0ec2d79c92ebd2fed4cfb1b26bab93f021fb885"}, + {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a3273e99f367f137d5b3fecb5e9f45bcdbfac2a8b2f32fbc72129bbd48789c2"}, + {file = "orjson-3.10.12-cp310-none-win32.whl", hash = "sha256:475661bf249fd7907d9b0a2a2421b4e684355a77ceef85b8352439a9163418c3"}, + {file = "orjson-3.10.12-cp310-none-win_amd64.whl", hash = "sha256:87251dc1fb2b9e5ab91ce65d8f4caf21910d99ba8fb24b49fd0c118b2362d509"}, + {file = "orjson-3.10.12-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a734c62efa42e7df94926d70fe7d37621c783dea9f707a98cdea796964d4cf74"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:750f8b27259d3409eda8350c2919a58b0cfcd2054ddc1bd317a643afc646ef23"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb52c22bfffe2857e7aa13b4622afd0dd9d16ea7cc65fd2bf318d3223b1b6252"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:440d9a337ac8c199ff8251e100c62e9488924c92852362cd27af0e67308c16ef"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9e15c06491c69997dfa067369baab3bf094ecb74be9912bdc4339972323f252"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:362d204ad4b0b8724cf370d0cd917bb2dc913c394030da748a3bb632445ce7c4"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b57cbb4031153db37b41622eac67329c7810e5f480fda4cfd30542186f006ae"}, + {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:165c89b53ef03ce0d7c59ca5c82fa65fe13ddf52eeb22e859e58c237d4e33b9b"}, + {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:5dee91b8dfd54557c1a1596eb90bcd47dbcd26b0baaed919e6861f076583e9da"}, + {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:77a4e1cfb72de6f905bdff061172adfb3caf7a4578ebf481d8f0530879476c07"}, + {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:038d42c7bc0606443459b8fe2d1f121db474c49067d8d14c6a075bbea8bf14dd"}, + {file = "orjson-3.10.12-cp311-none-win32.whl", hash = "sha256:03b553c02ab39bed249bedd4abe37b2118324d1674e639b33fab3d1dafdf4d79"}, + {file = "orjson-3.10.12-cp311-none-win_amd64.whl", hash = "sha256:8b8713b9e46a45b2af6b96f559bfb13b1e02006f4242c156cbadef27800a55a8"}, + {file = "orjson-3.10.12-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:53206d72eb656ca5ac7d3a7141e83c5bbd3ac30d5eccfe019409177a57634b0d"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac8010afc2150d417ebda810e8df08dd3f544e0dd2acab5370cfa6bcc0662f8f"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed459b46012ae950dd2e17150e838ab08215421487371fa79d0eced8d1461d70"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8dcb9673f108a93c1b52bfc51b0af422c2d08d4fc710ce9c839faad25020bb69"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22a51ae77680c5c4652ebc63a83d5255ac7d65582891d9424b566fb3b5375ee9"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:910fdf2ac0637b9a77d1aad65f803bac414f0b06f720073438a7bd8906298192"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:24ce85f7100160936bc2116c09d1a8492639418633119a2224114f67f63a4559"}, + {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8a76ba5fc8dd9c913640292df27bff80a685bed3a3c990d59aa6ce24c352f8fc"}, + {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ff70ef093895fd53f4055ca75f93f047e088d1430888ca1229393a7c0521100f"}, + {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f4244b7018b5753ecd10a6d324ec1f347da130c953a9c88432c7fbc8875d13be"}, + {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:16135ccca03445f37921fa4b585cff9a58aa8d81ebcb27622e69bfadd220b32c"}, + {file = "orjson-3.10.12-cp312-none-win32.whl", hash = "sha256:2d879c81172d583e34153d524fcba5d4adafbab8349a7b9f16ae511c2cee8708"}, + {file = "orjson-3.10.12-cp312-none-win_amd64.whl", hash = "sha256:fc23f691fa0f5c140576b8c365bc942d577d861a9ee1142e4db468e4e17094fb"}, + {file = "orjson-3.10.12-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:47962841b2a8aa9a258b377f5188db31ba49af47d4003a32f55d6f8b19006543"}, + {file = "orjson-3.10.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6334730e2532e77b6054e87ca84f3072bee308a45a452ea0bffbbbc40a67e296"}, + {file = "orjson-3.10.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:accfe93f42713c899fdac2747e8d0d5c659592df2792888c6c5f829472e4f85e"}, + {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a7974c490c014c48810d1dede6c754c3cc46598da758c25ca3b4001ac45b703f"}, + {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:3f250ce7727b0b2682f834a3facff88e310f52f07a5dcfd852d99637d386e79e"}, + {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f31422ff9486ae484f10ffc51b5ab2a60359e92d0716fcce1b3593d7bb8a9af6"}, + {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5f29c5d282bb2d577c2a6bbde88d8fdcc4919c593f806aac50133f01b733846e"}, + {file = "orjson-3.10.12-cp313-none-win32.whl", hash = "sha256:f45653775f38f63dc0e6cd4f14323984c3149c05d6007b58cb154dd080ddc0dc"}, + {file = "orjson-3.10.12-cp313-none-win_amd64.whl", hash = "sha256:229994d0c376d5bdc91d92b3c9e6be2f1fbabd4cc1b59daae1443a46ee5e9825"}, + {file = "orjson-3.10.12-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7d69af5b54617a5fac5c8e5ed0859eb798e2ce8913262eb522590239db6c6763"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ed119ea7d2953365724a7059231a44830eb6bbb0cfead33fcbc562f5fd8f935"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9c5fc1238ef197e7cad5c91415f524aaa51e004be5a9b35a1b8a84ade196f73f"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:43509843990439b05f848539d6f6198d4ac86ff01dd024b2f9a795c0daeeab60"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f72e27a62041cfb37a3de512247ece9f240a561e6c8662276beaf4d53d406db4"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a904f9572092bb6742ab7c16c623f0cdccbad9eeb2d14d4aa06284867bddd31"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:855c0833999ed5dc62f64552db26f9be767434917d8348d77bacaab84f787d7b"}, + {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:897830244e2320f6184699f598df7fb9db9f5087d6f3f03666ae89d607e4f8ed"}, + {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:0b32652eaa4a7539f6f04abc6243619c56f8530c53bf9b023e1269df5f7816dd"}, + {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:36b4aa31e0f6a1aeeb6f8377769ca5d125db000f05c20e54163aef1d3fe8e833"}, + {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:5535163054d6cbf2796f93e4f0dbc800f61914c0e3c4ed8499cf6ece22b4a3da"}, + {file = "orjson-3.10.12-cp38-none-win32.whl", hash = "sha256:90a5551f6f5a5fa07010bf3d0b4ca2de21adafbbc0af6cb700b63cd767266cb9"}, + {file = "orjson-3.10.12-cp38-none-win_amd64.whl", hash = "sha256:703a2fb35a06cdd45adf5d733cf613cbc0cb3ae57643472b16bc22d325b5fb6c"}, + {file = "orjson-3.10.12-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:f29de3ef71a42a5822765def1febfb36e0859d33abf5c2ad240acad5c6a1b78d"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de365a42acc65d74953f05e4772c974dad6c51cfc13c3240899f534d611be967"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:91a5a0158648a67ff0004cb0df5df7dcc55bfc9ca154d9c01597a23ad54c8d0c"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c47ce6b8d90fe9646a25b6fb52284a14ff215c9595914af63a5933a49972ce36"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0eee4c2c5bfb5c1b47a5db80d2ac7aaa7e938956ae88089f098aff2c0f35d5d8"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:35d3081bbe8b86587eb5c98a73b97f13d8f9fea685cf91a579beddacc0d10566"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:73c23a6e90383884068bc2dba83d5222c9fcc3b99a0ed2411d38150734236755"}, + {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5472be7dc3269b4b52acba1433dac239215366f89dc1d8d0e64029abac4e714e"}, + {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:7319cda750fca96ae5973efb31b17d97a5c5225ae0bc79bf5bf84df9e1ec2ab6"}, + {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:74d5ca5a255bf20b8def6a2b96b1e18ad37b4a122d59b154c458ee9494377f80"}, + {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ff31d22ecc5fb85ef62c7d4afe8301d10c558d00dd24274d4bbe464380d3cd69"}, + {file = "orjson-3.10.12-cp39-none-win32.whl", hash = "sha256:c22c3ea6fba91d84fcb4cda30e64aff548fcf0c44c876e681f47d61d24b12e6b"}, + {file = "orjson-3.10.12-cp39-none-win_amd64.whl", hash = "sha256:be604f60d45ace6b0b33dd990a66b4526f1a7a186ac411c942674625456ca548"}, + {file = "orjson-3.10.12.tar.gz", hash = "sha256:0a78bbda3aea0f9f079057ee1ee8a1ecf790d4f1af88dd67493c6b8ee52506ff"}, ] [[package]] name = "overrides" version = "7.7.0" description = "A decorator to automatically detect mismatch when overriding a method." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -3494,19 +3797,21 @@ files = [ [[package]] name = "packaging" -version = "24.0" +version = "24.2" description = "Core utilities for Python packages" +category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, - {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, ] [[package]] name = "pandas" version = "1.5.0" description = "Powerful data structures for data analysis, time series, and statistics" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3551,6 +3856,7 @@ test = ["hypothesis (>=5.5.3)", "pytest (>=6.0)", "pytest-xdist (>=1.31)"] name = "pandocfilters" version = "1.5.1" description = "Utilities for writing pandoc filters in python" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -3562,6 +3868,7 @@ files = [ name = "parso" version = "0.8.4" description = "A Python Parser" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -3577,6 +3884,7 @@ testing = ["docopt", "pytest"] name = "pathspec" version = "0.12.1" description = "Utility library for gitignore style pattern matching of file paths." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3588,6 +3896,7 @@ files = [ name = "pendulum" version = "3.0.0" description = "Python datetimes made easy" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3687,6 +3996,7 @@ test = ["time-machine (>=2.6.0)"] name = "pexpect" version = "4.9.0" description = "Pexpect allows easy control of interactive console applications." +category = "dev" optional = false python-versions = "*" files = [ @@ -3699,84 +4009,91 @@ ptyprocess = ">=0.5" [[package]] name = "pillow" -version = "10.3.0" +version = "11.0.0" description = "Python Imaging Library (Fork)" +category = "main" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "pillow-10.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:90b9e29824800e90c84e4022dd5cc16eb2d9605ee13f05d47641eb183cd73d45"}, - {file = "pillow-10.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a2c405445c79c3f5a124573a051062300936b0281fee57637e706453e452746c"}, - {file = "pillow-10.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78618cdbccaa74d3f88d0ad6cb8ac3007f1a6fa5c6f19af64b55ca170bfa1edf"}, - {file = "pillow-10.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:261ddb7ca91fcf71757979534fb4c128448b5b4c55cb6152d280312062f69599"}, - {file = "pillow-10.3.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:ce49c67f4ea0609933d01c0731b34b8695a7a748d6c8d186f95e7d085d2fe475"}, - {file = "pillow-10.3.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b14f16f94cbc61215115b9b1236f9c18403c15dd3c52cf629072afa9d54c1cbf"}, - {file = "pillow-10.3.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d33891be6df59d93df4d846640f0e46f1a807339f09e79a8040bc887bdcd7ed3"}, - {file = "pillow-10.3.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b50811d664d392f02f7761621303eba9d1b056fb1868c8cdf4231279645c25f5"}, - {file = "pillow-10.3.0-cp310-cp310-win32.whl", hash = "sha256:ca2870d5d10d8726a27396d3ca4cf7976cec0f3cb706debe88e3a5bd4610f7d2"}, - {file = "pillow-10.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:f0d0591a0aeaefdaf9a5e545e7485f89910c977087e7de2b6c388aec32011e9f"}, - {file = "pillow-10.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:ccce24b7ad89adb5a1e34a6ba96ac2530046763912806ad4c247356a8f33a67b"}, - {file = "pillow-10.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:5f77cf66e96ae734717d341c145c5949c63180842a545c47a0ce7ae52ca83795"}, - {file = "pillow-10.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e4b878386c4bf293578b48fc570b84ecfe477d3b77ba39a6e87150af77f40c57"}, - {file = "pillow-10.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdcbb4068117dfd9ce0138d068ac512843c52295ed996ae6dd1faf537b6dbc27"}, - {file = "pillow-10.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9797a6c8fe16f25749b371c02e2ade0efb51155e767a971c61734b1bf6293994"}, - {file = "pillow-10.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:9e91179a242bbc99be65e139e30690e081fe6cb91a8e77faf4c409653de39451"}, - {file = "pillow-10.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:1b87bd9d81d179bd8ab871603bd80d8645729939f90b71e62914e816a76fc6bd"}, - {file = "pillow-10.3.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:81d09caa7b27ef4e61cb7d8fbf1714f5aec1c6b6c5270ee53504981e6e9121ad"}, - {file = "pillow-10.3.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:048ad577748b9fa4a99a0548c64f2cb8d672d5bf2e643a739ac8faff1164238c"}, - {file = "pillow-10.3.0-cp311-cp311-win32.whl", hash = "sha256:7161ec49ef0800947dc5570f86568a7bb36fa97dd09e9827dc02b718c5643f09"}, - {file = "pillow-10.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:8eb0908e954d093b02a543dc963984d6e99ad2b5e36503d8a0aaf040505f747d"}, - {file = "pillow-10.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:4e6f7d1c414191c1199f8996d3f2282b9ebea0945693fb67392c75a3a320941f"}, - {file = "pillow-10.3.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:e46f38133e5a060d46bd630faa4d9fa0202377495df1f068a8299fd78c84de84"}, - {file = "pillow-10.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:50b8eae8f7334ec826d6eeffaeeb00e36b5e24aa0b9df322c247539714c6df19"}, - {file = "pillow-10.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d3bea1c75f8c53ee4d505c3e67d8c158ad4df0d83170605b50b64025917f338"}, - {file = "pillow-10.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19aeb96d43902f0a783946a0a87dbdad5c84c936025b8419da0a0cd7724356b1"}, - {file = "pillow-10.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:74d28c17412d9caa1066f7a31df8403ec23d5268ba46cd0ad2c50fb82ae40462"}, - {file = "pillow-10.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:ff61bfd9253c3915e6d41c651d5f962da23eda633cf02262990094a18a55371a"}, - {file = "pillow-10.3.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d886f5d353333b4771d21267c7ecc75b710f1a73d72d03ca06df49b09015a9ef"}, - {file = "pillow-10.3.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4b5ec25d8b17217d635f8935dbc1b9aa5907962fae29dff220f2659487891cd3"}, - {file = "pillow-10.3.0-cp312-cp312-win32.whl", hash = "sha256:51243f1ed5161b9945011a7360e997729776f6e5d7005ba0c6879267d4c5139d"}, - {file = "pillow-10.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:412444afb8c4c7a6cc11a47dade32982439925537e483be7c0ae0cf96c4f6a0b"}, - {file = "pillow-10.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:798232c92e7665fe82ac085f9d8e8ca98826f8e27859d9a96b41d519ecd2e49a"}, - {file = "pillow-10.3.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:4eaa22f0d22b1a7e93ff0a596d57fdede2e550aecffb5a1ef1106aaece48e96b"}, - {file = "pillow-10.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cd5e14fbf22a87321b24c88669aad3a51ec052eb145315b3da3b7e3cc105b9a2"}, - {file = "pillow-10.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1530e8f3a4b965eb6a7785cf17a426c779333eb62c9a7d1bbcf3ffd5bf77a4aa"}, - {file = "pillow-10.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d512aafa1d32efa014fa041d38868fda85028e3f930a96f85d49c7d8ddc0383"}, - {file = "pillow-10.3.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:339894035d0ede518b16073bdc2feef4c991ee991a29774b33e515f1d308e08d"}, - {file = "pillow-10.3.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:aa7e402ce11f0885305bfb6afb3434b3cd8f53b563ac065452d9d5654c7b86fd"}, - {file = "pillow-10.3.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0ea2a783a2bdf2a561808fe4a7a12e9aa3799b701ba305de596bc48b8bdfce9d"}, - {file = "pillow-10.3.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c78e1b00a87ce43bb37642c0812315b411e856a905d58d597750eb79802aaaa3"}, - {file = "pillow-10.3.0-cp38-cp38-win32.whl", hash = "sha256:72d622d262e463dfb7595202d229f5f3ab4b852289a1cd09650362db23b9eb0b"}, - {file = "pillow-10.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:2034f6759a722da3a3dbd91a81148cf884e91d1b747992ca288ab88c1de15999"}, - {file = "pillow-10.3.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:2ed854e716a89b1afcedea551cd85f2eb2a807613752ab997b9974aaa0d56936"}, - {file = "pillow-10.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dc1a390a82755a8c26c9964d457d4c9cbec5405896cba94cf51f36ea0d855002"}, - {file = "pillow-10.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4203efca580f0dd6f882ca211f923168548f7ba334c189e9eab1178ab840bf60"}, - {file = "pillow-10.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3102045a10945173d38336f6e71a8dc71bcaeed55c3123ad4af82c52807b9375"}, - {file = "pillow-10.3.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:6fb1b30043271ec92dc65f6d9f0b7a830c210b8a96423074b15c7bc999975f57"}, - {file = "pillow-10.3.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:1dfc94946bc60ea375cc39cff0b8da6c7e5f8fcdc1d946beb8da5c216156ddd8"}, - {file = "pillow-10.3.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b09b86b27a064c9624d0a6c54da01c1beaf5b6cadfa609cf63789b1d08a797b9"}, - {file = "pillow-10.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d3b2348a78bc939b4fed6552abfd2e7988e0f81443ef3911a4b8498ca084f6eb"}, - {file = "pillow-10.3.0-cp39-cp39-win32.whl", hash = "sha256:45ebc7b45406febf07fef35d856f0293a92e7417ae7933207e90bf9090b70572"}, - {file = "pillow-10.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:0ba26351b137ca4e0db0342d5d00d2e355eb29372c05afd544ebf47c0956ffeb"}, - {file = "pillow-10.3.0-cp39-cp39-win_arm64.whl", hash = "sha256:50fd3f6b26e3441ae07b7c979309638b72abc1a25da31a81a7fbd9495713ef4f"}, - {file = "pillow-10.3.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:6b02471b72526ab8a18c39cb7967b72d194ec53c1fd0a70b050565a0f366d355"}, - {file = "pillow-10.3.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8ab74c06ffdab957d7670c2a5a6e1a70181cd10b727cd788c4dd9005b6a8acd9"}, - {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:048eeade4c33fdf7e08da40ef402e748df113fd0b4584e32c4af74fe78baaeb2"}, - {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e2ec1e921fd07c7cda7962bad283acc2f2a9ccc1b971ee4b216b75fad6f0463"}, - {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:4c8e73e99da7db1b4cad7f8d682cf6abad7844da39834c288fbfa394a47bbced"}, - {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:16563993329b79513f59142a6b02055e10514c1a8e86dca8b48a893e33cf91e3"}, - {file = "pillow-10.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:dd78700f5788ae180b5ee8902c6aea5a5726bac7c364b202b4b3e3ba2d293170"}, - {file = "pillow-10.3.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:aff76a55a8aa8364d25400a210a65ff59d0168e0b4285ba6bf2bd83cf675ba32"}, - {file = "pillow-10.3.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:b7bc2176354defba3edc2b9a777744462da2f8e921fbaf61e52acb95bafa9828"}, - {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:793b4e24db2e8742ca6423d3fde8396db336698c55cd34b660663ee9e45ed37f"}, - {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d93480005693d247f8346bc8ee28c72a2191bdf1f6b5db469c096c0c867ac015"}, - {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c83341b89884e2b2e55886e8fbbf37c3fa5efd6c8907124aeb72f285ae5696e5"}, - {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1a1d1915db1a4fdb2754b9de292642a39a7fb28f1736699527bb649484fb966a"}, - {file = "pillow-10.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a0eaa93d054751ee9964afa21c06247779b90440ca41d184aeb5d410f20ff591"}, - {file = "pillow-10.3.0.tar.gz", hash = "sha256:9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d"}, + {file = "pillow-11.0.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:6619654954dc4936fcff82db8eb6401d3159ec6be81e33c6000dfd76ae189947"}, + {file = "pillow-11.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b3c5ac4bed7519088103d9450a1107f76308ecf91d6dabc8a33a2fcfb18d0fba"}, + {file = "pillow-11.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a65149d8ada1055029fcb665452b2814fe7d7082fcb0c5bed6db851cb69b2086"}, + {file = "pillow-11.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88a58d8ac0cc0e7f3a014509f0455248a76629ca9b604eca7dc5927cc593c5e9"}, + {file = "pillow-11.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:c26845094b1af3c91852745ae78e3ea47abf3dbcd1cf962f16b9a5fbe3ee8488"}, + {file = "pillow-11.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:1a61b54f87ab5786b8479f81c4b11f4d61702830354520837f8cc791ebba0f5f"}, + {file = "pillow-11.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:674629ff60030d144b7bca2b8330225a9b11c482ed408813924619c6f302fdbb"}, + {file = "pillow-11.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:598b4e238f13276e0008299bd2482003f48158e2b11826862b1eb2ad7c768b97"}, + {file = "pillow-11.0.0-cp310-cp310-win32.whl", hash = "sha256:9a0f748eaa434a41fccf8e1ee7a3eed68af1b690e75328fd7a60af123c193b50"}, + {file = "pillow-11.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:a5629742881bcbc1f42e840af185fd4d83a5edeb96475a575f4da50d6ede337c"}, + {file = "pillow-11.0.0-cp310-cp310-win_arm64.whl", hash = "sha256:ee217c198f2e41f184f3869f3e485557296d505b5195c513b2bfe0062dc537f1"}, + {file = "pillow-11.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1c1d72714f429a521d8d2d018badc42414c3077eb187a59579f28e4270b4b0fc"}, + {file = "pillow-11.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:499c3a1b0d6fc8213519e193796eb1a86a1be4b1877d678b30f83fd979811d1a"}, + {file = "pillow-11.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8b2351c85d855293a299038e1f89db92a2f35e8d2f783489c6f0b2b5f3fe8a3"}, + {file = "pillow-11.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f4dba50cfa56f910241eb7f883c20f1e7b1d8f7d91c750cd0b318bad443f4d5"}, + {file = "pillow-11.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:5ddbfd761ee00c12ee1be86c9c0683ecf5bb14c9772ddbd782085779a63dd55b"}, + {file = "pillow-11.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:45c566eb10b8967d71bf1ab8e4a525e5a93519e29ea071459ce517f6b903d7fa"}, + {file = "pillow-11.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b4fd7bd29610a83a8c9b564d457cf5bd92b4e11e79a4ee4716a63c959699b306"}, + {file = "pillow-11.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:cb929ca942d0ec4fac404cbf520ee6cac37bf35be479b970c4ffadf2b6a1cad9"}, + {file = "pillow-11.0.0-cp311-cp311-win32.whl", hash = "sha256:006bcdd307cc47ba43e924099a038cbf9591062e6c50e570819743f5607404f5"}, + {file = "pillow-11.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:52a2d8323a465f84faaba5236567d212c3668f2ab53e1c74c15583cf507a0291"}, + {file = "pillow-11.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:16095692a253047fe3ec028e951fa4221a1f3ed3d80c397e83541a3037ff67c9"}, + {file = "pillow-11.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2c0a187a92a1cb5ef2c8ed5412dd8d4334272617f532d4ad4de31e0495bd923"}, + {file = "pillow-11.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:084a07ef0821cfe4858fe86652fffac8e187b6ae677e9906e192aafcc1b69903"}, + {file = "pillow-11.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8069c5179902dcdce0be9bfc8235347fdbac249d23bd90514b7a47a72d9fecf4"}, + {file = "pillow-11.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f02541ef64077f22bf4924f225c0fd1248c168f86e4b7abdedd87d6ebaceab0f"}, + {file = "pillow-11.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:fcb4621042ac4b7865c179bb972ed0da0218a076dc1820ffc48b1d74c1e37fe9"}, + {file = "pillow-11.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:00177a63030d612148e659b55ba99527803288cea7c75fb05766ab7981a8c1b7"}, + {file = "pillow-11.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8853a3bf12afddfdf15f57c4b02d7ded92c7a75a5d7331d19f4f9572a89c17e6"}, + {file = "pillow-11.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3107c66e43bda25359d5ef446f59c497de2b5ed4c7fdba0894f8d6cf3822dafc"}, + {file = "pillow-11.0.0-cp312-cp312-win32.whl", hash = "sha256:86510e3f5eca0ab87429dd77fafc04693195eec7fd6a137c389c3eeb4cfb77c6"}, + {file = "pillow-11.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:8ec4a89295cd6cd4d1058a5e6aec6bf51e0eaaf9714774e1bfac7cfc9051db47"}, + {file = "pillow-11.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:27a7860107500d813fcd203b4ea19b04babe79448268403172782754870dac25"}, + {file = "pillow-11.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bcd1fb5bb7b07f64c15618c89efcc2cfa3e95f0e3bcdbaf4642509de1942a699"}, + {file = "pillow-11.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0e038b0745997c7dcaae350d35859c9715c71e92ffb7e0f4a8e8a16732150f38"}, + {file = "pillow-11.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ae08bd8ffc41aebf578c2af2f9d8749d91f448b3bfd41d7d9ff573d74f2a6b2"}, + {file = "pillow-11.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d69bfd8ec3219ae71bcde1f942b728903cad25fafe3100ba2258b973bd2bc1b2"}, + {file = "pillow-11.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:61b887f9ddba63ddf62fd02a3ba7add935d053b6dd7d58998c630e6dbade8527"}, + {file = "pillow-11.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:c6a660307ca9d4867caa8d9ca2c2658ab685de83792d1876274991adec7b93fa"}, + {file = "pillow-11.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:73e3a0200cdda995c7e43dd47436c1548f87a30bb27fb871f352a22ab8dcf45f"}, + {file = "pillow-11.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fba162b8872d30fea8c52b258a542c5dfd7b235fb5cb352240c8d63b414013eb"}, + {file = "pillow-11.0.0-cp313-cp313-win32.whl", hash = "sha256:f1b82c27e89fffc6da125d5eb0ca6e68017faf5efc078128cfaa42cf5cb38798"}, + {file = "pillow-11.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:8ba470552b48e5835f1d23ecb936bb7f71d206f9dfeee64245f30c3270b994de"}, + {file = "pillow-11.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:846e193e103b41e984ac921b335df59195356ce3f71dcfd155aa79c603873b84"}, + {file = "pillow-11.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4ad70c4214f67d7466bea6a08061eba35c01b1b89eaa098040a35272a8efb22b"}, + {file = "pillow-11.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:6ec0d5af64f2e3d64a165f490d96368bb5dea8b8f9ad04487f9ab60dc4bb6003"}, + {file = "pillow-11.0.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c809a70e43c7977c4a42aefd62f0131823ebf7dd73556fa5d5950f5b354087e2"}, + {file = "pillow-11.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:4b60c9520f7207aaf2e1d94de026682fc227806c6e1f55bba7606d1c94dd623a"}, + {file = "pillow-11.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1e2688958a840c822279fda0086fec1fdab2f95bf2b717b66871c4ad9859d7e8"}, + {file = "pillow-11.0.0-cp313-cp313t-win32.whl", hash = "sha256:607bbe123c74e272e381a8d1957083a9463401f7bd01287f50521ecb05a313f8"}, + {file = "pillow-11.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c39ed17edea3bc69c743a8dd3e9853b7509625c2462532e62baa0732163a904"}, + {file = "pillow-11.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:75acbbeb05b86bc53cbe7b7e6fe00fbcf82ad7c684b3ad82e3d711da9ba287d3"}, + {file = "pillow-11.0.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:2e46773dc9f35a1dd28bd6981332fd7f27bec001a918a72a79b4133cf5291dba"}, + {file = "pillow-11.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2679d2258b7f1192b378e2893a8a0a0ca472234d4c2c0e6bdd3380e8dfa21b6a"}, + {file = "pillow-11.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eda2616eb2313cbb3eebbe51f19362eb434b18e3bb599466a1ffa76a033fb916"}, + {file = "pillow-11.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ec184af98a121fb2da42642dea8a29ec80fc3efbaefb86d8fdd2606619045d"}, + {file = "pillow-11.0.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:8594f42df584e5b4bb9281799698403f7af489fba84c34d53d1c4bfb71b7c4e7"}, + {file = "pillow-11.0.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:c12b5ae868897c7338519c03049a806af85b9b8c237b7d675b8c5e089e4a618e"}, + {file = "pillow-11.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:70fbbdacd1d271b77b7721fe3cdd2d537bbbd75d29e6300c672ec6bb38d9672f"}, + {file = "pillow-11.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5178952973e588b3f1360868847334e9e3bf49d19e169bbbdfaf8398002419ae"}, + {file = "pillow-11.0.0-cp39-cp39-win32.whl", hash = "sha256:8c676b587da5673d3c75bd67dd2a8cdfeb282ca38a30f37950511766b26858c4"}, + {file = "pillow-11.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:94f3e1780abb45062287b4614a5bc0874519c86a777d4a7ad34978e86428b8dd"}, + {file = "pillow-11.0.0-cp39-cp39-win_arm64.whl", hash = "sha256:290f2cc809f9da7d6d622550bbf4c1e57518212da51b6a30fe8e0a270a5b78bd"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1187739620f2b365de756ce086fdb3604573337cc28a0d3ac4a01ab6b2d2a6d2"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fbbcb7b57dc9c794843e3d1258c0fbf0f48656d46ffe9e09b63bbd6e8cd5d0a2"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d203af30149ae339ad1b4f710d9844ed8796e97fda23ffbc4cc472968a47d0b"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21a0d3b115009ebb8ac3d2ebec5c2982cc693da935f4ab7bb5c8ebe2f47d36f2"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:73853108f56df97baf2bb8b522f3578221e56f646ba345a372c78326710d3830"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e58876c91f97b0952eb766123bfef372792ab3f4e3e1f1a2267834c2ab131734"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:224aaa38177597bb179f3ec87eeefcce8e4f85e608025e9cfac60de237ba6316"}, + {file = "pillow-11.0.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:5bd2d3bdb846d757055910f0a59792d33b555800813c3b39ada1829c372ccb06"}, + {file = "pillow-11.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:375b8dd15a1f5d2feafff536d47e22f69625c1aa92f12b339ec0b2ca40263273"}, + {file = "pillow-11.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:daffdf51ee5db69a82dd127eabecce20729e21f7a3680cf7cbb23f0829189790"}, + {file = "pillow-11.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7326a1787e3c7b0429659e0a944725e1b03eeaa10edd945a86dead1913383944"}, + {file = "pillow-11.0.0.tar.gz", hash = "sha256:72bacbaf24ac003fea9bff9837d1eedb6088758d41e100c1552930151f677739"}, ] [package.extras] -docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"] +docs = ["furo", "olefile", "sphinx (>=8.1)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] fpx = ["olefile"] mic = ["olefile"] tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] @@ -3785,24 +4102,26 @@ xmp = ["defusedxml"] [[package]] name = "platformdirs" -version = "4.2.2" +version = "4.3.6" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, - {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, + {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, + {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, ] [package.extras] -docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] -type = ["mypy (>=1.8)"] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.11.2)"] [[package]] name = "pluggy" version = "1.5.0" description = "plugin and hook calling mechanisms for python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3816,13 +4135,14 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "pre-commit" -version = "3.7.1" +version = "3.8.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." +category = "dev" optional = false python-versions = ">=3.9" files = [ - {file = "pre_commit-3.7.1-py2.py3-none-any.whl", hash = "sha256:fae36fd1d7ad7d6a5a1c0b0d5adb2ed1a3bda5a21bf6c3e5372073d7a11cd4c5"}, - {file = "pre_commit-3.7.1.tar.gz", hash = "sha256:8ca3ad567bc78a4972a3f1a477e94a79d4597e8140a6e0b651c5e33899c3654a"}, + {file = "pre_commit-3.8.0-py2.py3-none-any.whl", hash = "sha256:9a90a53bf82fdd8778d58085faf8d83df56e40dfe18f45b19446e26bf1b3a63f"}, + {file = "pre_commit-3.8.0.tar.gz", hash = "sha256:8bb6494d4a20423842e198980c9ecf9f96607a07ea29549e180eef9ae80fe7af"}, ] [package.dependencies] @@ -3834,54 +4154,56 @@ virtualenv = ">=20.10.0" [[package]] name = "prefect" -version = "3.0.0rc17" +version = "3.1.7.dev2" description = "Workflow orchestration and management." +category = "main" optional = false python-versions = ">=3.9" files = [ - {file = "prefect-3.0.0rc17-py3-none-any.whl", hash = "sha256:7934edfd244863c2a4589893194c8c71ff124eef4c41c6c82f234cb54d5e93c3"}, - {file = "prefect-3.0.0rc17.tar.gz", hash = "sha256:af8cc4e679df09bcf0e99e95883d93c7739177f4396cfe529614a7f789b319e5"}, + {file = "prefect-3.1.7.dev2-py3-none-any.whl", hash = "sha256:e9a6eaafce90fc91ffc4f5d9a455960718ef720ea9b6e2964c8c803e86a63f94"}, + {file = "prefect-3.1.7.dev2.tar.gz", hash = "sha256:ea0a3d77740fa1abc6377cc00471dc8b701db412c846d53c8920f3adce0a5583"}, ] [package.dependencies] -aiosqlite = ">=0.17.0" +aiosqlite = ">=0.17.0,<1.0.0" alembic = ">=1.7.5,<2.0.0" anyio = ">=4.4.0,<5.0.0" apprise = ">=1.1.0,<2.0.0" asgi-lifespan = ">=1.0,<3.0" -asyncpg = ">=0.23" +asyncpg = ">=0.23,<1.0.0" cachetools = ">=5.3,<6.0" click = ">=8.0,<8.2" cloudpickle = ">=2.0,<4.0" coolname = ">=1.0.4,<3.0.0" -croniter = ">=1.0.12,<4.0.0" +croniter = ">=1.0.12,<6.0.0" cryptography = ">=36.0.1" dateparser = ">=1.1.1,<2.0.0" -docker = ">=4.0" +docker = ">=4.0,<8.0" exceptiongroup = ">=1.0.0" fastapi = ">=0.111.0,<1.0.0" fsspec = ">=2022.5.0" graphviz = ">=0.20.1" -griffe = ">=0.20.0,<0.48.0" +griffe = ">=0.49.0,<2.0.0" httpcore = ">=1.0.5,<2.0.0" httpx = {version = ">=0.23,<0.23.2 || >0.23.2", extras = ["http2"]} -humanize = ">=4.9.0" -importlib-resources = ">=6.1.3,<6.2.0" +humanize = ">=4.9.0,<5.0.0" jinja2 = ">=3.0.0,<4.0.0" jinja2-humanize-extension = ">=0.4.0" jsonpatch = ">=1.32,<2.0" jsonschema = ">=4.0.0,<5.0.0" +opentelemetry-api = ">=1.27.0,<2.0.0" orjson = ">=3.7,<4.0" packaging = ">=21.3,<24.3" pathspec = ">=0.8.0" pendulum = ">=3.0.0,<4" prometheus-client = ">=0.20.0" -pydantic = ">=2.7,<3.0.0" -pydantic-core = ">=2.12.0,<3.0.0" -pydantic-extra-types = ">=2.8.2,<3.0.0" -pydantic-settings = "*" -python-dateutil = ">=2.8.2,<3.0.0" +pydantic = ">=2.7,<2.10.0 || >2.10.0,<3.0.0" +pydantic_core = ">=2.12.0,<3.0.0" +pydantic_extra_types = ">=2.8.2,<3.0.0" +pydantic_settings = ">2.2.1" +python_dateutil = ">=2.8.2,<3.0.0" python-slugify = ">=5.0,<9.0" +python-socks = {version = ">=2.5.3,<3.0", extras = ["asyncio"]} pytz = ">=2021.1,<2025" pyyaml = ">=5.4.1,<7.0.0" readchar = ">=4.0.0,<5.0.0" @@ -3891,42 +4213,44 @@ rich = ">=11.0,<14.0" sniffio = ">=1.3.0,<2.0.0" sqlalchemy = {version = ">=2.0,<3.0.0", extras = ["asyncio"]} toml = ">=0.10.0" -typer = ">=0.12.0,<0.12.2 || >0.12.2,<0.13.0" -typing-extensions = ">=4.5.0,<5.0.0" +typer = ">=0.12.0,<0.12.2 || >0.12.2,<0.14.0" +typing_extensions = ">=4.5.0,<5.0.0" ujson = ">=5.8.0,<6.0.0" uvicorn = ">=0.14.0,<0.29.0 || >0.29.0" -websockets = ">=10.4,<13.0" +websockets = ">=10.4,<14.0" [package.extras] -aws = ["prefect-aws (>=0.5.0rc1)"] -azure = ["prefect-azure (>=0.4.0rc1)"] -bitbucket = ["prefect-bitbucket (>=0.3.0rc1)"] -dask = ["prefect-dask (>=0.3.0rc1)"] -databricks = ["prefect-databricks (>=0.3.0rc1)"] -dbt = ["prefect-dbt (>=0.6.0rc1)"] -dev = ["cairosvg", "codespell (>=2.2.6)", "ipython", "jinja2", "mkdocs", "mkdocs-gen-files", "mkdocs-material", "mkdocstrings[python]", "moto (>=5)", "mypy (>=1.9.0)", "numpy", "pillow", "pluggy (>=1.4.0)", "pre-commit", "pytest (>7,<9)", "pytest-asyncio (>=0.18.2,!=0.22.0,<0.23.0)", "pytest-benchmark", "pytest-codspeed", "pytest-cov", "pytest-env", "pytest-flakefinder", "pytest-timeout", "pytest-xdist (>=3.6.1)", "pyyaml", "redis (>=5.0.1)", "respx", "ruff", "setuptools", "types-PyYAML", "types-cachetools", "vale", "vermin", "virtualenv", "watchfiles"] -docker = ["prefect-docker (>=0.6.0rc1)"] -email = ["prefect-email (>=0.4.0rc1)"] -gcp = ["prefect-gcp (>=0.6.0rc1)"] -github = ["prefect-github (>=0.3.0rc1)"] -gitlab = ["prefect-gitlab (>=0.3.0rc1)"] -kubernetes = ["prefect-kubernetes (>=0.4.0rc1)"] -ray = ["prefect-ray (>=0.4.0rc1)"] -redis = ["redis (>=5.0.1)"] -shell = ["prefect-shell (>=0.3.0rc1)"] -slack = ["prefect-slack (>=0.3.0rc1)"] -snowflake = ["prefect-snowflake (>=0.28.0rc1)"] -sqlalchemy = ["prefect-sqlalchemy (>=0.5.0rc1)"] +aws = ["prefect-aws (>=0.5.0)"] +azure = ["prefect-azure (>=0.4.0)"] +bitbucket = ["prefect-bitbucket (>=0.3.0)"] +dask = ["prefect-dask (>=0.3.0)"] +databricks = ["prefect-databricks (>=0.3.0)"] +dbt = ["prefect-dbt (>=0.6.0)"] +dev = ["cairosvg", "codespell (>=2.2.6)", "ipython", "jinja2", "mkdocs", "mkdocs-gen-files", "mkdocs-material", "mkdocstrings[python]", "moto (>=5)", "mypy (>=1.9.0)", "numpy", "opentelemetry-distro (>=0.48b0,<1.0.0)", "opentelemetry-exporter-otlp (>=1.27.0,<2.0.0)", "opentelemetry-instrumentation (>=0.48b0,<1.0.0)", "opentelemetry-instrumentation-logging (>=0.48b0,<1.0.0)", "opentelemetry-test-utils (>=0.48b0,<1.0.0)", "pillow", "pluggy (>=1.4.0)", "pre-commit", "pytest (>=8.3)", "pytest-asyncio (>=0.24)", "pytest-benchmark", "pytest-cov", "pytest-env", "pytest-flakefinder", "pytest-timeout", "pytest-xdist (>=3.6.1)", "pyyaml", "redis (>=5.0.1)", "respx", "ruff", "setuptools", "types-PyYAML", "types-cachetools", "uv (>=0.4.5)", "vale", "vermin", "virtualenv", "watchfiles"] +docker = ["prefect-docker (>=0.6.0)"] +email = ["prefect-email (>=0.4.0)"] +gcp = ["prefect-gcp (>=0.6.0)"] +github = ["prefect-github (>=0.3.0)"] +gitlab = ["prefect-gitlab (>=0.3.0)"] +kubernetes = ["prefect-kubernetes (>=0.4.0)"] +otel = ["opentelemetry-distro (>=0.48b0,<1.0.0)", "opentelemetry-exporter-otlp (>=1.27.0,<2.0.0)", "opentelemetry-instrumentation (>=0.48b0,<1.0.0)", "opentelemetry-instrumentation-logging (>=0.48b0,<1.0.0)"] +ray = ["prefect-ray (>=0.4.0)"] +redis = ["prefect-redis (>=0.2.0)"] +shell = ["prefect-shell (>=0.3.0)"] +slack = ["prefect-slack (>=0.3.0)"] +snowflake = ["prefect-snowflake (>=0.28.0)"] +sqlalchemy = ["prefect-sqlalchemy (>=0.5.0)"] [[package]] name = "prometheus-client" -version = "0.20.0" +version = "0.21.1" description = "Python client for the Prometheus monitoring system." +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "prometheus_client-0.20.0-py3-none-any.whl", hash = "sha256:cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7"}, - {file = "prometheus_client-0.20.0.tar.gz", hash = "sha256:287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89"}, + {file = "prometheus_client-0.21.1-py3-none-any.whl", hash = "sha256:594b45c410d6f4f8888940fe80b5cc2521b305a1fafe1c58609ef715a001f301"}, + {file = "prometheus_client-0.21.1.tar.gz", hash = "sha256:252505a722ac04b0456be05c05f75f45d760c2911ffc45f2a06bcaed9f3ae3fb"}, ] [package.extras] @@ -3934,50 +4258,147 @@ twisted = ["twisted"] [[package]] name = "prompt-toolkit" -version = "3.0.45" +version = "3.0.48" description = "Library for building powerful interactive command lines in Python" +category = "dev" optional = false python-versions = ">=3.7.0" files = [ - {file = "prompt_toolkit-3.0.45-py3-none-any.whl", hash = "sha256:a29b89160e494e3ea8622b09fa5897610b437884dcdcd054fdc1308883326c2a"}, - {file = "prompt_toolkit-3.0.45.tar.gz", hash = "sha256:07c60ee4ab7b7e90824b61afa840c8f5aad2d46b3e2e10acc33d8ecc94a49089"}, + {file = "prompt_toolkit-3.0.48-py3-none-any.whl", hash = "sha256:f49a827f90062e411f1ce1f854f2aedb3c23353244f8108b89283587397ac10e"}, + {file = "prompt_toolkit-3.0.48.tar.gz", hash = "sha256:d6623ab0477a80df74e646bdbc93621143f5caf104206aa29294d53de1a03d90"}, ] [package.dependencies] wcwidth = "*" +[[package]] +name = "propcache" +version = "0.2.1" +description = "Accelerated property cache" +category = "dev" +optional = false +python-versions = ">=3.9" +files = [ + {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6b3f39a85d671436ee3d12c017f8fdea38509e4f25b28eb25877293c98c243f6"}, + {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d51fbe4285d5db5d92a929e3e21536ea3dd43732c5b177c7ef03f918dff9f2"}, + {file = "propcache-0.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6445804cf4ec763dc70de65a3b0d9954e868609e83850a47ca4f0cb64bd79fea"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9479aa06a793c5aeba49ce5c5692ffb51fcd9a7016e017d555d5e2b0045d212"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9631c5e8b5b3a0fda99cb0d29c18133bca1e18aea9effe55adb3da1adef80d3"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3156628250f46a0895f1f36e1d4fbe062a1af8718ec3ebeb746f1d23f0c5dc4d"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b6fb63ae352e13748289f04f37868099e69dba4c2b3e271c46061e82c745634"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:887d9b0a65404929641a9fabb6452b07fe4572b269d901d622d8a34a4e9043b2"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a96dc1fa45bd8c407a0af03b2d5218392729e1822b0c32e62c5bf7eeb5fb3958"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a7e65eb5c003a303b94aa2c3852ef130230ec79e349632d030e9571b87c4698c"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:999779addc413181912e984b942fbcc951be1f5b3663cd80b2687758f434c583"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:19a0f89a7bb9d8048d9c4370c9c543c396e894c76be5525f5e1ad287f1750ddf"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1ac2f5fe02fa75f56e1ad473f1175e11f475606ec9bd0be2e78e4734ad575034"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:574faa3b79e8ebac7cb1d7930f51184ba1ccf69adfdec53a12f319a06030a68b"}, + {file = "propcache-0.2.1-cp310-cp310-win32.whl", hash = "sha256:03ff9d3f665769b2a85e6157ac8b439644f2d7fd17615a82fa55739bc97863f4"}, + {file = "propcache-0.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:2d3af2e79991102678f53e0dbf4c35de99b6b8b58f29a27ca0325816364caaba"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ffc3cca89bb438fb9c95c13fc874012f7b9466b89328c3c8b1aa93cdcfadd16"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f174bbd484294ed9fdf09437f889f95807e5f229d5d93588d34e92106fbf6717"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:70693319e0b8fd35dd863e3e29513875eb15c51945bf32519ef52927ca883bc3"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b480c6a4e1138e1aa137c0079b9b6305ec6dcc1098a8ca5196283e8a49df95a9"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d27b84d5880f6d8aa9ae3edb253c59d9f6642ffbb2c889b78b60361eed449787"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:857112b22acd417c40fa4595db2fe28ab900c8c5fe4670c7989b1c0230955465"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf6c4150f8c0e32d241436526f3c3f9cbd34429492abddbada2ffcff506c51af"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66d4cfda1d8ed687daa4bc0274fcfd5267873db9a5bc0418c2da19273040eeb7"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2f992c07c0fca81655066705beae35fc95a2fa7366467366db627d9f2ee097f"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:4a571d97dbe66ef38e472703067021b1467025ec85707d57e78711c085984e54"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bb6178c241278d5fe853b3de743087be7f5f4c6f7d6d22a3b524d323eecec505"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ad1af54a62ffe39cf34db1aa6ed1a1873bd548f6401db39d8e7cd060b9211f82"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e7048abd75fe40712005bcfc06bb44b9dfcd8e101dda2ecf2f5aa46115ad07ca"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:160291c60081f23ee43d44b08a7e5fb76681221a8e10b3139618c5a9a291b84e"}, + {file = "propcache-0.2.1-cp311-cp311-win32.whl", hash = "sha256:819ce3b883b7576ca28da3861c7e1a88afd08cc8c96908e08a3f4dd64a228034"}, + {file = "propcache-0.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:edc9fc7051e3350643ad929df55c451899bb9ae6d24998a949d2e4c87fb596d3"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:081a430aa8d5e8876c6909b67bd2d937bfd531b0382d3fdedb82612c618bc41a"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2ccec9ac47cf4e04897619c0e0c1a48c54a71bdf045117d3a26f80d38ab1fb0"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14d86fe14b7e04fa306e0c43cdbeebe6b2c2156a0c9ce56b815faacc193e320d"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:049324ee97bb67285b49632132db351b41e77833678432be52bdd0289c0e05e4"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cd9a1d071158de1cc1c71a26014dcdfa7dd3d5f4f88c298c7f90ad6f27bb46d"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98110aa363f1bb4c073e8dcfaefd3a5cea0f0834c2aab23dda657e4dab2f53b5"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:647894f5ae99c4cf6bb82a1bb3a796f6e06af3caa3d32e26d2350d0e3e3faf24"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfd3223c15bebe26518d58ccf9a39b93948d3dcb3e57a20480dfdd315356baff"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d71264a80f3fcf512eb4f18f59423fe82d6e346ee97b90625f283df56aee103f"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e73091191e4280403bde6c9a52a6999d69cdfde498f1fdf629105247599b57ec"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3935bfa5fede35fb202c4b569bb9c042f337ca4ff7bd540a0aa5e37131659348"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f508b0491767bb1f2b87fdfacaba5f7eddc2f867740ec69ece6d1946d29029a6"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1672137af7c46662a1c2be1e8dc78cb6d224319aaa40271c9257d886be4363a6"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b74c261802d3d2b85c9df2dfb2fa81b6f90deeef63c2db9f0e029a3cac50b518"}, + {file = "propcache-0.2.1-cp312-cp312-win32.whl", hash = "sha256:d09c333d36c1409d56a9d29b3a1b800a42c76a57a5a8907eacdbce3f18768246"}, + {file = "propcache-0.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:c214999039d4f2a5b2073ac506bba279945233da8c786e490d411dfc30f855c1"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aca405706e0b0a44cc6bfd41fbe89919a6a56999157f6de7e182a990c36e37bc"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:12d1083f001ace206fe34b6bdc2cb94be66d57a850866f0b908972f90996b3e9"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d93f3307ad32a27bda2e88ec81134b823c240aa3abb55821a8da553eed8d9439"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba278acf14471d36316159c94a802933d10b6a1e117b8554fe0d0d9b75c9d536"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4e6281aedfca15301c41f74d7005e6e3f4ca143584ba696ac69df4f02f40d629"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b750a8e5a1262434fb1517ddf64b5de58327f1adc3524a5e44c2ca43305eb0b"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf72af5e0fb40e9babf594308911436c8efde3cb5e75b6f206c34ad18be5c052"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2d0a12018b04f4cb820781ec0dffb5f7c7c1d2a5cd22bff7fb055a2cb19ebce"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e800776a79a5aabdb17dcc2346a7d66d0777e942e4cd251defeb084762ecd17d"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:4160d9283bd382fa6c0c2b5e017acc95bc183570cd70968b9202ad6d8fc48dce"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:30b43e74f1359353341a7adb783c8f1b1c676367b011709f466f42fda2045e95"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:58791550b27d5488b1bb52bc96328456095d96206a250d28d874fafe11b3dfaf"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:0f022d381747f0dfe27e99d928e31bc51a18b65bb9e481ae0af1380a6725dd1f"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:297878dc9d0a334358f9b608b56d02e72899f3b8499fc6044133f0d319e2ec30"}, + {file = "propcache-0.2.1-cp313-cp313-win32.whl", hash = "sha256:ddfab44e4489bd79bda09d84c430677fc7f0a4939a73d2bba3073036f487a0a6"}, + {file = "propcache-0.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:556fc6c10989f19a179e4321e5d678db8eb2924131e64652a51fe83e4c3db0e1"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6a9a8c34fb7bb609419a211e59da8887eeca40d300b5ea8e56af98f6fbbb1541"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ae1aa1cd222c6d205853b3013c69cd04515f9d6ab6de4b0603e2e1c33221303e"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:accb6150ce61c9c4b7738d45550806aa2b71c7668c6942f17b0ac182b6142fd4"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5eee736daafa7af6d0a2dc15cc75e05c64f37fc37bafef2e00d77c14171c2097"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7a31fc1e1bd362874863fdeed71aed92d348f5336fd84f2197ba40c59f061bd"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba4cfa1052819d16699e1d55d18c92b6e094d4517c41dd231a8b9f87b6fa681"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f089118d584e859c62b3da0892b88a83d611c2033ac410e929cb6754eec0ed16"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:781e65134efaf88feb447e8c97a51772aa75e48b794352f94cb7ea717dedda0d"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31f5af773530fd3c658b32b6bdc2d0838543de70eb9a2156c03e410f7b0d3aae"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:a7a078f5d37bee6690959c813977da5291b24286e7b962e62a94cec31aa5188b"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:cea7daf9fc7ae6687cf1e2c049752f19f146fdc37c2cc376e7d0032cf4f25347"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:8b3489ff1ed1e8315674d0775dc7d2195fb13ca17b3808721b54dbe9fd020faf"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9403db39be1393618dd80c746cb22ccda168efce239c73af13c3763ef56ffc04"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5d97151bc92d2b2578ff7ce779cdb9174337390a535953cbb9452fb65164c587"}, + {file = "propcache-0.2.1-cp39-cp39-win32.whl", hash = "sha256:9caac6b54914bdf41bcc91e7eb9147d331d29235a7c967c150ef5df6464fd1bb"}, + {file = "propcache-0.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:92fc4500fcb33899b05ba73276dfb684a20d31caa567b7cb5252d48f896a91b1"}, + {file = "propcache-0.2.1-py3-none-any.whl", hash = "sha256:52277518d6aae65536e9cea52d4e7fd2f7a66f4aa2d30ed3f2fcea620ace3c54"}, + {file = "propcache-0.2.1.tar.gz", hash = "sha256:3f77ce728b19cb537714499928fe800c3dda29e8d9428778fc7c186da4c09a64"}, +] + [[package]] name = "psutil" -version = "5.9.8" +version = "6.1.0" description = "Cross-platform lib for process and system monitoring in Python." +category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" -files = [ - {file = "psutil-5.9.8-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8"}, - {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73"}, - {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:611052c4bc70432ec770d5d54f64206aa7203a101ec273a0cd82418c86503bb7"}, - {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:50187900d73c1381ba1454cf40308c2bf6f34268518b3f36a9b663ca87e65e36"}, - {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d"}, - {file = "psutil-5.9.8-cp27-none-win32.whl", hash = "sha256:36f435891adb138ed3c9e58c6af3e2e6ca9ac2f365efe1f9cfef2794e6c93b4e"}, - {file = "psutil-5.9.8-cp27-none-win_amd64.whl", hash = "sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631"}, - {file = "psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81"}, - {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421"}, - {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4"}, - {file = "psutil-5.9.8-cp36-cp36m-win32.whl", hash = "sha256:7d79560ad97af658a0f6adfef8b834b53f64746d45b403f225b85c5c2c140eee"}, - {file = "psutil-5.9.8-cp36-cp36m-win_amd64.whl", hash = "sha256:27cc40c3493bb10de1be4b3f07cae4c010ce715290a5be22b98493509c6299e2"}, - {file = "psutil-5.9.8-cp37-abi3-win32.whl", hash = "sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0"}, - {file = "psutil-5.9.8-cp37-abi3-win_amd64.whl", hash = "sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf"}, - {file = "psutil-5.9.8-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8"}, - {file = "psutil-5.9.8.tar.gz", hash = "sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c"}, +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "psutil-6.1.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ff34df86226c0227c52f38b919213157588a678d049688eded74c76c8ba4a5d0"}, + {file = "psutil-6.1.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:c0e0c00aa18ca2d3b2b991643b799a15fc8f0563d2ebb6040f64ce8dc027b942"}, + {file = "psutil-6.1.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:000d1d1ebd634b4efb383f4034437384e44a6d455260aaee2eca1e9c1b55f047"}, + {file = "psutil-6.1.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:5cd2bcdc75b452ba2e10f0e8ecc0b57b827dd5d7aaffbc6821b2a9a242823a76"}, + {file = "psutil-6.1.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:045f00a43c737f960d273a83973b2511430d61f283a44c96bf13a6e829ba8fdc"}, + {file = "psutil-6.1.0-cp27-none-win32.whl", hash = "sha256:9118f27452b70bb1d9ab3198c1f626c2499384935aaf55388211ad982611407e"}, + {file = "psutil-6.1.0-cp27-none-win_amd64.whl", hash = "sha256:a8506f6119cff7015678e2bce904a4da21025cc70ad283a53b099e7620061d85"}, + {file = "psutil-6.1.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6e2dcd475ce8b80522e51d923d10c7871e45f20918e027ab682f94f1c6351688"}, + {file = "psutil-6.1.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0895b8414afafc526712c498bd9de2b063deaac4021a3b3c34566283464aff8e"}, + {file = "psutil-6.1.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9dcbfce5d89f1d1f2546a2090f4fcf87c7f669d1d90aacb7d7582addece9fb38"}, + {file = "psutil-6.1.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:498c6979f9c6637ebc3a73b3f87f9eb1ec24e1ce53a7c5173b8508981614a90b"}, + {file = "psutil-6.1.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d905186d647b16755a800e7263d43df08b790d709d575105d419f8b6ef65423a"}, + {file = "psutil-6.1.0-cp36-cp36m-win32.whl", hash = "sha256:6d3fbbc8d23fcdcb500d2c9f94e07b1342df8ed71b948a2649b5cb060a7c94ca"}, + {file = "psutil-6.1.0-cp36-cp36m-win_amd64.whl", hash = "sha256:1209036fbd0421afde505a4879dee3b2fd7b1e14fee81c0069807adcbbcca747"}, + {file = "psutil-6.1.0-cp37-abi3-win32.whl", hash = "sha256:1ad45a1f5d0b608253b11508f80940985d1d0c8f6111b5cb637533a0e6ddc13e"}, + {file = "psutil-6.1.0-cp37-abi3-win_amd64.whl", hash = "sha256:a8fb3752b491d246034fa4d279ff076501588ce8cbcdbb62c32fd7a377d996be"}, + {file = "psutil-6.1.0.tar.gz", hash = "sha256:353815f59a7f64cdaca1c0307ee13558a0512f6db064e92fe833784f08539c7a"}, ] [package.extras] -test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] +dev = ["black", "check-manifest", "coverage", "packaging", "pylint", "pyperf", "pypinfo", "pytest-cov", "requests", "rstcheck", "ruff", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "virtualenv", "wheel"] +test = ["pytest", "pytest-xdist", "setuptools"] [[package]] name = "psycopg2-binary" version = "2.8.5" description = "psycopg2 - Python-PostgreSQL Database Adapter" +category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" files = [ @@ -4017,6 +4438,7 @@ files = [ name = "ptyprocess" version = "0.7.0" description = "Run a subprocess in a pseudo terminal" +category = "dev" optional = false python-versions = "*" files = [ @@ -4026,13 +4448,14 @@ files = [ [[package]] name = "pure-eval" -version = "0.2.2" +version = "0.2.3" description = "Safely evaluate AST nodes without side effects" +category = "dev" optional = false python-versions = "*" files = [ - {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, - {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, + {file = "pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0"}, + {file = "pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42"}, ] [package.extras] @@ -4042,6 +4465,7 @@ tests = ["pytest"] name = "pycparser" version = "2.22" description = "C parser in Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -4051,109 +4475,133 @@ files = [ [[package]] name = "pydantic" -version = "2.7.2" +version = "2.10.3" description = "Data validation using Python type hints" +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic-2.7.2-py3-none-any.whl", hash = "sha256:834ab954175f94e6e68258537dc49402c4a5e9d0409b9f1b86b7e934a8372de7"}, - {file = "pydantic-2.7.2.tar.gz", hash = "sha256:71b2945998f9c9b7919a45bde9a50397b289937d215ae141c1d0903ba7149fd7"}, + {file = "pydantic-2.10.3-py3-none-any.whl", hash = "sha256:be04d85bbc7b65651c5f8e6b9976ed9c6f41782a55524cef079a34a0bb82144d"}, + {file = "pydantic-2.10.3.tar.gz", hash = "sha256:cb5ac360ce894ceacd69c403187900a02c4b20b693a9dd1d643e1effab9eadf9"}, ] [package.dependencies] -annotated-types = ">=0.4.0" -pydantic-core = "2.18.3" -typing-extensions = ">=4.6.1" +annotated-types = ">=0.6.0" +pydantic-core = "2.27.1" +typing-extensions = ">=4.12.2" [package.extras] email = ["email-validator (>=2.0.0)"] +timezone = ["tzdata"] [[package]] name = "pydantic-core" -version = "2.18.3" +version = "2.27.1" description = "Core functionality for Pydantic validation and serialization" +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic_core-2.18.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:744697428fcdec6be5670460b578161d1ffe34743a5c15656be7ea82b008197c"}, - {file = "pydantic_core-2.18.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:37b40c05ced1ba4218b14986fe6f283d22e1ae2ff4c8e28881a70fb81fbfcda7"}, - {file = "pydantic_core-2.18.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:544a9a75622357076efb6b311983ff190fbfb3c12fc3a853122b34d3d358126c"}, - {file = "pydantic_core-2.18.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e2e253af04ceaebde8eb201eb3f3e3e7e390f2d275a88300d6a1959d710539e2"}, - {file = "pydantic_core-2.18.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:855ec66589c68aa367d989da5c4755bb74ee92ccad4fdb6af942c3612c067e34"}, - {file = "pydantic_core-2.18.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d3e42bb54e7e9d72c13ce112e02eb1b3b55681ee948d748842171201a03a98a"}, - {file = "pydantic_core-2.18.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c6ac9ffccc9d2e69d9fba841441d4259cb668ac180e51b30d3632cd7abca2b9b"}, - {file = "pydantic_core-2.18.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c56eca1686539fa0c9bda992e7bd6a37583f20083c37590413381acfc5f192d6"}, - {file = "pydantic_core-2.18.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:17954d784bf8abfc0ec2a633108207ebc4fa2df1a0e4c0c3ccbaa9bb01d2c426"}, - {file = "pydantic_core-2.18.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:98ed737567d8f2ecd54f7c8d4f8572ca7c7921ede93a2e52939416170d357812"}, - {file = "pydantic_core-2.18.3-cp310-none-win32.whl", hash = "sha256:9f9e04afebd3ed8c15d67a564ed0a34b54e52136c6d40d14c5547b238390e779"}, - {file = "pydantic_core-2.18.3-cp310-none-win_amd64.whl", hash = "sha256:45e4ffbae34f7ae30d0047697e724e534a7ec0a82ef9994b7913a412c21462a0"}, - {file = "pydantic_core-2.18.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:b9ebe8231726c49518b16b237b9fe0d7d361dd221302af511a83d4ada01183ab"}, - {file = "pydantic_core-2.18.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b8e20e15d18bf7dbb453be78a2d858f946f5cdf06c5072453dace00ab652e2b2"}, - {file = "pydantic_core-2.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c0d9ff283cd3459fa0bf9b0256a2b6f01ac1ff9ffb034e24457b9035f75587cb"}, - {file = "pydantic_core-2.18.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2f7ef5f0ebb77ba24c9970da18b771711edc5feaf00c10b18461e0f5f5949231"}, - {file = "pydantic_core-2.18.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:73038d66614d2e5cde30435b5afdced2b473b4c77d4ca3a8624dd3e41a9c19be"}, - {file = "pydantic_core-2.18.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6afd5c867a74c4d314c557b5ea9520183fadfbd1df4c2d6e09fd0d990ce412cd"}, - {file = "pydantic_core-2.18.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd7df92f28d351bb9f12470f4c533cf03d1b52ec5a6e5c58c65b183055a60106"}, - {file = "pydantic_core-2.18.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:80aea0ffeb1049336043d07799eace1c9602519fb3192916ff525b0287b2b1e4"}, - {file = "pydantic_core-2.18.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:aaee40f25bba38132e655ffa3d1998a6d576ba7cf81deff8bfa189fb43fd2bbe"}, - {file = "pydantic_core-2.18.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9128089da8f4fe73f7a91973895ebf2502539d627891a14034e45fb9e707e26d"}, - {file = "pydantic_core-2.18.3-cp311-none-win32.whl", hash = "sha256:fec02527e1e03257aa25b1a4dcbe697b40a22f1229f5d026503e8b7ff6d2eda7"}, - {file = "pydantic_core-2.18.3-cp311-none-win_amd64.whl", hash = "sha256:58ff8631dbab6c7c982e6425da8347108449321f61fe427c52ddfadd66642af7"}, - {file = "pydantic_core-2.18.3-cp311-none-win_arm64.whl", hash = "sha256:3fc1c7f67f34c6c2ef9c213e0f2a351797cda98249d9ca56a70ce4ebcaba45f4"}, - {file = "pydantic_core-2.18.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f0928cde2ae416a2d1ebe6dee324709c6f73e93494d8c7aea92df99aab1fc40f"}, - {file = "pydantic_core-2.18.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0bee9bb305a562f8b9271855afb6ce00223f545de3d68560b3c1649c7c5295e9"}, - {file = "pydantic_core-2.18.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e862823be114387257dacbfa7d78547165a85d7add33b446ca4f4fae92c7ff5c"}, - {file = "pydantic_core-2.18.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6a36f78674cbddc165abab0df961b5f96b14461d05feec5e1f78da58808b97e7"}, - {file = "pydantic_core-2.18.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ba905d184f62e7ddbb7a5a751d8a5c805463511c7b08d1aca4a3e8c11f2e5048"}, - {file = "pydantic_core-2.18.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7fdd362f6a586e681ff86550b2379e532fee63c52def1c666887956748eaa326"}, - {file = "pydantic_core-2.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24b214b7ee3bd3b865e963dbed0f8bc5375f49449d70e8d407b567af3222aae4"}, - {file = "pydantic_core-2.18.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:691018785779766127f531674fa82bb368df5b36b461622b12e176c18e119022"}, - {file = "pydantic_core-2.18.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:60e4c625e6f7155d7d0dcac151edf5858102bc61bf959d04469ca6ee4e8381bd"}, - {file = "pydantic_core-2.18.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a4e651e47d981c1b701dcc74ab8fec5a60a5b004650416b4abbef13db23bc7be"}, - {file = "pydantic_core-2.18.3-cp312-none-win32.whl", hash = "sha256:ffecbb5edb7f5ffae13599aec33b735e9e4c7676ca1633c60f2c606beb17efc5"}, - {file = "pydantic_core-2.18.3-cp312-none-win_amd64.whl", hash = "sha256:2c8333f6e934733483c7eddffdb094c143b9463d2af7e6bd85ebcb2d4a1b82c6"}, - {file = "pydantic_core-2.18.3-cp312-none-win_arm64.whl", hash = "sha256:7a20dded653e516a4655f4c98e97ccafb13753987434fe7cf044aa25f5b7d417"}, - {file = "pydantic_core-2.18.3-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:eecf63195be644b0396f972c82598cd15693550f0ff236dcf7ab92e2eb6d3522"}, - {file = "pydantic_core-2.18.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2c44efdd3b6125419c28821590d7ec891c9cb0dff33a7a78d9d5c8b6f66b9702"}, - {file = "pydantic_core-2.18.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e59fca51ffbdd1638b3856779342ed69bcecb8484c1d4b8bdb237d0eb5a45e2"}, - {file = "pydantic_core-2.18.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:70cf099197d6b98953468461d753563b28e73cf1eade2ffe069675d2657ed1d5"}, - {file = "pydantic_core-2.18.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:63081a49dddc6124754b32a3774331467bfc3d2bd5ff8f10df36a95602560361"}, - {file = "pydantic_core-2.18.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:370059b7883485c9edb9655355ff46d912f4b03b009d929220d9294c7fd9fd60"}, - {file = "pydantic_core-2.18.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a64faeedfd8254f05f5cf6fc755023a7e1606af3959cfc1a9285744cc711044"}, - {file = "pydantic_core-2.18.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:19d2e725de0f90d8671f89e420d36c3dd97639b98145e42fcc0e1f6d492a46dc"}, - {file = "pydantic_core-2.18.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:67bc078025d70ec5aefe6200ef094576c9d86bd36982df1301c758a9fff7d7f4"}, - {file = "pydantic_core-2.18.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:adf952c3f4100e203cbaf8e0c907c835d3e28f9041474e52b651761dc248a3c0"}, - {file = "pydantic_core-2.18.3-cp38-none-win32.whl", hash = "sha256:9a46795b1f3beb167eaee91736d5d17ac3a994bf2215a996aed825a45f897558"}, - {file = "pydantic_core-2.18.3-cp38-none-win_amd64.whl", hash = "sha256:200ad4e3133cb99ed82342a101a5abf3d924722e71cd581cc113fe828f727fbc"}, - {file = "pydantic_core-2.18.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:304378b7bf92206036c8ddd83a2ba7b7d1a5b425acafff637172a3aa72ad7083"}, - {file = "pydantic_core-2.18.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c826870b277143e701c9ccf34ebc33ddb4d072612683a044e7cce2d52f6c3fef"}, - {file = "pydantic_core-2.18.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e201935d282707394f3668380e41ccf25b5794d1b131cdd96b07f615a33ca4b1"}, - {file = "pydantic_core-2.18.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5560dda746c44b48bf82b3d191d74fe8efc5686a9ef18e69bdabccbbb9ad9442"}, - {file = "pydantic_core-2.18.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b32c2a1f8032570842257e4c19288eba9a2bba4712af542327de9a1204faff8"}, - {file = "pydantic_core-2.18.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:929c24e9dea3990bc8bcd27c5f2d3916c0c86f5511d2caa69e0d5290115344a9"}, - {file = "pydantic_core-2.18.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1a8376fef60790152564b0eab376b3e23dd6e54f29d84aad46f7b264ecca943"}, - {file = "pydantic_core-2.18.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:dccf3ef1400390ddd1fb55bf0632209d39140552d068ee5ac45553b556780e06"}, - {file = "pydantic_core-2.18.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:41dbdcb0c7252b58fa931fec47937edb422c9cb22528f41cb8963665c372caf6"}, - {file = "pydantic_core-2.18.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:666e45cf071669fde468886654742fa10b0e74cd0fa0430a46ba6056b24fb0af"}, - {file = "pydantic_core-2.18.3-cp39-none-win32.whl", hash = "sha256:f9c08cabff68704a1b4667d33f534d544b8a07b8e5d039c37067fceb18789e78"}, - {file = "pydantic_core-2.18.3-cp39-none-win_amd64.whl", hash = "sha256:4afa5f5973e8572b5c0dcb4e2d4fda7890e7cd63329bd5cc3263a25c92ef0026"}, - {file = "pydantic_core-2.18.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:77319771a026f7c7d29c6ebc623de889e9563b7087911b46fd06c044a12aa5e9"}, - {file = "pydantic_core-2.18.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:df11fa992e9f576473038510d66dd305bcd51d7dd508c163a8c8fe148454e059"}, - {file = "pydantic_core-2.18.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d531076bdfb65af593326ffd567e6ab3da145020dafb9187a1d131064a55f97c"}, - {file = "pydantic_core-2.18.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d33ce258e4e6e6038f2b9e8b8a631d17d017567db43483314993b3ca345dcbbb"}, - {file = "pydantic_core-2.18.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1f9cd7f5635b719939019be9bda47ecb56e165e51dd26c9a217a433e3d0d59a9"}, - {file = "pydantic_core-2.18.3-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:cd4a032bb65cc132cae1fe3e52877daecc2097965cd3914e44fbd12b00dae7c5"}, - {file = "pydantic_core-2.18.3-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:82f2718430098bcdf60402136c845e4126a189959d103900ebabb6774a5d9fdb"}, - {file = "pydantic_core-2.18.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:c0037a92cf0c580ed14e10953cdd26528e8796307bb8bb312dc65f71547df04d"}, - {file = "pydantic_core-2.18.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b95a0972fac2b1ff3c94629fc9081b16371dad870959f1408cc33b2f78ad347a"}, - {file = "pydantic_core-2.18.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a62e437d687cc148381bdd5f51e3e81f5b20a735c55f690c5be94e05da2b0d5c"}, - {file = "pydantic_core-2.18.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b367a73a414bbb08507da102dc2cde0fa7afe57d09b3240ce82a16d608a7679c"}, - {file = "pydantic_core-2.18.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ecce4b2360aa3f008da3327d652e74a0e743908eac306198b47e1c58b03dd2b"}, - {file = "pydantic_core-2.18.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bd4435b8d83f0c9561a2a9585b1de78f1abb17cb0cef5f39bf6a4b47d19bafe3"}, - {file = "pydantic_core-2.18.3-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:616221a6d473c5b9aa83fa8982745441f6a4a62a66436be9445c65f241b86c94"}, - {file = "pydantic_core-2.18.3-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:7e6382ce89a92bc1d0c0c5edd51e931432202b9080dc921d8d003e616402efd1"}, - {file = "pydantic_core-2.18.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ff58f379345603d940e461eae474b6bbb6dab66ed9a851ecd3cb3709bf4dcf6a"}, - {file = "pydantic_core-2.18.3.tar.gz", hash = "sha256:432e999088d85c8f36b9a3f769a8e2b57aabd817bbb729a90d1fe7f18f6f1f39"}, + {file = "pydantic_core-2.27.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:71a5e35c75c021aaf400ac048dacc855f000bdfed91614b4a726f7432f1f3d6a"}, + {file = "pydantic_core-2.27.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f82d068a2d6ecfc6e054726080af69a6764a10015467d7d7b9f66d6ed5afa23b"}, + {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:121ceb0e822f79163dd4699e4c54f5ad38b157084d97b34de8b232bcaad70278"}, + {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4603137322c18eaf2e06a4495f426aa8d8388940f3c457e7548145011bb68e05"}, + {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a33cd6ad9017bbeaa9ed78a2e0752c5e250eafb9534f308e7a5f7849b0b1bfb4"}, + {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15cc53a3179ba0fcefe1e3ae50beb2784dede4003ad2dfd24f81bba4b23a454f"}, + {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45d9c5eb9273aa50999ad6adc6be5e0ecea7e09dbd0d31bd0c65a55a2592ca08"}, + {file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8bf7b66ce12a2ac52d16f776b31d16d91033150266eb796967a7e4621707e4f6"}, + {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:655d7dd86f26cb15ce8a431036f66ce0318648f8853d709b4167786ec2fa4807"}, + {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:5556470f1a2157031e676f776c2bc20acd34c1990ca5f7e56f1ebf938b9ab57c"}, + {file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f69ed81ab24d5a3bd93861c8c4436f54afdf8e8cc421562b0c7504cf3be58206"}, + {file = "pydantic_core-2.27.1-cp310-none-win32.whl", hash = "sha256:f5a823165e6d04ccea61a9f0576f345f8ce40ed533013580e087bd4d7442b52c"}, + {file = "pydantic_core-2.27.1-cp310-none-win_amd64.whl", hash = "sha256:57866a76e0b3823e0b56692d1a0bf722bffb324839bb5b7226a7dbd6c9a40b17"}, + {file = "pydantic_core-2.27.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ac3b20653bdbe160febbea8aa6c079d3df19310d50ac314911ed8cc4eb7f8cb8"}, + {file = "pydantic_core-2.27.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a5a8e19d7c707c4cadb8c18f5f60c843052ae83c20fa7d44f41594c644a1d330"}, + {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f7059ca8d64fea7f238994c97d91f75965216bcbe5f695bb44f354893f11d52"}, + {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bed0f8a0eeea9fb72937ba118f9db0cb7e90773462af7962d382445f3005e5a4"}, + {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a3cb37038123447cf0f3ea4c74751f6a9d7afef0eb71aa07bf5f652b5e6a132c"}, + {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84286494f6c5d05243456e04223d5a9417d7f443c3b76065e75001beb26f88de"}, + {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acc07b2cfc5b835444b44a9956846b578d27beeacd4b52e45489e93276241025"}, + {file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4fefee876e07a6e9aad7a8c8c9f85b0cdbe7df52b8a9552307b09050f7512c7e"}, + {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:258c57abf1188926c774a4c94dd29237e77eda19462e5bb901d88adcab6af919"}, + {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:35c14ac45fcfdf7167ca76cc80b2001205a8d5d16d80524e13508371fb8cdd9c"}, + {file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d1b26e1dff225c31897696cab7d4f0a315d4c0d9e8666dbffdb28216f3b17fdc"}, + {file = "pydantic_core-2.27.1-cp311-none-win32.whl", hash = "sha256:2cdf7d86886bc6982354862204ae3b2f7f96f21a3eb0ba5ca0ac42c7b38598b9"}, + {file = "pydantic_core-2.27.1-cp311-none-win_amd64.whl", hash = "sha256:3af385b0cee8df3746c3f406f38bcbfdc9041b5c2d5ce3e5fc6637256e60bbc5"}, + {file = "pydantic_core-2.27.1-cp311-none-win_arm64.whl", hash = "sha256:81f2ec23ddc1b476ff96563f2e8d723830b06dceae348ce02914a37cb4e74b89"}, + {file = "pydantic_core-2.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9cbd94fc661d2bab2bc702cddd2d3370bbdcc4cd0f8f57488a81bcce90c7a54f"}, + {file = "pydantic_core-2.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5f8c4718cd44ec1580e180cb739713ecda2bdee1341084c1467802a417fe0f02"}, + {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15aae984e46de8d376df515f00450d1522077254ef6b7ce189b38ecee7c9677c"}, + {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ba5e3963344ff25fc8c40da90f44b0afca8cfd89d12964feb79ac1411a260ac"}, + {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:992cea5f4f3b29d6b4f7f1726ed8ee46c8331c6b4eed6db5b40134c6fe1768bb"}, + {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0325336f348dbee6550d129b1627cb8f5351a9dc91aad141ffb96d4937bd9529"}, + {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7597c07fbd11515f654d6ece3d0e4e5093edc30a436c63142d9a4b8e22f19c35"}, + {file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3bbd5d8cc692616d5ef6fbbbd50dbec142c7e6ad9beb66b78a96e9c16729b089"}, + {file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:dc61505e73298a84a2f317255fcc72b710b72980f3a1f670447a21efc88f8381"}, + {file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:e1f735dc43da318cad19b4173dd1ffce1d84aafd6c9b782b3abc04a0d5a6f5bb"}, + {file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f4e5658dbffe8843a0f12366a4c2d1c316dbe09bb4dfbdc9d2d9cd6031de8aae"}, + {file = "pydantic_core-2.27.1-cp312-none-win32.whl", hash = "sha256:672ebbe820bb37988c4d136eca2652ee114992d5d41c7e4858cdd90ea94ffe5c"}, + {file = "pydantic_core-2.27.1-cp312-none-win_amd64.whl", hash = "sha256:66ff044fd0bb1768688aecbe28b6190f6e799349221fb0de0e6f4048eca14c16"}, + {file = "pydantic_core-2.27.1-cp312-none-win_arm64.whl", hash = "sha256:9a3b0793b1bbfd4146304e23d90045f2a9b5fd5823aa682665fbdaf2a6c28f3e"}, + {file = "pydantic_core-2.27.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f216dbce0e60e4d03e0c4353c7023b202d95cbaeff12e5fd2e82ea0a66905073"}, + {file = "pydantic_core-2.27.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a2e02889071850bbfd36b56fd6bc98945e23670773bc7a76657e90e6b6603c08"}, + {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42b0e23f119b2b456d07ca91b307ae167cc3f6c846a7b169fca5326e32fdc6cf"}, + {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:764be71193f87d460a03f1f7385a82e226639732214b402f9aa61f0d025f0737"}, + {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c00666a3bd2f84920a4e94434f5974d7bbc57e461318d6bb34ce9cdbbc1f6b2"}, + {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ccaa88b24eebc0f849ce0a4d09e8a408ec5a94afff395eb69baf868f5183107"}, + {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c65af9088ac534313e1963443d0ec360bb2b9cba6c2909478d22c2e363d98a51"}, + {file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:206b5cf6f0c513baffaeae7bd817717140770c74528f3e4c3e1cec7871ddd61a"}, + {file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:062f60e512fc7fff8b8a9d680ff0ddaaef0193dba9fa83e679c0c5f5fbd018bc"}, + {file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:a0697803ed7d4af5e4c1adf1670af078f8fcab7a86350e969f454daf598c4960"}, + {file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:58ca98a950171f3151c603aeea9303ef6c235f692fe555e883591103da709b23"}, + {file = "pydantic_core-2.27.1-cp313-none-win32.whl", hash = "sha256:8065914ff79f7eab1599bd80406681f0ad08f8e47c880f17b416c9f8f7a26d05"}, + {file = "pydantic_core-2.27.1-cp313-none-win_amd64.whl", hash = "sha256:ba630d5e3db74c79300d9a5bdaaf6200172b107f263c98a0539eeecb857b2337"}, + {file = "pydantic_core-2.27.1-cp313-none-win_arm64.whl", hash = "sha256:45cf8588c066860b623cd11c4ba687f8d7175d5f7ef65f7129df8a394c502de5"}, + {file = "pydantic_core-2.27.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:5897bec80a09b4084aee23f9b73a9477a46c3304ad1d2d07acca19723fb1de62"}, + {file = "pydantic_core-2.27.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d0165ab2914379bd56908c02294ed8405c252250668ebcb438a55494c69f44ab"}, + {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b9af86e1d8e4cfc82c2022bfaa6f459381a50b94a29e95dcdda8442d6d83864"}, + {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f6c8a66741c5f5447e047ab0ba7a1c61d1e95580d64bce852e3df1f895c4067"}, + {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a42d6a8156ff78981f8aa56eb6394114e0dedb217cf8b729f438f643608cbcd"}, + {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:64c65f40b4cd8b0e049a8edde07e38b476da7e3aaebe63287c899d2cff253fa5"}, + {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdcf339322a3fae5cbd504edcefddd5a50d9ee00d968696846f089b4432cf78"}, + {file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bf99c8404f008750c846cb4ac4667b798a9f7de673ff719d705d9b2d6de49c5f"}, + {file = "pydantic_core-2.27.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8f1edcea27918d748c7e5e4d917297b2a0ab80cad10f86631e488b7cddf76a36"}, + {file = "pydantic_core-2.27.1-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:159cac0a3d096f79ab6a44d77a961917219707e2a130739c64d4dd46281f5c2a"}, + {file = "pydantic_core-2.27.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:029d9757eb621cc6e1848fa0b0310310de7301057f623985698ed7ebb014391b"}, + {file = "pydantic_core-2.27.1-cp38-none-win32.whl", hash = "sha256:a28af0695a45f7060e6f9b7092558a928a28553366519f64083c63a44f70e618"}, + {file = "pydantic_core-2.27.1-cp38-none-win_amd64.whl", hash = "sha256:2d4567c850905d5eaaed2f7a404e61012a51caf288292e016360aa2b96ff38d4"}, + {file = "pydantic_core-2.27.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:e9386266798d64eeb19dd3677051f5705bf873e98e15897ddb7d76f477131967"}, + {file = "pydantic_core-2.27.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4228b5b646caa73f119b1ae756216b59cc6e2267201c27d3912b592c5e323b60"}, + {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b3dfe500de26c52abe0477dde16192ac39c98f05bf2d80e76102d394bd13854"}, + {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:aee66be87825cdf72ac64cb03ad4c15ffef4143dbf5c113f64a5ff4f81477bf9"}, + {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b748c44bb9f53031c8cbc99a8a061bc181c1000c60a30f55393b6e9c45cc5bd"}, + {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ca038c7f6a0afd0b2448941b6ef9d5e1949e999f9e5517692eb6da58e9d44be"}, + {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e0bd57539da59a3e4671b90a502da9a28c72322a4f17866ba3ac63a82c4498e"}, + {file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ac6c2c45c847bbf8f91930d88716a0fb924b51e0c6dad329b793d670ec5db792"}, + {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b94d4ba43739bbe8b0ce4262bcc3b7b9f31459ad120fb595627eaeb7f9b9ca01"}, + {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:00e6424f4b26fe82d44577b4c842d7df97c20be6439e8e685d0d715feceb9fb9"}, + {file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:38de0a70160dd97540335b7ad3a74571b24f1dc3ed33f815f0880682e6880131"}, + {file = "pydantic_core-2.27.1-cp39-none-win32.whl", hash = "sha256:7ccebf51efc61634f6c2344da73e366c75e735960b5654b63d7e6f69a5885fa3"}, + {file = "pydantic_core-2.27.1-cp39-none-win_amd64.whl", hash = "sha256:a57847b090d7892f123726202b7daa20df6694cbd583b67a592e856bff603d6c"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3fa80ac2bd5856580e242dbc202db873c60a01b20309c8319b5c5986fbe53ce6"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d950caa237bb1954f1b8c9227b5065ba6875ac9771bb8ec790d956a699b78676"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e4216e64d203e39c62df627aa882f02a2438d18a5f21d7f721621f7a5d3611d"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02a3d637bd387c41d46b002f0e49c52642281edacd2740e5a42f7017feea3f2c"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:161c27ccce13b6b0c8689418da3885d3220ed2eae2ea5e9b2f7f3d48f1d52c27"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:19910754e4cc9c63bc1c7f6d73aa1cfee82f42007e407c0f413695c2f7ed777f"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:e173486019cc283dc9778315fa29a363579372fe67045e971e89b6365cc035ed"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:af52d26579b308921b73b956153066481f064875140ccd1dfd4e77db89dbb12f"}, + {file = "pydantic_core-2.27.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:981fb88516bd1ae8b0cbbd2034678a39dedc98752f264ac9bc5839d3923fa04c"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5fde892e6c697ce3e30c61b239330fc5d569a71fefd4eb6512fc6caec9dd9e2f"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:816f5aa087094099fff7edabb5e01cc370eb21aa1a1d44fe2d2aefdfb5599b31"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c10c309e18e443ddb108f0ef64e8729363adbfd92d6d57beec680f6261556f3"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98476c98b02c8e9b2eec76ac4156fd006628b1b2d0ef27e548ffa978393fd154"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c3027001c28434e7ca5a6e1e527487051136aa81803ac812be51802150d880dd"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:7699b1df36a48169cdebda7ab5a2bac265204003f153b4bd17276153d997670a"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:1c39b07d90be6b48968ddc8c19e7585052088fd7ec8d568bb31ff64c70ae3c97"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:46ccfe3032b3915586e469d4972973f893c0a2bb65669194a5bdea9bacc088c2"}, + {file = "pydantic_core-2.27.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:62ba45e21cf6571d7f716d903b5b7b6d2617e2d5d67c0923dc47b9d41369f840"}, + {file = "pydantic_core-2.27.1.tar.gz", hash = "sha256:62a763352879b84aa31058fc931884055fd75089cccbd9d58bb6afd01141b235"}, ] [package.dependencies] @@ -4161,42 +4609,46 @@ typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" [[package]] name = "pydantic-extra-types" -version = "2.9.0" +version = "2.10.1" description = "Extra Pydantic types." +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic_extra_types-2.9.0-py3-none-any.whl", hash = "sha256:f0bb975508572ba7bf3390b7337807588463b7248587e69f43b1ad7c797530d0"}, - {file = "pydantic_extra_types-2.9.0.tar.gz", hash = "sha256:e061c01636188743bb69f368dcd391f327b8cfbfede2fe1cbb1211b06601ba3b"}, + {file = "pydantic_extra_types-2.10.1-py3-none-any.whl", hash = "sha256:db2c86c04a837bbac0d2d79bbd6f5d46c4c9253db11ca3fdd36a2b282575f1e2"}, + {file = "pydantic_extra_types-2.10.1.tar.gz", hash = "sha256:e4f937af34a754b8f1fa228a2fac867091a51f56ed0e8a61d5b3a6719b13c923"}, ] [package.dependencies] pydantic = ">=2.5.2" +typing-extensions = "*" [package.extras] -all = ["pendulum (>=3.0.0,<4.0.0)", "phonenumbers (>=8,<9)", "pycountry (>=23)", "python-ulid (>=1,<2)", "python-ulid (>=1,<3)", "pytz (>=2024.1)", "semver (>=3.0.2)", "tzdata (>=2024.1)"] +all = ["pendulum (>=3.0.0,<4.0.0)", "phonenumbers (>=8,<9)", "pycountry (>=23)", "python-ulid (>=1,<2)", "python-ulid (>=1,<4)", "pytz (>=2024.1)", "semver (>=3.0.2)", "semver (>=3.0.2,<3.1.0)", "tzdata (>=2024.1)"] pendulum = ["pendulum (>=3.0.0,<4.0.0)"] phonenumbers = ["phonenumbers (>=8,<9)"] pycountry = ["pycountry (>=23)"] -python-ulid = ["python-ulid (>=1,<2)", "python-ulid (>=1,<3)"] +python-ulid = ["python-ulid (>=1,<2)", "python-ulid (>=1,<4)"] semver = ["semver (>=3.0.2)"] [[package]] name = "pydantic-settings" -version = "2.2.1" +version = "2.7.0" description = "Settings management using Pydantic" +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic_settings-2.2.1-py3-none-any.whl", hash = "sha256:0235391d26db4d2190cb9b31051c4b46882d28a51533f97440867f012d4da091"}, - {file = "pydantic_settings-2.2.1.tar.gz", hash = "sha256:00b9f6a5e95553590434c0fa01ead0b216c3e10bc54ae02e37f359948643c5ed"}, + {file = "pydantic_settings-2.7.0-py3-none-any.whl", hash = "sha256:e00c05d5fa6cbbb227c84bd7487c5c1065084119b750df7c8c1a554aed236eb5"}, + {file = "pydantic_settings-2.7.0.tar.gz", hash = "sha256:ac4bfd4a36831a48dbf8b2d9325425b549a0a6f18cea118436d728eb4f1c4d66"}, ] [package.dependencies] -pydantic = ">=2.3.0" +pydantic = ">=2.7.0" python-dotenv = ">=0.21.0" [package.extras] +azure-key-vault = ["azure-identity (>=1.16.0)", "azure-keyvault-secrets (>=4.8.0)"] toml = ["tomli (>=2.0.1)"] yaml = ["pyyaml (>=6.0.1)"] @@ -4204,6 +4656,7 @@ yaml = ["pyyaml (>=6.0.1)"] name = "pygments" version = "2.18.0" description = "Pygments is a syntax highlighting package written in Python." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -4218,6 +4671,7 @@ windows-terminal = ["colorama (>=0.4.6)"] name = "pyloess" version = "0.1.0" description = "A fast implementation of the LOESS algorithm in Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -4229,6 +4683,7 @@ files = [ name = "pymannkendall" version = "1.4.3" description = "A python package for non-parametric Mann-Kendall family of trend tests." +category = "main" optional = false python-versions = "*" files = [ @@ -4242,13 +4697,14 @@ scipy = "*" [[package]] name = "pyparsing" -version = "3.1.2" +version = "3.2.0" description = "pyparsing module - Classes and methods to define and execute parsing grammars" +category = "main" optional = false -python-versions = ">=3.6.8" +python-versions = ">=3.9" files = [ - {file = "pyparsing-3.1.2-py3-none-any.whl", hash = "sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742"}, - {file = "pyparsing-3.1.2.tar.gz", hash = "sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad"}, + {file = "pyparsing-3.2.0-py3-none-any.whl", hash = "sha256:93d9577b88da0bbea8cc8334ee8b918ed014968fd2ec383e868fb8afb1ccef84"}, + {file = "pyparsing-3.2.0.tar.gz", hash = "sha256:cbf74e27246d595d9a74b186b810f6fbb86726dbf3b9532efb343f6d7294fe9c"}, ] [package.extras] @@ -4256,38 +4712,37 @@ diagrams = ["jinja2", "railroad-diagrams"] [[package]] name = "pyproj" -version = "3.6.1" +version = "3.7.0" description = "Python interface to PROJ (cartographic projections and coordinate transformations library)" +category = "main" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" files = [ - {file = "pyproj-3.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ab7aa4d9ff3c3acf60d4b285ccec134167a948df02347585fdd934ebad8811b4"}, - {file = "pyproj-3.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4bc0472302919e59114aa140fd7213c2370d848a7249d09704f10f5b062031fe"}, - {file = "pyproj-3.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5279586013b8d6582e22b6f9e30c49796966770389a9d5b85e25a4223286cd3f"}, - {file = "pyproj-3.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80fafd1f3eb421694857f254a9bdbacd1eb22fc6c24ca74b136679f376f97d35"}, - {file = "pyproj-3.6.1-cp310-cp310-win32.whl", hash = "sha256:c41e80ddee130450dcb8829af7118f1ab69eaf8169c4bf0ee8d52b72f098dc2f"}, - {file = "pyproj-3.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:db3aedd458e7f7f21d8176f0a1d924f1ae06d725228302b872885a1c34f3119e"}, - {file = "pyproj-3.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ebfbdbd0936e178091309f6cd4fcb4decd9eab12aa513cdd9add89efa3ec2882"}, - {file = "pyproj-3.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:447db19c7efad70ff161e5e46a54ab9cc2399acebb656b6ccf63e4bc4a04b97a"}, - {file = "pyproj-3.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7e13c40183884ec7f94eb8e0f622f08f1d5716150b8d7a134de48c6110fee85"}, - {file = "pyproj-3.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65ad699e0c830e2b8565afe42bd58cc972b47d829b2e0e48ad9638386d994915"}, - {file = "pyproj-3.6.1-cp311-cp311-win32.whl", hash = "sha256:8b8acc31fb8702c54625f4d5a2a6543557bec3c28a0ef638778b7ab1d1772132"}, - {file = "pyproj-3.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:38a3361941eb72b82bd9a18f60c78b0df8408416f9340521df442cebfc4306e2"}, - {file = "pyproj-3.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1e9fbaf920f0f9b4ee62aab832be3ae3968f33f24e2e3f7fbb8c6728ef1d9746"}, - {file = "pyproj-3.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6d227a865356f225591b6732430b1d1781e946893789a609bb34f59d09b8b0f8"}, - {file = "pyproj-3.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83039e5ae04e5afc974f7d25ee0870a80a6bd6b7957c3aca5613ccbe0d3e72bf"}, - {file = "pyproj-3.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb059ba3bced6f6725961ba758649261d85ed6ce670d3e3b0a26e81cf1aa8d"}, - {file = "pyproj-3.6.1-cp312-cp312-win32.whl", hash = "sha256:2d6ff73cc6dbbce3766b6c0bce70ce070193105d8de17aa2470009463682a8eb"}, - {file = "pyproj-3.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:7a27151ddad8e1439ba70c9b4b2b617b290c39395fa9ddb7411ebb0eb86d6fb0"}, - {file = "pyproj-3.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4ba1f9b03d04d8cab24d6375609070580a26ce76eaed54631f03bab00a9c737b"}, - {file = "pyproj-3.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:18faa54a3ca475bfe6255156f2f2874e9a1c8917b0004eee9f664b86ccc513d3"}, - {file = "pyproj-3.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd43bd9a9b9239805f406fd82ba6b106bf4838d9ef37c167d3ed70383943ade1"}, - {file = "pyproj-3.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50100b2726a3ca946906cbaa789dd0749f213abf0cbb877e6de72ca7aa50e1ae"}, - {file = "pyproj-3.6.1-cp39-cp39-win32.whl", hash = "sha256:9274880263256f6292ff644ca92c46d96aa7e57a75c6df3f11d636ce845a1877"}, - {file = "pyproj-3.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:36b64c2cb6ea1cc091f329c5bd34f9c01bb5da8c8e4492c709bda6a09f96808f"}, - {file = "pyproj-3.6.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd93c1a0c6c4aedc77c0fe275a9f2aba4d59b8acf88cebfc19fe3c430cfabf4f"}, - {file = "pyproj-3.6.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6420ea8e7d2a88cb148b124429fba8cd2e0fae700a2d96eab7083c0928a85110"}, - {file = "pyproj-3.6.1.tar.gz", hash = "sha256:44aa7c704c2b7d8fb3d483bbf75af6cb2350d30a63b144279a09b75fead501bf"}, + {file = "pyproj-3.7.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:d5c7e7d24b967e328a5efd013f466804a1f226d1106ac7efc47dcc99360dbc8f"}, + {file = "pyproj-3.7.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:448958c46bd3fe2da91c89ba551ac5835e63073ca861422c6eb1af89979dfab1"}, + {file = "pyproj-3.7.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f673ca345bb92afc93d4235938ca0c9a76237aa7addf42a95965c8dc8cad9b49"}, + {file = "pyproj-3.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee60895f60cbd1a9c903ab2bc22adea63004296a1c28b8775a11cf50905cf085"}, + {file = "pyproj-3.7.0-cp310-cp310-win32.whl", hash = "sha256:0dd31b0740ee010934234f848d2d092c66146cb8d0ba009a64e41d192caa7686"}, + {file = "pyproj-3.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:7943d85ba39e89c51b920339ff63162d63bf89da161f0acb6206b0d39b11661e"}, + {file = "pyproj-3.7.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:e66d8d42dbdf232e121546c5a1dec097caf0454e4885c09a8e03cdcee0753c03"}, + {file = "pyproj-3.7.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:7764b64a0aefe40134a2828b3a40be88f6c8b7832c45d8a9f2bd592ace4b2a3b"}, + {file = "pyproj-3.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53c442c5081dc95346996f5c4323fde2caafc69c6e60b4707aa46e88244f1e04"}, + {file = "pyproj-3.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc5b305d4d5d7697885681d9b660623e328227612823d5c660e0a9566cb48838"}, + {file = "pyproj-3.7.0-cp311-cp311-win32.whl", hash = "sha256:de2b47d748dc41cccb6b3b713d4d7dc9aa1046a82141c8665026908726426abc"}, + {file = "pyproj-3.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:38cba7c4c5679e40242dd959133e95b908d3b912dd66291094fd13510e8517ff"}, + {file = "pyproj-3.7.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:8cbec92bdd6e9933ca08795c12717d1384e9b51cf4b1acf0d753db255a75c51e"}, + {file = "pyproj-3.7.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:8c4a8e4d3ba76c3adac3c087544cf92f7f9a19ea34946904a13fca48cc1c0106"}, + {file = "pyproj-3.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82624fb42aa31f6b1a860fbc0316babd07fd712642bc31022df4e9b4056bf463"}, + {file = "pyproj-3.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34e1bbb3f89c68d4a6835c40b2da8b27680eec60e8cc7cdb08c09bcc725b2b62"}, + {file = "pyproj-3.7.0-cp312-cp312-win32.whl", hash = "sha256:952515d5592167ad4436b355485f82acebed2a49b46722159e4584b75a763dd3"}, + {file = "pyproj-3.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:0692f806224e8ed82fe4acfa57268ff444fdaf9f330689f24c0d96e59480cce1"}, + {file = "pyproj-3.7.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:94e8b903a9e83448fd2379c49dec3e8cd83c9ed36f54354e68b601cef56d5426"}, + {file = "pyproj-3.7.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:64cb5c17d6f6305a8b978a40f95560c87c5b363fcac40632337955664437875a"}, + {file = "pyproj-3.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c54e9bdda7ab9c4a5af50f9d6e6ee7704e05fafd504896b96ed1208c7aea098"}, + {file = "pyproj-3.7.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24fa4e9e0abba875f9524808410cc520067eaf38fd5549ed0ef7c43ac39923c9"}, + {file = "pyproj-3.7.0-cp313-cp313-win32.whl", hash = "sha256:b9e8353fc3c79dc14d1f5ac758a1a6e4eee04102c3c0b138670f121f5ac52eb4"}, + {file = "pyproj-3.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:10a8dc6ec61af97c89ff032647d743f8dc023645773da42ef43f7ae1125b3509"}, + {file = "pyproj-3.7.0.tar.gz", hash = "sha256:bf658f4aaf815d9d03c8121650b6f0b8067265c36e31bc6660b98ef144d81813"}, ] [package.dependencies] @@ -4295,13 +4750,14 @@ certifi = "*" [[package]] name = "pytest" -version = "8.2.1" +version = "8.3.4" description = "pytest: simple powerful testing with Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "pytest-8.2.1-py3-none-any.whl", hash = "sha256:faccc5d332b8c3719f40283d0d44aa5cf101cec36f88cde9ed8f2bc0538612b1"}, - {file = "pytest-8.2.1.tar.gz", hash = "sha256:5046e5b46d8e4cac199c373041f26be56fdb81eb4e67dc11d4e10811fc3408fd"}, + {file = "pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6"}, + {file = "pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761"}, ] [package.dependencies] @@ -4309,7 +4765,7 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" -pluggy = ">=1.5,<2.0" +pluggy = ">=1.5,<2" tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] @@ -4319,6 +4775,7 @@ dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments name = "pytest-cov" version = "4.1.0" description = "Pytest plugin for measuring coverage." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4337,6 +4794,7 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale name = "pytest-httpx" version = "0.30.0" description = "Send responses to httpx." +category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -4345,16 +4803,17 @@ files = [ ] [package.dependencies] -httpx = "==0.27.*" +httpx = ">=0.27.0,<0.28.0" pytest = ">=7,<9" [package.extras] -testing = ["pytest-asyncio (==0.23.*)", "pytest-cov (==4.*)"] +testing = ["pytest-asyncio (>=0.23.0,<0.24.0)", "pytest-cov (>=4.0.0,<5.0.0)"] [[package]] name = "python-dateutil" version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ @@ -4369,6 +4828,7 @@ six = ">=1.5" name = "python-dotenv" version = "1.0.1" description = "Read key-value pairs from a .env file and set them as environment variables" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -4381,33 +4841,36 @@ cli = ["click (>=5.0)"] [[package]] name = "python-json-logger" -version = "2.0.7" -description = "A python library adding a json log formatter" +version = "3.2.0" +description = "JSON Log Formatter for the Python Logging Package" +category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "python-json-logger-2.0.7.tar.gz", hash = "sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c"}, - {file = "python_json_logger-2.0.7-py3-none-any.whl", hash = "sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd"}, + {file = "python_json_logger-3.2.0-py3-none-any.whl", hash = "sha256:d73522ddcfc6d0461394120feaddea9025dc64bf804d96357dd42fa878cc5fe8"}, + {file = "python_json_logger-3.2.0.tar.gz", hash = "sha256:2c11056458d3f56614480b24e9cb28f7aba69cbfbebddbb77c92f0ec0d4947ab"}, ] +[package.extras] +dev = ["backports.zoneinfo", "black", "build", "freezegun", "mdx_truly_sane_lists", "mike", "mkdocs", "mkdocs-awesome-pages-plugin", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-material (>=8.5)", "mkdocstrings[python]", "msgspec", "msgspec-python313-pre", "mypy", "orjson", "pylint", "pytest", "tzdata", "validate-pyproject[all]"] + [[package]] name = "python-multipart" -version = "0.0.9" +version = "0.0.19" description = "A streaming multipart parser for Python" +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "python_multipart-0.0.9-py3-none-any.whl", hash = "sha256:97ca7b8ea7b05f977dc3849c3ba99d51689822fab725c3703af7c866a0c2b215"}, - {file = "python_multipart-0.0.9.tar.gz", hash = "sha256:03f54688c663f1b7977105f021043b0793151e4cb1c1a9d4a11fc13d622c4026"}, + {file = "python_multipart-0.0.19-py3-none-any.whl", hash = "sha256:f8d5b0b9c618575bf9df01c684ded1d94a338839bdd8223838afacfb4bb2082d"}, + {file = "python_multipart-0.0.19.tar.gz", hash = "sha256:905502ef39050557b7a6af411f454bc19526529ca46ae6831508438890ce12cc"}, ] -[package.extras] -dev = ["atomicwrites (==1.4.1)", "attrs (==23.2.0)", "coverage (==7.4.1)", "hatch", "invoke (==2.2.0)", "more-itertools (==10.2.0)", "pbr (==6.0.0)", "pluggy (==1.4.0)", "py (==1.11.0)", "pytest (==8.0.0)", "pytest-cov (==4.1.0)", "pytest-timeout (==2.2.0)", "pyyaml (==6.0.1)", "ruff (==0.2.1)"] - [[package]] name = "python-slugify" version = "8.0.4" description = "A Python slugify application that also handles Unicode" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4421,210 +4884,263 @@ text-unidecode = ">=1.3" [package.extras] unidecode = ["Unidecode (>=1.1.1)"] +[[package]] +name = "python-socks" +version = "2.5.3" +description = "Core proxy (SOCKS4, SOCKS5, HTTP tunneling) functionality for Python" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "python_socks-2.5.3-py3-none-any.whl", hash = "sha256:6bc428d0e19f8043e7b8fbc8af33417e690238bd8c9c1e9215871ac18c6136ad"}, + {file = "python_socks-2.5.3.tar.gz", hash = "sha256:4414b2a24777e439758a5f4644f81509ee634e6893115fe7fd1ec482b4b5c979"}, +] + +[package.dependencies] +async-timeout = {version = ">=3.0.1", optional = true, markers = "python_version < \"3.11\" and extra == \"asyncio\""} + +[package.extras] +anyio = ["anyio (>=3.3.4,<5.0.0)"] +asyncio = ["async-timeout (>=3.0.1)"] +curio = ["curio (>=1.4)"] +trio = ["trio (>=0.16.0)"] + [[package]] name = "pytz" -version = "2024.1" +version = "2024.2" description = "World timezone definitions, modern and historical" +category = "main" optional = false python-versions = "*" files = [ - {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, - {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, + {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"}, + {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, ] [[package]] name = "pywin32" -version = "306" +version = "308" description = "Python for Window Extensions" +category = "main" optional = false python-versions = "*" files = [ - {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, - {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, - {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, - {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, - {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, - {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, - {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, - {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, - {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"}, - {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"}, - {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"}, - {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"}, - {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"}, - {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, + {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, + {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, + {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"}, + {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, + {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, + {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, + {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"}, + {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"}, + {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"}, + {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"}, + {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"}, + {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"}, + {file = "pywin32-308-cp37-cp37m-win32.whl", hash = "sha256:1f696ab352a2ddd63bd07430080dd598e6369152ea13a25ebcdd2f503a38f1ff"}, + {file = "pywin32-308-cp37-cp37m-win_amd64.whl", hash = "sha256:13dcb914ed4347019fbec6697a01a0aec61019c1046c2b905410d197856326a6"}, + {file = "pywin32-308-cp38-cp38-win32.whl", hash = "sha256:5794e764ebcabf4ff08c555b31bd348c9025929371763b2183172ff4708152f0"}, + {file = "pywin32-308-cp38-cp38-win_amd64.whl", hash = "sha256:3b92622e29d651c6b783e368ba7d6722b1634b8e70bd376fd7610fe1992e19de"}, + {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, + {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, ] [[package]] name = "pywinpty" -version = "2.0.13" +version = "2.0.14" description = "Pseudo terminal support for Windows from Python." +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "pywinpty-2.0.13-cp310-none-win_amd64.whl", hash = "sha256:697bff211fb5a6508fee2dc6ff174ce03f34a9a233df9d8b5fe9c8ce4d5eaf56"}, - {file = "pywinpty-2.0.13-cp311-none-win_amd64.whl", hash = "sha256:b96fb14698db1284db84ca38c79f15b4cfdc3172065b5137383910567591fa99"}, - {file = "pywinpty-2.0.13-cp312-none-win_amd64.whl", hash = "sha256:2fd876b82ca750bb1333236ce98488c1be96b08f4f7647cfdf4129dfad83c2d4"}, - {file = "pywinpty-2.0.13-cp38-none-win_amd64.whl", hash = "sha256:61d420c2116c0212808d31625611b51caf621fe67f8a6377e2e8b617ea1c1f7d"}, - {file = "pywinpty-2.0.13-cp39-none-win_amd64.whl", hash = "sha256:71cb613a9ee24174730ac7ae439fd179ca34ccb8c5349e8d7b72ab5dea2c6f4b"}, - {file = "pywinpty-2.0.13.tar.gz", hash = "sha256:c34e32351a3313ddd0d7da23d27f835c860d32fe4ac814d372a3ea9594f41dde"}, + {file = "pywinpty-2.0.14-cp310-none-win_amd64.whl", hash = "sha256:0b149c2918c7974f575ba79f5a4aad58bd859a52fa9eb1296cc22aa412aa411f"}, + {file = "pywinpty-2.0.14-cp311-none-win_amd64.whl", hash = "sha256:cf2a43ac7065b3e0dc8510f8c1f13a75fb8fde805efa3b8cff7599a1ef497bc7"}, + {file = "pywinpty-2.0.14-cp312-none-win_amd64.whl", hash = "sha256:55dad362ef3e9408ade68fd173e4f9032b3ce08f68cfe7eacb2c263ea1179737"}, + {file = "pywinpty-2.0.14-cp313-none-win_amd64.whl", hash = "sha256:074fb988a56ec79ca90ed03a896d40707131897cefb8f76f926e3834227f2819"}, + {file = "pywinpty-2.0.14-cp39-none-win_amd64.whl", hash = "sha256:5725fd56f73c0531ec218663bd8c8ff5acc43c78962fab28564871b5fce053fd"}, + {file = "pywinpty-2.0.14.tar.gz", hash = "sha256:18bd9529e4a5daf2d9719aa17788ba6013e594ae94c5a0c27e83df3278b0660e"}, ] [[package]] name = "pyyaml" -version = "6.0.1" +version = "6.0.2" description = "YAML parser and emitter for Python" +category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, - {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, - {file = "PyYAML-6.0.1-cp310-cp310-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"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, - {file = "PyYAML-6.0.1-cp311-cp311-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_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, - {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"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, - {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, - {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, - {file = "PyYAML-6.0.1-cp38-cp38-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"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, - {file = "PyYAML-6.0.1-cp39-cp39-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"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, ] [[package]] name = "pyzmq" -version = "26.0.3" +version = "26.2.0" description = "Python bindings for 0MQ" +category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "pyzmq-26.0.3-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:44dd6fc3034f1eaa72ece33588867df9e006a7303725a12d64c3dff92330f625"}, - {file = "pyzmq-26.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:acb704195a71ac5ea5ecf2811c9ee19ecdc62b91878528302dd0be1b9451cc90"}, - {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dbb9c997932473a27afa93954bb77a9f9b786b4ccf718d903f35da3232317de"}, - {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6bcb34f869d431799c3ee7d516554797f7760cb2198ecaa89c3f176f72d062be"}, - {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38ece17ec5f20d7d9b442e5174ae9f020365d01ba7c112205a4d59cf19dc38ee"}, - {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:ba6e5e6588e49139a0979d03a7deb9c734bde647b9a8808f26acf9c547cab1bf"}, - {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3bf8b000a4e2967e6dfdd8656cd0757d18c7e5ce3d16339e550bd462f4857e59"}, - {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:2136f64fbb86451dbbf70223635a468272dd20075f988a102bf8a3f194a411dc"}, - {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e8918973fbd34e7814f59143c5f600ecd38b8038161239fd1a3d33d5817a38b8"}, - {file = "pyzmq-26.0.3-cp310-cp310-win32.whl", hash = "sha256:0aaf982e68a7ac284377d051c742610220fd06d330dcd4c4dbb4cdd77c22a537"}, - {file = "pyzmq-26.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:f1a9b7d00fdf60b4039f4455afd031fe85ee8305b019334b72dcf73c567edc47"}, - {file = "pyzmq-26.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:80b12f25d805a919d53efc0a5ad7c0c0326f13b4eae981a5d7b7cc343318ebb7"}, - {file = "pyzmq-26.0.3-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:a72a84570f84c374b4c287183debc776dc319d3e8ce6b6a0041ce2e400de3f32"}, - {file = "pyzmq-26.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7ca684ee649b55fd8f378127ac8462fb6c85f251c2fb027eb3c887e8ee347bcd"}, - {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e222562dc0f38571c8b1ffdae9d7adb866363134299264a1958d077800b193b7"}, - {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f17cde1db0754c35a91ac00b22b25c11da6eec5746431d6e5092f0cd31a3fea9"}, - {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b7c0c0b3244bb2275abe255d4a30c050d541c6cb18b870975553f1fb6f37527"}, - {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:ac97a21de3712afe6a6c071abfad40a6224fd14fa6ff0ff8d0c6e6cd4e2f807a"}, - {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:88b88282e55fa39dd556d7fc04160bcf39dea015f78e0cecec8ff4f06c1fc2b5"}, - {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:72b67f966b57dbd18dcc7efbc1c7fc9f5f983e572db1877081f075004614fcdd"}, - {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f4b6cecbbf3b7380f3b61de3a7b93cb721125dc125c854c14ddc91225ba52f83"}, - {file = "pyzmq-26.0.3-cp311-cp311-win32.whl", hash = "sha256:eed56b6a39216d31ff8cd2f1d048b5bf1700e4b32a01b14379c3b6dde9ce3aa3"}, - {file = "pyzmq-26.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:3191d312c73e3cfd0f0afdf51df8405aafeb0bad71e7ed8f68b24b63c4f36500"}, - {file = "pyzmq-26.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:b6907da3017ef55139cf0e417c5123a84c7332520e73a6902ff1f79046cd3b94"}, - {file = "pyzmq-26.0.3-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:068ca17214038ae986d68f4a7021f97e187ed278ab6dccb79f837d765a54d753"}, - {file = "pyzmq-26.0.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7821d44fe07335bea256b9f1f41474a642ca55fa671dfd9f00af8d68a920c2d4"}, - {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eeb438a26d87c123bb318e5f2b3d86a36060b01f22fbdffd8cf247d52f7c9a2b"}, - {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:69ea9d6d9baa25a4dc9cef5e2b77b8537827b122214f210dd925132e34ae9b12"}, - {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7daa3e1369355766dea11f1d8ef829905c3b9da886ea3152788dc25ee6079e02"}, - {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:6ca7a9a06b52d0e38ccf6bca1aeff7be178917893f3883f37b75589d42c4ac20"}, - {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1b7d0e124948daa4d9686d421ef5087c0516bc6179fdcf8828b8444f8e461a77"}, - {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:e746524418b70f38550f2190eeee834db8850088c834d4c8406fbb9bc1ae10b2"}, - {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:6b3146f9ae6af82c47a5282ac8803523d381b3b21caeae0327ed2f7ecb718798"}, - {file = "pyzmq-26.0.3-cp312-cp312-win32.whl", hash = "sha256:2b291d1230845871c00c8462c50565a9cd6026fe1228e77ca934470bb7d70ea0"}, - {file = "pyzmq-26.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:926838a535c2c1ea21c903f909a9a54e675c2126728c21381a94ddf37c3cbddf"}, - {file = "pyzmq-26.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:5bf6c237f8c681dfb91b17f8435b2735951f0d1fad10cc5dfd96db110243370b"}, - {file = "pyzmq-26.0.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0c0991f5a96a8e620f7691e61178cd8f457b49e17b7d9cfa2067e2a0a89fc1d5"}, - {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:dbf012d8fcb9f2cf0643b65df3b355fdd74fc0035d70bb5c845e9e30a3a4654b"}, - {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:01fbfbeb8249a68d257f601deb50c70c929dc2dfe683b754659569e502fbd3aa"}, - {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c8eb19abe87029c18f226d42b8a2c9efdd139d08f8bf6e085dd9075446db450"}, - {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:5344b896e79800af86ad643408ca9aa303a017f6ebff8cee5a3163c1e9aec987"}, - {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:204e0f176fd1d067671157d049466869b3ae1fc51e354708b0dc41cf94e23a3a"}, - {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a42db008d58530efa3b881eeee4991146de0b790e095f7ae43ba5cc612decbc5"}, - {file = "pyzmq-26.0.3-cp37-cp37m-win32.whl", hash = "sha256:8d7a498671ca87e32b54cb47c82a92b40130a26c5197d392720a1bce1b3c77cf"}, - {file = "pyzmq-26.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:3b4032a96410bdc760061b14ed6a33613ffb7f702181ba999df5d16fb96ba16a"}, - {file = "pyzmq-26.0.3-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:2cc4e280098c1b192c42a849de8de2c8e0f3a84086a76ec5b07bfee29bda7d18"}, - {file = "pyzmq-26.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5bde86a2ed3ce587fa2b207424ce15b9a83a9fa14422dcc1c5356a13aed3df9d"}, - {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:34106f68e20e6ff253c9f596ea50397dbd8699828d55e8fa18bd4323d8d966e6"}, - {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ebbbd0e728af5db9b04e56389e2299a57ea8b9dd15c9759153ee2455b32be6ad"}, - {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f6b1d1c631e5940cac5a0b22c5379c86e8df6a4ec277c7a856b714021ab6cfad"}, - {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e891ce81edd463b3b4c3b885c5603c00141151dd9c6936d98a680c8c72fe5c67"}, - {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:9b273ecfbc590a1b98f014ae41e5cf723932f3b53ba9367cfb676f838038b32c"}, - {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b32bff85fb02a75ea0b68f21e2412255b5731f3f389ed9aecc13a6752f58ac97"}, - {file = "pyzmq-26.0.3-cp38-cp38-win32.whl", hash = "sha256:f6c21c00478a7bea93caaaef9e7629145d4153b15a8653e8bb4609d4bc70dbfc"}, - {file = "pyzmq-26.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:3401613148d93ef0fd9aabdbddb212de3db7a4475367f49f590c837355343972"}, - {file = "pyzmq-26.0.3-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:2ed8357f4c6e0daa4f3baf31832df8a33334e0fe5b020a61bc8b345a3db7a606"}, - {file = "pyzmq-26.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c1c8f2a2ca45292084c75bb6d3a25545cff0ed931ed228d3a1810ae3758f975f"}, - {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:b63731993cdddcc8e087c64e9cf003f909262b359110070183d7f3025d1c56b5"}, - {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b3cd31f859b662ac5d7f4226ec7d8bd60384fa037fc02aee6ff0b53ba29a3ba8"}, - {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:115f8359402fa527cf47708d6f8a0f8234f0e9ca0cab7c18c9c189c194dbf620"}, - {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:715bdf952b9533ba13dfcf1f431a8f49e63cecc31d91d007bc1deb914f47d0e4"}, - {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:e1258c639e00bf5e8a522fec6c3eaa3e30cf1c23a2f21a586be7e04d50c9acab"}, - {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:15c59e780be8f30a60816a9adab900c12a58d79c1ac742b4a8df044ab2a6d920"}, - {file = "pyzmq-26.0.3-cp39-cp39-win32.whl", hash = "sha256:d0cdde3c78d8ab5b46595054e5def32a755fc028685add5ddc7403e9f6de9879"}, - {file = "pyzmq-26.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:ce828058d482ef860746bf532822842e0ff484e27f540ef5c813d516dd8896d2"}, - {file = "pyzmq-26.0.3-cp39-cp39-win_arm64.whl", hash = "sha256:788f15721c64109cf720791714dc14afd0f449d63f3a5487724f024345067381"}, - {file = "pyzmq-26.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2c18645ef6294d99b256806e34653e86236eb266278c8ec8112622b61db255de"}, - {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7e6bc96ebe49604df3ec2c6389cc3876cabe475e6bfc84ced1bf4e630662cb35"}, - {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:971e8990c5cc4ddcff26e149398fc7b0f6a042306e82500f5e8db3b10ce69f84"}, - {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8416c23161abd94cc7da80c734ad7c9f5dbebdadfdaa77dad78244457448223"}, - {file = "pyzmq-26.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:082a2988364b60bb5de809373098361cf1dbb239623e39e46cb18bc035ed9c0c"}, - {file = "pyzmq-26.0.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d57dfbf9737763b3a60d26e6800e02e04284926329aee8fb01049635e957fe81"}, - {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:77a85dca4c2430ac04dc2a2185c2deb3858a34fe7f403d0a946fa56970cf60a1"}, - {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4c82a6d952a1d555bf4be42b6532927d2a5686dd3c3e280e5f63225ab47ac1f5"}, - {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4496b1282c70c442809fc1b151977c3d967bfb33e4e17cedbf226d97de18f709"}, - {file = "pyzmq-26.0.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:e4946d6bdb7ba972dfda282f9127e5756d4f299028b1566d1245fa0d438847e6"}, - {file = "pyzmq-26.0.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:03c0ae165e700364b266876d712acb1ac02693acd920afa67da2ebb91a0b3c09"}, - {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:3e3070e680f79887d60feeda051a58d0ac36622e1759f305a41059eff62c6da7"}, - {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6ca08b840fe95d1c2bd9ab92dac5685f949fc6f9ae820ec16193e5ddf603c3b2"}, - {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e76654e9dbfb835b3518f9938e565c7806976c07b37c33526b574cc1a1050480"}, - {file = "pyzmq-26.0.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:871587bdadd1075b112e697173e946a07d722459d20716ceb3d1bd6c64bd08ce"}, - {file = "pyzmq-26.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d0a2d1bd63a4ad79483049b26514e70fa618ce6115220da9efdff63688808b17"}, - {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0270b49b6847f0d106d64b5086e9ad5dc8a902413b5dbbb15d12b60f9c1747a4"}, - {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:703c60b9910488d3d0954ca585c34f541e506a091a41930e663a098d3b794c67"}, - {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:74423631b6be371edfbf7eabb02ab995c2563fee60a80a30829176842e71722a"}, - {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4adfbb5451196842a88fda3612e2c0414134874bffb1c2ce83ab4242ec9e027d"}, - {file = "pyzmq-26.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3516119f4f9b8671083a70b6afaa0a070f5683e431ab3dc26e9215620d7ca1ad"}, - {file = "pyzmq-26.0.3.tar.gz", hash = "sha256:dba7d9f2e047dfa2bca3b01f4f84aa5246725203d6284e3790f2ca15fba6b40a"}, + {file = "pyzmq-26.2.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:ddf33d97d2f52d89f6e6e7ae66ee35a4d9ca6f36eda89c24591b0c40205a3629"}, + {file = "pyzmq-26.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dacd995031a01d16eec825bf30802fceb2c3791ef24bcce48fa98ce40918c27b"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89289a5ee32ef6c439086184529ae060c741334b8970a6855ec0b6ad3ff28764"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5506f06d7dc6ecf1efacb4a013b1f05071bb24b76350832c96449f4a2d95091c"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ea039387c10202ce304af74def5021e9adc6297067f3441d348d2b633e8166a"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a2224fa4a4c2ee872886ed00a571f5e967c85e078e8e8c2530a2fb01b3309b88"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:28ad5233e9c3b52d76196c696e362508959741e1a005fb8fa03b51aea156088f"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1c17211bc037c7d88e85ed8b7d8f7e52db6dc8eca5590d162717c654550f7282"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b8f86dd868d41bea9a5f873ee13bf5551c94cf6bc51baebc6f85075971fe6eea"}, + {file = "pyzmq-26.2.0-cp310-cp310-win32.whl", hash = "sha256:46a446c212e58456b23af260f3d9fb785054f3e3653dbf7279d8f2b5546b21c2"}, + {file = "pyzmq-26.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:49d34ab71db5a9c292a7644ce74190b1dd5a3475612eefb1f8be1d6961441971"}, + {file = "pyzmq-26.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:bfa832bfa540e5b5c27dcf5de5d82ebc431b82c453a43d141afb1e5d2de025fa"}, + {file = "pyzmq-26.2.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:8f7e66c7113c684c2b3f1c83cdd3376103ee0ce4c49ff80a648643e57fb22218"}, + {file = "pyzmq-26.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3a495b30fc91db2db25120df5847d9833af237546fd59170701acd816ccc01c4"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77eb0968da535cba0470a5165468b2cac7772cfb569977cff92e240f57e31bef"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ace4f71f1900a548f48407fc9be59c6ba9d9aaf658c2eea6cf2779e72f9f317"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:92a78853d7280bffb93df0a4a6a2498cba10ee793cc8076ef797ef2f74d107cf"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:689c5d781014956a4a6de61d74ba97b23547e431e9e7d64f27d4922ba96e9d6e"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0aca98bc423eb7d153214b2df397c6421ba6373d3397b26c057af3c904452e37"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f3496d76b89d9429a656293744ceca4d2ac2a10ae59b84c1da9b5165f429ad3"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5c2b3bfd4b9689919db068ac6c9911f3fcb231c39f7dd30e3138be94896d18e6"}, + {file = "pyzmq-26.2.0-cp311-cp311-win32.whl", hash = "sha256:eac5174677da084abf378739dbf4ad245661635f1600edd1221f150b165343f4"}, + {file = "pyzmq-26.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:5a509df7d0a83a4b178d0f937ef14286659225ef4e8812e05580776c70e155d5"}, + {file = "pyzmq-26.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:c0e6091b157d48cbe37bd67233318dbb53e1e6327d6fc3bb284afd585d141003"}, + {file = "pyzmq-26.2.0-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:ded0fc7d90fe93ae0b18059930086c51e640cdd3baebdc783a695c77f123dcd9"}, + {file = "pyzmq-26.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:17bf5a931c7f6618023cdacc7081f3f266aecb68ca692adac015c383a134ca52"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55cf66647e49d4621a7e20c8d13511ef1fe1efbbccf670811864452487007e08"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4661c88db4a9e0f958c8abc2b97472e23061f0bc737f6f6179d7a27024e1faa5"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea7f69de383cb47522c9c208aec6dd17697db7875a4674c4af3f8cfdac0bdeae"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:7f98f6dfa8b8ccaf39163ce872bddacca38f6a67289116c8937a02e30bbe9711"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e3e0210287329272539eea617830a6a28161fbbd8a3271bf4150ae3e58c5d0e6"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6b274e0762c33c7471f1a7471d1a2085b1a35eba5cdc48d2ae319f28b6fc4de3"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:29c6a4635eef69d68a00321e12a7d2559fe2dfccfa8efae3ffb8e91cd0b36a8b"}, + {file = "pyzmq-26.2.0-cp312-cp312-win32.whl", hash = "sha256:989d842dc06dc59feea09e58c74ca3e1678c812a4a8a2a419046d711031f69c7"}, + {file = "pyzmq-26.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:2a50625acdc7801bc6f74698c5c583a491c61d73c6b7ea4dee3901bb99adb27a"}, + {file = "pyzmq-26.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:4d29ab8592b6ad12ebbf92ac2ed2bedcfd1cec192d8e559e2e099f648570e19b"}, + {file = "pyzmq-26.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9dd8cd1aeb00775f527ec60022004d030ddc51d783d056e3e23e74e623e33726"}, + {file = "pyzmq-26.2.0-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:28c812d9757fe8acecc910c9ac9dafd2ce968c00f9e619db09e9f8f54c3a68a3"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d80b1dd99c1942f74ed608ddb38b181b87476c6a966a88a950c7dee118fdf50"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c997098cc65e3208eca09303630e84d42718620e83b733d0fd69543a9cab9cb"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ad1bc8d1b7a18497dda9600b12dc193c577beb391beae5cd2349184db40f187"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:bea2acdd8ea4275e1278350ced63da0b166421928276c7c8e3f9729d7402a57b"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:23f4aad749d13698f3f7b64aad34f5fc02d6f20f05999eebc96b89b01262fb18"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:a4f96f0d88accc3dbe4a9025f785ba830f968e21e3e2c6321ccdfc9aef755115"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ced65e5a985398827cc9276b93ef6dfabe0273c23de8c7931339d7e141c2818e"}, + {file = "pyzmq-26.2.0-cp313-cp313-win32.whl", hash = "sha256:31507f7b47cc1ead1f6e86927f8ebb196a0bab043f6345ce070f412a59bf87b5"}, + {file = "pyzmq-26.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:70fc7fcf0410d16ebdda9b26cbd8bf8d803d220a7f3522e060a69a9c87bf7bad"}, + {file = "pyzmq-26.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:c3789bd5768ab5618ebf09cef6ec2b35fed88709b104351748a63045f0ff9797"}, + {file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:034da5fc55d9f8da09015d368f519478a52675e558c989bfcb5cf6d4e16a7d2a"}, + {file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:c92d73464b886931308ccc45b2744e5968cbaade0b1d6aeb40d8ab537765f5bc"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:794a4562dcb374f7dbbfb3f51d28fb40123b5a2abadee7b4091f93054909add5"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aee22939bb6075e7afededabad1a56a905da0b3c4e3e0c45e75810ebe3a52672"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ae90ff9dad33a1cfe947d2c40cb9cb5e600d759ac4f0fd22616ce6540f72797"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:43a47408ac52647dfabbc66a25b05b6a61700b5165807e3fbd40063fcaf46386"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:25bf2374a2a8433633c65ccb9553350d5e17e60c8eb4de4d92cc6bd60f01d306"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:007137c9ac9ad5ea21e6ad97d3489af654381324d5d3ba614c323f60dab8fae6"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:470d4a4f6d48fb34e92d768b4e8a5cc3780db0d69107abf1cd7ff734b9766eb0"}, + {file = "pyzmq-26.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3b55a4229ce5da9497dd0452b914556ae58e96a4381bb6f59f1305dfd7e53fc8"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9cb3a6460cdea8fe8194a76de8895707e61ded10ad0be97188cc8463ffa7e3a8"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8ab5cad923cc95c87bffee098a27856c859bd5d0af31bd346035aa816b081fe1"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ed69074a610fad1c2fda66180e7b2edd4d31c53f2d1872bc2d1211563904cd9"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:cccba051221b916a4f5e538997c45d7d136a5646442b1231b916d0164067ea27"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:0eaa83fc4c1e271c24eaf8fb083cbccef8fde77ec8cd45f3c35a9a123e6da097"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:9edda2df81daa129b25a39b86cb57dfdfe16f7ec15b42b19bfac503360d27a93"}, + {file = "pyzmq-26.2.0-cp37-cp37m-win32.whl", hash = "sha256:ea0eb6af8a17fa272f7b98d7bebfab7836a0d62738e16ba380f440fceca2d951"}, + {file = "pyzmq-26.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:4ff9dc6bc1664bb9eec25cd17506ef6672d506115095411e237d571e92a58231"}, + {file = "pyzmq-26.2.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:2eb7735ee73ca1b0d71e0e67c3739c689067f055c764f73aac4cc8ecf958ee3f"}, + {file = "pyzmq-26.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a534f43bc738181aa7cbbaf48e3eca62c76453a40a746ab95d4b27b1111a7d2"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:aedd5dd8692635813368e558a05266b995d3d020b23e49581ddd5bbe197a8ab6"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8be4700cd8bb02cc454f630dcdf7cfa99de96788b80c51b60fe2fe1dac480289"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fcc03fa4997c447dce58264e93b5aa2d57714fbe0f06c07b7785ae131512732"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:402b190912935d3db15b03e8f7485812db350d271b284ded2b80d2e5704be780"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8685fa9c25ff00f550c1fec650430c4b71e4e48e8d852f7ddcf2e48308038640"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:76589c020680778f06b7e0b193f4b6dd66d470234a16e1df90329f5e14a171cd"}, + {file = "pyzmq-26.2.0-cp38-cp38-win32.whl", hash = "sha256:8423c1877d72c041f2c263b1ec6e34360448decfb323fa8b94e85883043ef988"}, + {file = "pyzmq-26.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:76589f2cd6b77b5bdea4fca5992dc1c23389d68b18ccc26a53680ba2dc80ff2f"}, + {file = "pyzmq-26.2.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:b1d464cb8d72bfc1a3adc53305a63a8e0cac6bc8c5a07e8ca190ab8d3faa43c2"}, + {file = "pyzmq-26.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4da04c48873a6abdd71811c5e163bd656ee1b957971db7f35140a2d573f6949c"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:d049df610ac811dcffdc147153b414147428567fbbc8be43bb8885f04db39d98"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05590cdbc6b902101d0e65d6a4780af14dc22914cc6ab995d99b85af45362cc9"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c811cfcd6a9bf680236c40c6f617187515269ab2912f3d7e8c0174898e2519db"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6835dd60355593de10350394242b5757fbbd88b25287314316f266e24c61d073"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc6bee759a6bddea5db78d7dcd609397449cb2d2d6587f48f3ca613b19410cfc"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c530e1eecd036ecc83c3407f77bb86feb79916d4a33d11394b8234f3bd35b940"}, + {file = "pyzmq-26.2.0-cp39-cp39-win32.whl", hash = "sha256:367b4f689786fca726ef7a6c5ba606958b145b9340a5e4808132cc65759abd44"}, + {file = "pyzmq-26.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:e6fa2e3e683f34aea77de8112f6483803c96a44fd726d7358b9888ae5bb394ec"}, + {file = "pyzmq-26.2.0-cp39-cp39-win_arm64.whl", hash = "sha256:7445be39143a8aa4faec43b076e06944b8f9d0701b669df4af200531b21e40bb"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:706e794564bec25819d21a41c31d4df2d48e1cc4b061e8d345d7fb4dd3e94072"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b435f2753621cd36e7c1762156815e21c985c72b19135dac43a7f4f31d28dd1"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:160c7e0a5eb178011e72892f99f918c04a131f36056d10d9c1afb223fc952c2d"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c4a71d5d6e7b28a47a394c0471b7e77a0661e2d651e7ae91e0cab0a587859ca"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:90412f2db8c02a3864cbfc67db0e3dcdbda336acf1c469526d3e869394fe001c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2ea4ad4e6a12e454de05f2949d4beddb52460f3de7c8b9d5c46fbb7d7222e02c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fc4f7a173a5609631bb0c42c23d12c49df3966f89f496a51d3eb0ec81f4519d6"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:878206a45202247781472a2d99df12a176fef806ca175799e1c6ad263510d57c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17c412bad2eb9468e876f556eb4ee910e62d721d2c7a53c7fa31e643d35352e6"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:0d987a3ae5a71c6226b203cfd298720e0086c7fe7c74f35fa8edddfbd6597eed"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:39887ac397ff35b7b775db7201095fc6310a35fdbae85bac4523f7eb3b840e20"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fdb5b3e311d4d4b0eb8b3e8b4d1b0a512713ad7e6a68791d0923d1aec433d919"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:226af7dcb51fdb0109f0016449b357e182ea0ceb6b47dfb5999d569e5db161d5"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bed0e799e6120b9c32756203fb9dfe8ca2fb8467fed830c34c877e25638c3fc"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:29c7947c594e105cb9e6c466bace8532dc1ca02d498684128b339799f5248277"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cdeabcff45d1c219636ee2e54d852262e5c2e085d6cb476d938aee8d921356b3"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35cffef589bcdc587d06f9149f8d5e9e8859920a071df5a2671de2213bef592a"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18c8dc3b7468d8b4bdf60ce9d7141897da103c7a4690157b32b60acb45e333e6"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7133d0a1677aec369d67dd78520d3fa96dd7f3dcec99d66c1762870e5ea1a50a"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6a96179a24b14fa6428cbfc08641c779a53f8fcec43644030328f44034c7f1f4"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4f78c88905461a9203eac9faac157a2a0dbba84a0fd09fd29315db27be40af9f"}, + {file = "pyzmq-26.2.0.tar.gz", hash = "sha256:070672c258581c8e4f640b5159297580a9974b026043bd4ab0470be9ed324f1f"}, ] [package.dependencies] @@ -4632,19 +5148,21 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} [[package]] name = "readchar" -version = "4.1.0" +version = "4.2.1" description = "Library to easily read single chars and key strokes" +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "readchar-4.1.0-py3-none-any.whl", hash = "sha256:d163680656b34f263fb5074023db44b999c68ff31ab394445ebfd1a2a41fe9a2"}, - {file = "readchar-4.1.0.tar.gz", hash = "sha256:6f44d1b5f0fd93bd93236eac7da39609f15df647ab9cea39f5bc7478b3344b99"}, + {file = "readchar-4.2.1-py3-none-any.whl", hash = "sha256:a769305cd3994bb5fa2764aa4073452dc105a4ec39068ffe6efd3c20c60acc77"}, + {file = "readchar-4.2.1.tar.gz", hash = "sha256:91ce3faf07688de14d800592951e5575e9c7a3213738ed01d394dcc949b79adb"}, ] [[package]] name = "referencing" version = "0.35.1" description = "JSON Referencing + Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -4658,101 +5176,118 @@ rpds-py = ">=0.7.0" [[package]] name = "regex" -version = "2024.7.24" +version = "2024.11.6" description = "Alternative regular expression module, to replace re." +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "regex-2024.7.24-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:228b0d3f567fafa0633aee87f08b9276c7062da9616931382993c03808bb68ce"}, - {file = "regex-2024.7.24-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3426de3b91d1bc73249042742f45c2148803c111d1175b283270177fdf669024"}, - {file = "regex-2024.7.24-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f273674b445bcb6e4409bf8d1be67bc4b58e8b46fd0d560055d515b8830063cd"}, - {file = "regex-2024.7.24-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23acc72f0f4e1a9e6e9843d6328177ae3074b4182167e34119ec7233dfeccf53"}, - {file = "regex-2024.7.24-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65fd3d2e228cae024c411c5ccdffae4c315271eee4a8b839291f84f796b34eca"}, - {file = "regex-2024.7.24-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c414cbda77dbf13c3bc88b073a1a9f375c7b0cb5e115e15d4b73ec3a2fbc6f59"}, - {file = "regex-2024.7.24-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf7a89eef64b5455835f5ed30254ec19bf41f7541cd94f266ab7cbd463f00c41"}, - {file = "regex-2024.7.24-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19c65b00d42804e3fbea9708f0937d157e53429a39b7c61253ff15670ff62cb5"}, - {file = "regex-2024.7.24-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7a5486ca56c8869070a966321d5ab416ff0f83f30e0e2da1ab48815c8d165d46"}, - {file = "regex-2024.7.24-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6f51f9556785e5a203713f5efd9c085b4a45aecd2a42573e2b5041881b588d1f"}, - {file = "regex-2024.7.24-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:a4997716674d36a82eab3e86f8fa77080a5d8d96a389a61ea1d0e3a94a582cf7"}, - {file = "regex-2024.7.24-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:c0abb5e4e8ce71a61d9446040c1e86d4e6d23f9097275c5bd49ed978755ff0fe"}, - {file = "regex-2024.7.24-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:18300a1d78cf1290fa583cd8b7cde26ecb73e9f5916690cf9d42de569c89b1ce"}, - {file = "regex-2024.7.24-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:416c0e4f56308f34cdb18c3f59849479dde5b19febdcd6e6fa4d04b6c31c9faa"}, - {file = "regex-2024.7.24-cp310-cp310-win32.whl", hash = "sha256:fb168b5924bef397b5ba13aabd8cf5df7d3d93f10218d7b925e360d436863f66"}, - {file = "regex-2024.7.24-cp310-cp310-win_amd64.whl", hash = "sha256:6b9fc7e9cc983e75e2518496ba1afc524227c163e43d706688a6bb9eca41617e"}, - {file = "regex-2024.7.24-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:382281306e3adaaa7b8b9ebbb3ffb43358a7bbf585fa93821300a418bb975281"}, - {file = "regex-2024.7.24-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4fdd1384619f406ad9037fe6b6eaa3de2749e2e12084abc80169e8e075377d3b"}, - {file = "regex-2024.7.24-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3d974d24edb231446f708c455fd08f94c41c1ff4f04bcf06e5f36df5ef50b95a"}, - {file = "regex-2024.7.24-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2ec4419a3fe6cf8a4795752596dfe0adb4aea40d3683a132bae9c30b81e8d73"}, - {file = "regex-2024.7.24-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb563dd3aea54c797adf513eeec819c4213d7dbfc311874eb4fd28d10f2ff0f2"}, - {file = "regex-2024.7.24-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:45104baae8b9f67569f0f1dca5e1f1ed77a54ae1cd8b0b07aba89272710db61e"}, - {file = "regex-2024.7.24-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:994448ee01864501912abf2bad9203bffc34158e80fe8bfb5b031f4f8e16da51"}, - {file = "regex-2024.7.24-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3fac296f99283ac232d8125be932c5cd7644084a30748fda013028c815ba3364"}, - {file = "regex-2024.7.24-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7e37e809b9303ec3a179085415cb5f418ecf65ec98cdfe34f6a078b46ef823ee"}, - {file = "regex-2024.7.24-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:01b689e887f612610c869421241e075c02f2e3d1ae93a037cb14f88ab6a8934c"}, - {file = "regex-2024.7.24-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f6442f0f0ff81775eaa5b05af8a0ffa1dda36e9cf6ec1e0d3d245e8564b684ce"}, - {file = "regex-2024.7.24-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:871e3ab2838fbcb4e0865a6e01233975df3a15e6fce93b6f99d75cacbd9862d1"}, - {file = "regex-2024.7.24-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c918b7a1e26b4ab40409820ddccc5d49871a82329640f5005f73572d5eaa9b5e"}, - {file = "regex-2024.7.24-cp311-cp311-win32.whl", hash = "sha256:2dfbb8baf8ba2c2b9aa2807f44ed272f0913eeeba002478c4577b8d29cde215c"}, - {file = "regex-2024.7.24-cp311-cp311-win_amd64.whl", hash = "sha256:538d30cd96ed7d1416d3956f94d54e426a8daf7c14527f6e0d6d425fcb4cca52"}, - {file = "regex-2024.7.24-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:fe4ebef608553aff8deb845c7f4f1d0740ff76fa672c011cc0bacb2a00fbde86"}, - {file = "regex-2024.7.24-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:74007a5b25b7a678459f06559504f1eec2f0f17bca218c9d56f6a0a12bfffdad"}, - {file = "regex-2024.7.24-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7df9ea48641da022c2a3c9c641650cd09f0cd15e8908bf931ad538f5ca7919c9"}, - {file = "regex-2024.7.24-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a1141a1dcc32904c47f6846b040275c6e5de0bf73f17d7a409035d55b76f289"}, - {file = "regex-2024.7.24-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80c811cfcb5c331237d9bad3bea2c391114588cf4131707e84d9493064d267f9"}, - {file = "regex-2024.7.24-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7214477bf9bd195894cf24005b1e7b496f46833337b5dedb7b2a6e33f66d962c"}, - {file = "regex-2024.7.24-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d55588cba7553f0b6ec33130bc3e114b355570b45785cebdc9daed8c637dd440"}, - {file = "regex-2024.7.24-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:558a57cfc32adcf19d3f791f62b5ff564922942e389e3cfdb538a23d65a6b610"}, - {file = "regex-2024.7.24-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a512eed9dfd4117110b1881ba9a59b31433caed0c4101b361f768e7bcbaf93c5"}, - {file = "regex-2024.7.24-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:86b17ba823ea76256b1885652e3a141a99a5c4422f4a869189db328321b73799"}, - {file = "regex-2024.7.24-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5eefee9bfe23f6df09ffb6dfb23809f4d74a78acef004aa904dc7c88b9944b05"}, - {file = "regex-2024.7.24-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:731fcd76bbdbf225e2eb85b7c38da9633ad3073822f5ab32379381e8c3c12e94"}, - {file = "regex-2024.7.24-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eaef80eac3b4cfbdd6de53c6e108b4c534c21ae055d1dbea2de6b3b8ff3def38"}, - {file = "regex-2024.7.24-cp312-cp312-win32.whl", hash = "sha256:185e029368d6f89f36e526764cf12bf8d6f0e3a2a7737da625a76f594bdfcbfc"}, - {file = "regex-2024.7.24-cp312-cp312-win_amd64.whl", hash = "sha256:2f1baff13cc2521bea83ab2528e7a80cbe0ebb2c6f0bfad15be7da3aed443908"}, - {file = "regex-2024.7.24-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:66b4c0731a5c81921e938dcf1a88e978264e26e6ac4ec96a4d21ae0354581ae0"}, - {file = "regex-2024.7.24-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:88ecc3afd7e776967fa16c80f974cb79399ee8dc6c96423321d6f7d4b881c92b"}, - {file = "regex-2024.7.24-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:64bd50cf16bcc54b274e20235bf8edbb64184a30e1e53873ff8d444e7ac656b2"}, - {file = "regex-2024.7.24-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb462f0e346fcf41a901a126b50f8781e9a474d3927930f3490f38a6e73b6950"}, - {file = "regex-2024.7.24-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a82465ebbc9b1c5c50738536fdfa7cab639a261a99b469c9d4c7dcbb2b3f1e57"}, - {file = "regex-2024.7.24-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:68a8f8c046c6466ac61a36b65bb2395c74451df2ffb8458492ef49900efed293"}, - {file = "regex-2024.7.24-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dac8e84fff5d27420f3c1e879ce9929108e873667ec87e0c8eeb413a5311adfe"}, - {file = "regex-2024.7.24-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba2537ef2163db9e6ccdbeb6f6424282ae4dea43177402152c67ef869cf3978b"}, - {file = "regex-2024.7.24-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:43affe33137fcd679bdae93fb25924979517e011f9dea99163f80b82eadc7e53"}, - {file = "regex-2024.7.24-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:c9bb87fdf2ab2370f21e4d5636e5317775e5d51ff32ebff2cf389f71b9b13750"}, - {file = "regex-2024.7.24-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:945352286a541406f99b2655c973852da7911b3f4264e010218bbc1cc73168f2"}, - {file = "regex-2024.7.24-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:8bc593dcce679206b60a538c302d03c29b18e3d862609317cb560e18b66d10cf"}, - {file = "regex-2024.7.24-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:3f3b6ca8eae6d6c75a6cff525c8530c60e909a71a15e1b731723233331de4169"}, - {file = "regex-2024.7.24-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c51edc3541e11fbe83f0c4d9412ef6c79f664a3745fab261457e84465ec9d5a8"}, - {file = "regex-2024.7.24-cp38-cp38-win32.whl", hash = "sha256:d0a07763776188b4db4c9c7fb1b8c494049f84659bb387b71c73bbc07f189e96"}, - {file = "regex-2024.7.24-cp38-cp38-win_amd64.whl", hash = "sha256:8fd5afd101dcf86a270d254364e0e8dddedebe6bd1ab9d5f732f274fa00499a5"}, - {file = "regex-2024.7.24-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0ffe3f9d430cd37d8fa5632ff6fb36d5b24818c5c986893063b4e5bdb84cdf24"}, - {file = "regex-2024.7.24-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:25419b70ba00a16abc90ee5fce061228206173231f004437730b67ac77323f0d"}, - {file = "regex-2024.7.24-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:33e2614a7ce627f0cdf2ad104797d1f68342d967de3695678c0cb84f530709f8"}, - {file = "regex-2024.7.24-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d33a0021893ede5969876052796165bab6006559ab845fd7b515a30abdd990dc"}, - {file = "regex-2024.7.24-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04ce29e2c5fedf296b1a1b0acc1724ba93a36fb14031f3abfb7abda2806c1535"}, - {file = "regex-2024.7.24-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b16582783f44fbca6fcf46f61347340c787d7530d88b4d590a397a47583f31dd"}, - {file = "regex-2024.7.24-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:836d3cc225b3e8a943d0b02633fb2f28a66e281290302a79df0e1eaa984ff7c1"}, - {file = "regex-2024.7.24-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:438d9f0f4bc64e8dea78274caa5af971ceff0f8771e1a2333620969936ba10be"}, - {file = "regex-2024.7.24-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:973335b1624859cb0e52f96062a28aa18f3a5fc77a96e4a3d6d76e29811a0e6e"}, - {file = "regex-2024.7.24-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c5e69fd3eb0b409432b537fe3c6f44ac089c458ab6b78dcec14478422879ec5f"}, - {file = "regex-2024.7.24-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:fbf8c2f00904eaf63ff37718eb13acf8e178cb940520e47b2f05027f5bb34ce3"}, - {file = "regex-2024.7.24-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ae2757ace61bc4061b69af19e4689fa4416e1a04840f33b441034202b5cd02d4"}, - {file = "regex-2024.7.24-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:44fc61b99035fd9b3b9453f1713234e5a7c92a04f3577252b45feefe1b327759"}, - {file = "regex-2024.7.24-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:84c312cdf839e8b579f504afcd7b65f35d60b6285d892b19adea16355e8343c9"}, - {file = "regex-2024.7.24-cp39-cp39-win32.whl", hash = "sha256:ca5b2028c2f7af4e13fb9fc29b28d0ce767c38c7facdf64f6c2cd040413055f1"}, - {file = "regex-2024.7.24-cp39-cp39-win_amd64.whl", hash = "sha256:7c479f5ae937ec9985ecaf42e2e10631551d909f203e31308c12d703922742f9"}, - {file = "regex-2024.7.24.tar.gz", hash = "sha256:9cfd009eed1a46b27c14039ad5bbc5e71b6367c5b2e6d5f5da0ea91600817506"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164d8b7b3b4bcb2068b97428060b2a53be050085ef94eca7f240e7947f1b080e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3660c82f209655a06b587d55e723f0b813d3a7db2e32e5e7dc64ac2a9e86fde"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d22326fcdef5e08c154280b71163ced384b428343ae16a5ab2b3354aed12436e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ac758ef6aebfc8943560194e9fd0fa18bcb34d89fd8bd2af18183afd8da3a2"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:997d6a487ff00807ba810e0f8332c18b4eb8d29463cfb7c820dc4b6e7562d0cf"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:02a02d2bb04fec86ad61f3ea7f49c015a0681bf76abb9857f945d26159d2968c"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f02f93b92358ee3f78660e43b4b0091229260c5d5c408d17d60bf26b6c900e86"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06eb1be98df10e81ebaded73fcd51989dcf534e3c753466e4b60c4697a003b67"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:040df6fe1a5504eb0f04f048e6d09cd7c7110fef851d7c567a6b6e09942feb7d"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabbfc59f2c6edba2a6622c647b716e34e8e3867e0ab975412c5c2f79b82da2"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8447d2d39b5abe381419319f942de20b7ecd60ce86f16a23b0698f22e1b70008"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:da8f5fc57d1933de22a9e23eec290a0d8a5927a5370d24bda9a6abe50683fe62"}, + {file = "regex-2024.11.6-cp310-cp310-win32.whl", hash = "sha256:b489578720afb782f6ccf2840920f3a32e31ba28a4b162e13900c3e6bd3f930e"}, + {file = "regex-2024.11.6-cp310-cp310-win_amd64.whl", hash = "sha256:5071b2093e793357c9d8b2929dfc13ac5f0a6c650559503bb81189d0a3814519"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45"}, + {file = "regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9"}, + {file = "regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad"}, + {file = "regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54"}, + {file = "regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d"}, + {file = "regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff"}, + {file = "regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3a51ccc315653ba012774efca4f23d1d2a8a8f278a6072e29c7147eee7da446b"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ad182d02e40de7459b73155deb8996bbd8e96852267879396fb274e8700190e3"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba9b72e5643641b7d41fa1f6d5abda2c9a263ae835b917348fc3c928182ad467"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40291b1b89ca6ad8d3f2b82782cc33807f1406cf68c8d440861da6304d8ffbbd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cdf58d0e516ee426a48f7b2c03a332a4114420716d55769ff7108c37a09951bf"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a36fdf2af13c2b14738f6e973aba563623cb77d753bbbd8d414d18bfaa3105dd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1cee317bfc014c2419a76bcc87f071405e3966da434e03e13beb45f8aced1a6"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50153825ee016b91549962f970d6a4442fa106832e14c918acd1c8e479916c4f"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea1bfda2f7162605f6e8178223576856b3d791109f15ea99a9f95c16a7636fb5"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:df951c5f4a1b1910f1a99ff42c473ff60f8225baa1cdd3539fe2819d9543e9df"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:072623554418a9911446278f16ecb398fb3b540147a7828c06e2011fa531e773"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f654882311409afb1d780b940234208a252322c24a93b442ca714d119e68086c"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:89d75e7293d2b3e674db7d4d9b1bee7f8f3d1609428e293771d1a962617150cc"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:f65557897fc977a44ab205ea871b690adaef6b9da6afda4790a2484b04293a5f"}, + {file = "regex-2024.11.6-cp38-cp38-win32.whl", hash = "sha256:6f44ec28b1f858c98d3036ad5d7d0bfc568bdd7a74f9c24e25f41ef1ebfd81a4"}, + {file = "regex-2024.11.6-cp38-cp38-win_amd64.whl", hash = "sha256:bb8f74f2f10dbf13a0be8de623ba4f9491faf58c24064f32b65679b021ed0001"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5704e174f8ccab2026bd2f1ab6c510345ae8eac818b613d7d73e785f1310f839"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:220902c3c5cc6af55d4fe19ead504de80eb91f786dc102fbd74894b1551f095e"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7e351589da0850c125f1600a4c4ba3c722efefe16b297de54300f08d734fbf"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5056b185ca113c88e18223183aa1a50e66507769c9640a6ff75859619d73957b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e34b51b650b23ed3354b5a07aab37034d9f923db2a40519139af34f485f77d0"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5670bce7b200273eee1840ef307bfa07cda90b38ae56e9a6ebcc9f50da9c469b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08986dce1339bc932923e7d1232ce9881499a0e02925f7402fb7c982515419ef"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:93c0b12d3d3bc25af4ebbf38f9ee780a487e8bf6954c115b9f015822d3bb8e48"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:764e71f22ab3b305e7f4c21f1a97e1526a25ebdd22513e251cf376760213da13"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f056bf21105c2515c32372bbc057f43eb02aae2fda61052e2f7622c801f0b4e2"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:69ab78f848845569401469da20df3e081e6b5a11cb086de3eed1d48f5ed57c95"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:86fddba590aad9208e2fa8b43b4c098bb0ec74f15718bb6a704e3c63e2cef3e9"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:684d7a212682996d21ca12ef3c17353c021fe9de6049e19ac8481ec35574a70f"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a03e02f48cd1abbd9f3b7e3586d97c8f7a9721c436f51a5245b3b9483044480b"}, + {file = "regex-2024.11.6-cp39-cp39-win32.whl", hash = "sha256:41758407fc32d5c3c5de163888068cfee69cb4c2be844e7ac517a52770f9af57"}, + {file = "regex-2024.11.6-cp39-cp39-win_amd64.whl", hash = "sha256:b2837718570f95dd41675328e111345f9b7095d821bac435aac173ac80b19983"}, + {file = "regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519"}, ] [[package]] name = "requests" -version = "2.32.2" +version = "2.32.3" description = "Python HTTP for Humans." +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "requests-2.32.2-py3-none-any.whl", hash = "sha256:fc06670dd0ed212426dfeb94fc1b983d917c4f9847c863f313c9dfaaffb7c23c"}, - {file = "requests-2.32.2.tar.gz", hash = "sha256:dd951ff5ecf3e3b3aa26b40703ba77495dab41da839ae72ef3c8e5d8e2433289"}, + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, ] [package.dependencies] @@ -4769,6 +5304,7 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "requests-oauthlib" version = "2.0.0" description = "OAuthlib authentication support for Requests." +category = "main" optional = false python-versions = ">=3.4" files = [ @@ -4787,6 +5323,7 @@ rsa = ["oauthlib[signedtoken] (>=3.0.0)"] name = "rfc3339-validator" version = "0.1.4" description = "A pure python RFC3339 validator" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -4801,6 +5338,7 @@ six = "*" name = "rfc3986-validator" version = "0.1.1" description = "Pure python rfc3986 validator" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -4810,134 +5348,142 @@ files = [ [[package]] name = "rich" -version = "13.7.1" +version = "13.9.4" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +category = "main" optional = false -python-versions = ">=3.7.0" +python-versions = ">=3.8.0" files = [ - {file = "rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222"}, - {file = "rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432"}, + {file = "rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"}, + {file = "rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098"}, ] [package.dependencies] markdown-it-py = ">=2.2.0" pygments = ">=2.13.0,<3.0.0" +typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.11\""} [package.extras] jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] name = "rpds-py" -version = "0.18.1" +version = "0.22.3" description = "Python bindings to Rust's persistent data structures (rpds)" +category = "main" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "rpds_py-0.18.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:d31dea506d718693b6b2cffc0648a8929bdc51c70a311b2770f09611caa10d53"}, - {file = "rpds_py-0.18.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:732672fbc449bab754e0b15356c077cc31566df874964d4801ab14f71951ea80"}, - {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a98a1f0552b5f227a3d6422dbd61bc6f30db170939bd87ed14f3c339aa6c7c9"}, - {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7f1944ce16401aad1e3f7d312247b3d5de7981f634dc9dfe90da72b87d37887d"}, - {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:38e14fb4e370885c4ecd734f093a2225ee52dc384b86fa55fe3f74638b2cfb09"}, - {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08d74b184f9ab6289b87b19fe6a6d1a97fbfea84b8a3e745e87a5de3029bf944"}, - {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d70129cef4a8d979caa37e7fe957202e7eee8ea02c5e16455bc9808a59c6b2f0"}, - {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ce0bb20e3a11bd04461324a6a798af34d503f8d6f1aa3d2aa8901ceaf039176d"}, - {file = "rpds_py-0.18.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:81c5196a790032e0fc2464c0b4ab95f8610f96f1f2fa3d4deacce6a79852da60"}, - {file = "rpds_py-0.18.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:f3027be483868c99b4985fda802a57a67fdf30c5d9a50338d9db646d590198da"}, - {file = "rpds_py-0.18.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d44607f98caa2961bab4fa3c4309724b185b464cdc3ba6f3d7340bac3ec97cc1"}, - {file = "rpds_py-0.18.1-cp310-none-win32.whl", hash = "sha256:c273e795e7a0f1fddd46e1e3cb8be15634c29ae8ff31c196debb620e1edb9333"}, - {file = "rpds_py-0.18.1-cp310-none-win_amd64.whl", hash = "sha256:8352f48d511de5f973e4f2f9412736d7dea76c69faa6d36bcf885b50c758ab9a"}, - {file = "rpds_py-0.18.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:6b5ff7e1d63a8281654b5e2896d7f08799378e594f09cf3674e832ecaf396ce8"}, - {file = "rpds_py-0.18.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8927638a4d4137a289e41d0fd631551e89fa346d6dbcfc31ad627557d03ceb6d"}, - {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:154bf5c93d79558b44e5b50cc354aa0459e518e83677791e6adb0b039b7aa6a7"}, - {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:07f2139741e5deb2c5154a7b9629bc5aa48c766b643c1a6750d16f865a82c5fc"}, - {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8c7672e9fba7425f79019db9945b16e308ed8bc89348c23d955c8c0540da0a07"}, - {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:489bdfe1abd0406eba6b3bb4fdc87c7fa40f1031de073d0cfb744634cc8fa261"}, - {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c20f05e8e3d4fc76875fc9cb8cf24b90a63f5a1b4c5b9273f0e8225e169b100"}, - {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:967342e045564cef76dfcf1edb700b1e20838d83b1aa02ab313e6a497cf923b8"}, - {file = "rpds_py-0.18.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2cc7c1a47f3a63282ab0f422d90ddac4aa3034e39fc66a559ab93041e6505da7"}, - {file = "rpds_py-0.18.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f7afbfee1157e0f9376c00bb232e80a60e59ed716e3211a80cb8506550671e6e"}, - {file = "rpds_py-0.18.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9e6934d70dc50f9f8ea47081ceafdec09245fd9f6032669c3b45705dea096b88"}, - {file = "rpds_py-0.18.1-cp311-none-win32.whl", hash = "sha256:c69882964516dc143083d3795cb508e806b09fc3800fd0d4cddc1df6c36e76bb"}, - {file = "rpds_py-0.18.1-cp311-none-win_amd64.whl", hash = "sha256:70a838f7754483bcdc830444952fd89645569e7452e3226de4a613a4c1793fb2"}, - {file = "rpds_py-0.18.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:3dd3cd86e1db5aadd334e011eba4e29d37a104b403e8ca24dcd6703c68ca55b3"}, - {file = "rpds_py-0.18.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:05f3d615099bd9b13ecf2fc9cf2d839ad3f20239c678f461c753e93755d629ee"}, - {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35b2b771b13eee8729a5049c976197ff58a27a3829c018a04341bcf1ae409b2b"}, - {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ee17cd26b97d537af8f33635ef38be873073d516fd425e80559f4585a7b90c43"}, - {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b646bf655b135ccf4522ed43d6902af37d3f5dbcf0da66c769a2b3938b9d8184"}, - {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:19ba472b9606c36716062c023afa2484d1e4220548751bda14f725a7de17b4f6"}, - {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e30ac5e329098903262dc5bdd7e2086e0256aa762cc8b744f9e7bf2a427d3f8"}, - {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d58ad6317d188c43750cb76e9deacf6051d0f884d87dc6518e0280438648a9ac"}, - {file = "rpds_py-0.18.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e1735502458621921cee039c47318cb90b51d532c2766593be6207eec53e5c4c"}, - {file = "rpds_py-0.18.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f5bab211605d91db0e2995a17b5c6ee5edec1270e46223e513eaa20da20076ac"}, - {file = "rpds_py-0.18.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2fc24a329a717f9e2448f8cd1f960f9dac4e45b6224d60734edeb67499bab03a"}, - {file = "rpds_py-0.18.1-cp312-none-win32.whl", hash = "sha256:1805d5901779662d599d0e2e4159d8a82c0b05faa86ef9222bf974572286b2b6"}, - {file = "rpds_py-0.18.1-cp312-none-win_amd64.whl", hash = "sha256:720edcb916df872d80f80a1cc5ea9058300b97721efda8651efcd938a9c70a72"}, - {file = "rpds_py-0.18.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:c827576e2fa017a081346dce87d532a5310241648eb3700af9a571a6e9fc7e74"}, - {file = "rpds_py-0.18.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:aa3679e751408d75a0b4d8d26d6647b6d9326f5e35c00a7ccd82b78ef64f65f8"}, - {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0abeee75434e2ee2d142d650d1e54ac1f8b01e6e6abdde8ffd6eeac6e9c38e20"}, - {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed402d6153c5d519a0faf1bb69898e97fb31613b49da27a84a13935ea9164dfc"}, - {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:338dee44b0cef8b70fd2ef54b4e09bb1b97fc6c3a58fea5db6cc083fd9fc2724"}, - {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7750569d9526199c5b97e5a9f8d96a13300950d910cf04a861d96f4273d5b104"}, - {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:607345bd5912aacc0c5a63d45a1f73fef29e697884f7e861094e443187c02be5"}, - {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:207c82978115baa1fd8d706d720b4a4d2b0913df1c78c85ba73fe6c5804505f0"}, - {file = "rpds_py-0.18.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:6d1e42d2735d437e7e80bab4d78eb2e459af48c0a46e686ea35f690b93db792d"}, - {file = "rpds_py-0.18.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:5463c47c08630007dc0fe99fb480ea4f34a89712410592380425a9b4e1611d8e"}, - {file = "rpds_py-0.18.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:06d218939e1bf2ca50e6b0ec700ffe755e5216a8230ab3e87c059ebb4ea06afc"}, - {file = "rpds_py-0.18.1-cp38-none-win32.whl", hash = "sha256:312fe69b4fe1ffbe76520a7676b1e5ac06ddf7826d764cc10265c3b53f96dbe9"}, - {file = "rpds_py-0.18.1-cp38-none-win_amd64.whl", hash = "sha256:9437ca26784120a279f3137ee080b0e717012c42921eb07861b412340f85bae2"}, - {file = "rpds_py-0.18.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:19e515b78c3fc1039dd7da0a33c28c3154458f947f4dc198d3c72db2b6b5dc93"}, - {file = "rpds_py-0.18.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a7b28c5b066bca9a4eb4e2f2663012debe680f097979d880657f00e1c30875a0"}, - {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:673fdbbf668dd958eff750e500495ef3f611e2ecc209464f661bc82e9838991e"}, - {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d960de62227635d2e61068f42a6cb6aae91a7fe00fca0e3aeed17667c8a34611"}, - {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:352a88dc7892f1da66b6027af06a2e7e5d53fe05924cc2cfc56495b586a10b72"}, - {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e0ee01ad8260184db21468a6e1c37afa0529acc12c3a697ee498d3c2c4dcaf3"}, - {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4c39ad2f512b4041343ea3c7894339e4ca7839ac38ca83d68a832fc8b3748ab"}, - {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aaa71ee43a703c321906813bb252f69524f02aa05bf4eec85f0c41d5d62d0f4c"}, - {file = "rpds_py-0.18.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:6cd8098517c64a85e790657e7b1e509b9fe07487fd358e19431cb120f7d96338"}, - {file = "rpds_py-0.18.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:4adec039b8e2928983f885c53b7cc4cda8965b62b6596501a0308d2703f8af1b"}, - {file = "rpds_py-0.18.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:32b7daaa3e9389db3695964ce8e566e3413b0c43e3394c05e4b243a4cd7bef26"}, - {file = "rpds_py-0.18.1-cp39-none-win32.whl", hash = "sha256:2625f03b105328729f9450c8badda34d5243231eef6535f80064d57035738360"}, - {file = "rpds_py-0.18.1-cp39-none-win_amd64.whl", hash = "sha256:bf18932d0003c8c4d51a39f244231986ab23ee057d235a12b2684ea26a353590"}, - {file = "rpds_py-0.18.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cbfbea39ba64f5e53ae2915de36f130588bba71245b418060ec3330ebf85678e"}, - {file = "rpds_py-0.18.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:a3d456ff2a6a4d2adcdf3c1c960a36f4fd2fec6e3b4902a42a384d17cf4e7a65"}, - {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7700936ef9d006b7ef605dc53aa364da2de5a3aa65516a1f3ce73bf82ecfc7ae"}, - {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:51584acc5916212e1bf45edd17f3a6b05fe0cbb40482d25e619f824dccb679de"}, - {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:942695a206a58d2575033ff1e42b12b2aece98d6003c6bc739fbf33d1773b12f"}, - {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b906b5f58892813e5ba5c6056d6a5ad08f358ba49f046d910ad992196ea61397"}, - {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6f8e3fecca256fefc91bb6765a693d96692459d7d4c644660a9fff32e517843"}, - {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7732770412bab81c5a9f6d20aeb60ae943a9b36dcd990d876a773526468e7163"}, - {file = "rpds_py-0.18.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:bd1105b50ede37461c1d51b9698c4f4be6e13e69a908ab7751e3807985fc0346"}, - {file = "rpds_py-0.18.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:618916f5535784960f3ecf8111581f4ad31d347c3de66d02e728de460a46303c"}, - {file = "rpds_py-0.18.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:17c6d2155e2423f7e79e3bb18151c686d40db42d8645e7977442170c360194d4"}, - {file = "rpds_py-0.18.1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:6c4c4c3f878df21faf5fac86eda32671c27889e13570645a9eea0a1abdd50922"}, - {file = "rpds_py-0.18.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:fab6ce90574645a0d6c58890e9bcaac8d94dff54fb51c69e5522a7358b80ab64"}, - {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:531796fb842b53f2695e94dc338929e9f9dbf473b64710c28af5a160b2a8927d"}, - {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:740884bc62a5e2bbb31e584f5d23b32320fd75d79f916f15a788d527a5e83644"}, - {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:998125738de0158f088aef3cb264a34251908dd2e5d9966774fdab7402edfab7"}, - {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e2be6e9dd4111d5b31ba3b74d17da54a8319d8168890fbaea4b9e5c3de630ae5"}, - {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0cee71bc618cd93716f3c1bf56653740d2d13ddbd47673efa8bf41435a60daa"}, - {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2c3caec4ec5cd1d18e5dd6ae5194d24ed12785212a90b37f5f7f06b8bedd7139"}, - {file = "rpds_py-0.18.1-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:27bba383e8c5231cd559affe169ca0b96ec78d39909ffd817f28b166d7ddd4d8"}, - {file = "rpds_py-0.18.1-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:a888e8bdb45916234b99da2d859566f1e8a1d2275a801bb8e4a9644e3c7e7909"}, - {file = "rpds_py-0.18.1-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:6031b25fb1b06327b43d841f33842b383beba399884f8228a6bb3df3088485ff"}, - {file = "rpds_py-0.18.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:48c2faaa8adfacefcbfdb5f2e2e7bdad081e5ace8d182e5f4ade971f128e6bb3"}, - {file = "rpds_py-0.18.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:d85164315bd68c0806768dc6bb0429c6f95c354f87485ee3593c4f6b14def2bd"}, - {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6afd80f6c79893cfc0574956f78a0add8c76e3696f2d6a15bca2c66c415cf2d4"}, - {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa242ac1ff583e4ec7771141606aafc92b361cd90a05c30d93e343a0c2d82a89"}, - {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21be4770ff4e08698e1e8e0bce06edb6ea0626e7c8f560bc08222880aca6a6f"}, - {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c45a639e93a0c5d4b788b2613bd637468edd62f8f95ebc6fcc303d58ab3f0a8"}, - {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:910e71711d1055b2768181efa0a17537b2622afeb0424116619817007f8a2b10"}, - {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b9bb1f182a97880f6078283b3505a707057c42bf55d8fca604f70dedfdc0772a"}, - {file = "rpds_py-0.18.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1d54f74f40b1f7aaa595a02ff42ef38ca654b1469bef7d52867da474243cc633"}, - {file = "rpds_py-0.18.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:8d2e182c9ee01135e11e9676e9a62dfad791a7a467738f06726872374a83db49"}, - {file = "rpds_py-0.18.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:636a15acc588f70fda1661234761f9ed9ad79ebed3f2125d44be0862708b666e"}, - {file = "rpds_py-0.18.1.tar.gz", hash = "sha256:dc48b479d540770c811fbd1eb9ba2bb66951863e448efec2e2c102625328e92f"}, + {file = "rpds_py-0.22.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:6c7b99ca52c2c1752b544e310101b98a659b720b21db00e65edca34483259967"}, + {file = "rpds_py-0.22.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:be2eb3f2495ba669d2a985f9b426c1797b7d48d6963899276d22f23e33d47e37"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70eb60b3ae9245ddea20f8a4190bd79c705a22f8028aaf8bbdebe4716c3fab24"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4041711832360a9b75cfb11b25a6a97c8fb49c07b8bd43d0d02b45d0b499a4ff"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:64607d4cbf1b7e3c3c8a14948b99345eda0e161b852e122c6bb71aab6d1d798c"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e69b0a0e2537f26d73b4e43ad7bc8c8efb39621639b4434b76a3de50c6966e"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc27863442d388870c1809a87507727b799c8460573cfbb6dc0eeaef5a11b5ec"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e79dd39f1e8c3504be0607e5fc6e86bb60fe3584bec8b782578c3b0fde8d932c"}, + {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e0fa2d4ec53dc51cf7d3bb22e0aa0143966119f42a0c3e4998293a3dd2856b09"}, + {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fda7cb070f442bf80b642cd56483b5548e43d366fe3f39b98e67cce780cded00"}, + {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cff63a0272fcd259dcc3be1657b07c929c466b067ceb1c20060e8d10af56f5bf"}, + {file = "rpds_py-0.22.3-cp310-cp310-win32.whl", hash = "sha256:9bd7228827ec7bb817089e2eb301d907c0d9827a9e558f22f762bb690b131652"}, + {file = "rpds_py-0.22.3-cp310-cp310-win_amd64.whl", hash = "sha256:9beeb01d8c190d7581a4d59522cd3d4b6887040dcfc744af99aa59fef3e041a8"}, + {file = "rpds_py-0.22.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d20cfb4e099748ea39e6f7b16c91ab057989712d31761d3300d43134e26e165f"}, + {file = "rpds_py-0.22.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:68049202f67380ff9aa52f12e92b1c30115f32e6895cd7198fa2a7961621fc5a"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb4f868f712b2dd4bcc538b0a0c1f63a2b1d584c925e69a224d759e7070a12d5"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bc51abd01f08117283c5ebf64844a35144a0843ff7b2983e0648e4d3d9f10dbb"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0f3cec041684de9a4684b1572fe28c7267410e02450f4561700ca5a3bc6695a2"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7ef9d9da710be50ff6809fed8f1963fecdfecc8b86656cadfca3bc24289414b0"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59f4a79c19232a5774aee369a0c296712ad0e77f24e62cad53160312b1c1eaa1"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a60bce91f81ddaac922a40bbb571a12c1070cb20ebd6d49c48e0b101d87300d"}, + {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e89391e6d60251560f0a8f4bd32137b077a80d9b7dbe6d5cab1cd80d2746f648"}, + {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e3fb866d9932a3d7d0c82da76d816996d1667c44891bd861a0f97ba27e84fc74"}, + {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1352ae4f7c717ae8cba93421a63373e582d19d55d2ee2cbb184344c82d2ae55a"}, + {file = "rpds_py-0.22.3-cp311-cp311-win32.whl", hash = "sha256:b0b4136a252cadfa1adb705bb81524eee47d9f6aab4f2ee4fa1e9d3cd4581f64"}, + {file = "rpds_py-0.22.3-cp311-cp311-win_amd64.whl", hash = "sha256:8bd7c8cfc0b8247c8799080fbff54e0b9619e17cdfeb0478ba7295d43f635d7c"}, + {file = "rpds_py-0.22.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:27e98004595899949bd7a7b34e91fa7c44d7a97c40fcaf1d874168bb652ec67e"}, + {file = "rpds_py-0.22.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1978d0021e943aae58b9b0b196fb4895a25cc53d3956b8e35e0b7682eefb6d56"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:655ca44a831ecb238d124e0402d98f6212ac527a0ba6c55ca26f616604e60a45"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:feea821ee2a9273771bae61194004ee2fc33f8ec7db08117ef9147d4bbcbca8e"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:22bebe05a9ffc70ebfa127efbc429bc26ec9e9b4ee4d15a740033efda515cf3d"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3af6e48651c4e0d2d166dc1b033b7042ea3f871504b6805ba5f4fe31581d8d38"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e67ba3c290821343c192f7eae1d8fd5999ca2dc99994114643e2f2d3e6138b15"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:02fbb9c288ae08bcb34fb41d516d5eeb0455ac35b5512d03181d755d80810059"}, + {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f56a6b404f74ab372da986d240e2e002769a7d7102cc73eb238a4f72eec5284e"}, + {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0a0461200769ab3b9ab7e513f6013b7a97fdeee41c29b9db343f3c5a8e2b9e61"}, + {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8633e471c6207a039eff6aa116e35f69f3156b3989ea3e2d755f7bc41754a4a7"}, + {file = "rpds_py-0.22.3-cp312-cp312-win32.whl", hash = "sha256:593eba61ba0c3baae5bc9be2f5232430453fb4432048de28399ca7376de9c627"}, + {file = "rpds_py-0.22.3-cp312-cp312-win_amd64.whl", hash = "sha256:d115bffdd417c6d806ea9069237a4ae02f513b778e3789a359bc5856e0404cc4"}, + {file = "rpds_py-0.22.3-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ea7433ce7e4bfc3a85654aeb6747babe3f66eaf9a1d0c1e7a4435bbdf27fea84"}, + {file = "rpds_py-0.22.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6dd9412824c4ce1aca56c47b0991e65bebb7ac3f4edccfd3f156150c96a7bf25"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20070c65396f7373f5df4005862fa162db5d25d56150bddd0b3e8214e8ef45b4"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0b09865a9abc0ddff4e50b5ef65467cd94176bf1e0004184eb915cbc10fc05c5"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3453e8d41fe5f17d1f8e9c383a7473cd46a63661628ec58e07777c2fff7196dc"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f5d36399a1b96e1a5fdc91e0522544580dbebeb1f77f27b2b0ab25559e103b8b"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:009de23c9c9ee54bf11303a966edf4d9087cd43a6003672e6aa7def643d06518"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1aef18820ef3e4587ebe8b3bc9ba6e55892a6d7b93bac6d29d9f631a3b4befbd"}, + {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f60bd8423be1d9d833f230fdbccf8f57af322d96bcad6599e5a771b151398eb2"}, + {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:62d9cfcf4948683a18a9aff0ab7e1474d407b7bab2ca03116109f8464698ab16"}, + {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9253fc214112405f0afa7db88739294295f0e08466987f1d70e29930262b4c8f"}, + {file = "rpds_py-0.22.3-cp313-cp313-win32.whl", hash = "sha256:fb0ba113b4983beac1a2eb16faffd76cb41e176bf58c4afe3e14b9c681f702de"}, + {file = "rpds_py-0.22.3-cp313-cp313-win_amd64.whl", hash = "sha256:c58e2339def52ef6b71b8f36d13c3688ea23fa093353f3a4fee2556e62086ec9"}, + {file = "rpds_py-0.22.3-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:f82a116a1d03628a8ace4859556fb39fd1424c933341a08ea3ed6de1edb0283b"}, + {file = "rpds_py-0.22.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3dfcbc95bd7992b16f3f7ba05af8a64ca694331bd24f9157b49dadeeb287493b"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59259dc58e57b10e7e18ce02c311804c10c5a793e6568f8af4dead03264584d1"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5725dd9cc02068996d4438d397e255dcb1df776b7ceea3b9cb972bdb11260a83"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99b37292234e61325e7a5bb9689e55e48c3f5f603af88b1642666277a81f1fbd"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:27b1d3b3915a99208fee9ab092b8184c420f2905b7d7feb4aeb5e4a9c509b8a1"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f612463ac081803f243ff13cccc648578e2279295048f2a8d5eb430af2bae6e3"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f73d3fef726b3243a811121de45193c0ca75f6407fe66f3f4e183c983573e130"}, + {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3f21f0495edea7fdbaaa87e633a8689cd285f8f4af5c869f27bc8074638ad69c"}, + {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:1e9663daaf7a63ceccbbb8e3808fe90415b0757e2abddbfc2e06c857bf8c5e2b"}, + {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a76e42402542b1fae59798fab64432b2d015ab9d0c8c47ba7addddbaf7952333"}, + {file = "rpds_py-0.22.3-cp313-cp313t-win32.whl", hash = "sha256:69803198097467ee7282750acb507fba35ca22cc3b85f16cf45fb01cb9097730"}, + {file = "rpds_py-0.22.3-cp313-cp313t-win_amd64.whl", hash = "sha256:f5cf2a0c2bdadf3791b5c205d55a37a54025c6e18a71c71f82bb536cf9a454bf"}, + {file = "rpds_py-0.22.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:378753b4a4de2a7b34063d6f95ae81bfa7b15f2c1a04a9518e8644e81807ebea"}, + {file = "rpds_py-0.22.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3445e07bf2e8ecfeef6ef67ac83de670358abf2996916039b16a218e3d95e97e"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b2513ba235829860b13faa931f3b6846548021846ac808455301c23a101689d"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eaf16ae9ae519a0e237a0f528fd9f0197b9bb70f40263ee57ae53c2b8d48aeb3"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:583f6a1993ca3369e0f80ba99d796d8e6b1a3a2a442dd4e1a79e652116413091"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4617e1915a539a0d9a9567795023de41a87106522ff83fbfaf1f6baf8e85437e"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c150c7a61ed4a4f4955a96626574e9baf1adf772c2fb61ef6a5027e52803543"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2fa4331c200c2521512595253f5bb70858b90f750d39b8cbfd67465f8d1b596d"}, + {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:214b7a953d73b5e87f0ebece4a32a5bd83c60a3ecc9d4ec8f1dca968a2d91e99"}, + {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f47ad3d5f3258bd7058d2d506852217865afefe6153a36eb4b6928758041d831"}, + {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f276b245347e6e36526cbd4a266a417796fc531ddf391e43574cf6466c492520"}, + {file = "rpds_py-0.22.3-cp39-cp39-win32.whl", hash = "sha256:bbb232860e3d03d544bc03ac57855cd82ddf19c7a07651a7c0fdb95e9efea8b9"}, + {file = "rpds_py-0.22.3-cp39-cp39-win_amd64.whl", hash = "sha256:cfbc454a2880389dbb9b5b398e50d439e2e58669160f27b60e5eca11f68ae17c"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:d48424e39c2611ee1b84ad0f44fb3b2b53d473e65de061e3f460fc0be5f1939d"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:24e8abb5878e250f2eb0d7859a8e561846f98910326d06c0d51381fed59357bd"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b232061ca880db21fa14defe219840ad9b74b6158adb52ddf0e87bead9e8493"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac0a03221cdb5058ce0167ecc92a8c89e8d0decdc9e99a2ec23380793c4dcb96"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb0c341fa71df5a4595f9501df4ac5abfb5a09580081dffbd1ddd4654e6e9123"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bf9db5488121b596dbfc6718c76092fda77b703c1f7533a226a5a9f65248f8ad"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b8db6b5b2d4491ad5b6bdc2bc7c017eec108acbf4e6785f42a9eb0ba234f4c9"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b3d504047aba448d70cf6fa22e06cb09f7cbd761939fdd47604f5e007675c24e"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:e61b02c3f7a1e0b75e20c3978f7135fd13cb6cf551bf4a6d29b999a88830a338"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:e35ba67d65d49080e8e5a1dd40101fccdd9798adb9b050ff670b7d74fa41c566"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:26fd7cac7dd51011a245f29a2cc6489c4608b5a8ce8d75661bb4a1066c52dfbe"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:177c7c0fce2855833819c98e43c262007f42ce86651ffbb84f37883308cb0e7d"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bb47271f60660803ad11f4c61b42242b8c1312a31c98c578f79ef9387bbde21c"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:70fb28128acbfd264eda9bf47015537ba3fe86e40d046eb2963d75024be4d055"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44d61b4b7d0c2c9ac019c314e52d7cbda0ae31078aabd0f22e583af3e0d79723"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f0e260eaf54380380ac3808aa4ebe2d8ca28b9087cf411649f96bad6900c728"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b25bc607423935079e05619d7de556c91fb6adeae9d5f80868dde3468657994b"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fb6116dfb8d1925cbdb52595560584db42a7f664617a1f7d7f6e32f138cdf37d"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a63cbdd98acef6570c62b92a1e43266f9e8b21e699c363c0fef13bd530799c11"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b8f60e1b739a74bab7e01fcbe3dddd4657ec685caa04681df9d562ef15b625f"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:2e8b55d8517a2fda8d95cb45d62a5a8bbf9dd0ad39c5b25c8833efea07b880ca"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:2de29005e11637e7a2361fa151f780ff8eb2543a0da1413bb951e9f14b699ef3"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:666ecce376999bf619756a24ce15bb14c5bfaf04bf00abc7e663ce17c3f34fe7"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:5246b14ca64a8675e0a7161f7af68fe3e910e6b90542b4bfb5439ba752191df6"}, + {file = "rpds_py-0.22.3.tar.gz", hash = "sha256:e32fee8ab45d3c2db6da19a5323bc3362237c8b653c70194414b892fd06a080d"}, ] [[package]] name = "ruamel-yaml" version = "0.18.6" description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4954,67 +5500,65 @@ jinja2 = ["ruamel.yaml.jinja2 (>=0.2)"] [[package]] name = "ruamel-yaml-clib" -version = "0.2.8" +version = "0.2.12" description = "C version of reader, parser and emitter for ruamel.yaml derived from libyaml" +category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.9" files = [ - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b42169467c42b692c19cf539c38d4602069d8c1505e97b86387fcf7afb766e1d"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:07238db9cbdf8fc1e9de2489a4f68474e70dffcb32232db7c08fa61ca0c7c462"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:fff3573c2db359f091e1589c3d7c5fc2f86f5bdb6f24252c2d8e539d4e45f412"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_24_aarch64.whl", hash = "sha256:aa2267c6a303eb483de8d02db2871afb5c5fc15618d894300b88958f729ad74f"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:840f0c7f194986a63d2c2465ca63af8ccbbc90ab1c6001b1978f05119b5e7334"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:024cfe1fc7c7f4e1aff4a81e718109e13409767e4f871443cbff3dba3578203d"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win32.whl", hash = "sha256:c69212f63169ec1cfc9bb44723bf2917cbbd8f6191a00ef3410f5a7fe300722d"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win_amd64.whl", hash = "sha256:cabddb8d8ead485e255fe80429f833172b4cadf99274db39abc080e068cbcc31"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bef08cd86169d9eafb3ccb0a39edb11d8e25f3dae2b28f5c52fd997521133069"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:b16420e621d26fdfa949a8b4b47ade8810c56002f5389970db4ddda51dbff248"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:25c515e350e5b739842fc3228d662413ef28f295791af5e5110b543cf0b57d9b"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_24_aarch64.whl", hash = "sha256:1707814f0d9791df063f8c19bb51b0d1278b8e9a2353abbb676c2f685dee6afe"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:46d378daaac94f454b3a0e3d8d78cafd78a026b1d71443f4966c696b48a6d899"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:09b055c05697b38ecacb7ac50bdab2240bfca1a0c4872b0fd309bb07dc9aa3a9"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win32.whl", hash = "sha256:53a300ed9cea38cf5a2a9b069058137c2ca1ce658a874b79baceb8f892f915a7"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win_amd64.whl", hash = "sha256:c2a72e9109ea74e511e29032f3b670835f8a59bbdc9ce692c5b4ed91ccf1eedb"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ebc06178e8821efc9692ea7544aa5644217358490145629914d8020042c24aa1"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:edaef1c1200c4b4cb914583150dcaa3bc30e592e907c01117c08b13a07255ec2"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d176b57452ab5b7028ac47e7b3cf644bcfdc8cacfecf7e71759f7f51a59e5c92"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux_2_24_aarch64.whl", hash = "sha256:1dc67314e7e1086c9fdf2680b7b6c2be1c0d8e3a8279f2e993ca2a7545fecf62"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3213ece08ea033eb159ac52ae052a4899b56ecc124bb80020d9bbceeb50258e9"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:aab7fd643f71d7946f2ee58cc88c9b7bfc97debd71dcc93e03e2d174628e7e2d"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win32.whl", hash = "sha256:5c365d91c88390c8d0a8545df0b5857172824b1c604e867161e6b3d59a827eaa"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win_amd64.whl", hash = "sha256:1758ce7d8e1a29d23de54a16ae867abd370f01b5a69e1a3ba75223eaa3ca1a1b"}, - {file = "ruamel.yaml.clib-0.2.8-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a5aa27bad2bb83670b71683aae140a1f52b0857a2deff56ad3f6c13a017a26ed"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c58ecd827313af6864893e7af0a3bb85fd529f862b6adbefe14643947cfe2942"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_12_0_arm64.whl", hash = "sha256:f481f16baec5290e45aebdc2a5168ebc6d35189ae6fea7a58787613a25f6e875"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_24_aarch64.whl", hash = "sha256:77159f5d5b5c14f7c34073862a6b7d34944075d9f93e681638f6d753606c6ce6"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7f67a1ee819dc4562d444bbafb135832b0b909f81cc90f7aa00260968c9ca1b3"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4ecbf9c3e19f9562c7fdd462e8d18dd902a47ca046a2e64dba80699f0b6c09b7"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:87ea5ff66d8064301a154b3933ae406b0863402a799b16e4a1d24d9fbbcbe0d3"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win32.whl", hash = "sha256:75e1ed13e1f9de23c5607fe6bd1aeaae21e523b32d83bb33918245361e9cc51b"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win_amd64.whl", hash = "sha256:3f215c5daf6a9d7bbed4a0a4f760f3113b10e82ff4c5c44bec20a68c8014f675"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1b617618914cb00bf5c34d4357c37aa15183fa229b24767259657746c9077615"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:a6a9ffd280b71ad062eae53ac1659ad86a17f59a0fdc7699fd9be40525153337"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_24_aarch64.whl", hash = "sha256:305889baa4043a09e5b76f8e2a51d4ffba44259f6b4c72dec8ca56207d9c6fe1"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:700e4ebb569e59e16a976857c8798aee258dceac7c7d6b50cab63e080058df91"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:e2b4c44b60eadec492926a7270abb100ef9f72798e18743939bdbf037aab8c28"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e79e5db08739731b0ce4850bed599235d601701d5694c36570a99a0c5ca41a9d"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win32.whl", hash = "sha256:955eae71ac26c1ab35924203fda6220f84dce57d6d7884f189743e2abe3a9fbe"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win_amd64.whl", hash = "sha256:56f4252222c067b4ce51ae12cbac231bce32aee1d33fbfc9d17e5b8d6966c312"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:03d1162b6d1df1caa3a4bd27aa51ce17c9afc2046c31b0ad60a0a96ec22f8001"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba64af9fa9cebe325a62fa398760f5c7206b215201b0ec825005f1b18b9bccf"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_24_aarch64.whl", hash = "sha256:a1a45e0bb052edf6a1d3a93baef85319733a888363938e1fc9924cb00c8df24c"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:da09ad1c359a728e112d60116f626cc9f29730ff3e0e7db72b9a2dbc2e4beed5"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:184565012b60405d93838167f425713180b949e9d8dd0bbc7b49f074407c5a8b"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a75879bacf2c987c003368cf14bed0ffe99e8e85acfa6c0bfffc21a090f16880"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win32.whl", hash = "sha256:84b554931e932c46f94ab306913ad7e11bba988104c5cff26d90d03f68258cd5"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win_amd64.whl", hash = "sha256:25ac8c08322002b06fa1d49d1646181f0b2c72f5cbc15a85e80b4c30a544bb15"}, - {file = "ruamel.yaml.clib-0.2.8.tar.gz", hash = "sha256:beb2e0404003de9a4cab9753a8805a8fe9320ee6673136ed7f04255fe60bb512"}, + {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:11f891336688faf5156a36293a9c362bdc7c88f03a8a027c2c1d8e0bcde998e5"}, + {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:a606ef75a60ecf3d924613892cc603b154178ee25abb3055db5062da811fd969"}, + {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd5415dded15c3822597455bc02bcd66e81ef8b7a48cb71a33628fc9fdde39df"}, + {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f66efbc1caa63c088dead1c4170d148eabc9b80d95fb75b6c92ac0aad2437d76"}, + {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:22353049ba4181685023b25b5b51a574bce33e7f51c759371a7422dcae5402a6"}, + {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:932205970b9f9991b34f55136be327501903f7c66830e9760a8ffb15b07f05cd"}, + {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a52d48f4e7bf9005e8f0a89209bf9a73f7190ddf0489eee5eb51377385f59f2a"}, + {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-win32.whl", hash = "sha256:3eac5a91891ceb88138c113f9db04f3cebdae277f5d44eaa3651a4f573e6a5da"}, + {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-win_amd64.whl", hash = "sha256:ab007f2f5a87bd08ab1499bdf96f3d5c6ad4dcfa364884cb4549aa0154b13a28"}, + {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:4a6679521a58256a90b0d89e03992c15144c5f3858f40d7c18886023d7943db6"}, + {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:d84318609196d6bd6da0edfa25cedfbabd8dbde5140a0a23af29ad4b8f91fb1e"}, + {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb43a269eb827806502c7c8efb7ae7e9e9d0573257a46e8e952f4d4caba4f31e"}, + {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:811ea1594b8a0fb466172c384267a4e5e367298af6b228931f273b111f17ef52"}, + {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:cf12567a7b565cbf65d438dec6cfbe2917d3c1bdddfce84a9930b7d35ea59642"}, + {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7dd5adc8b930b12c8fc5b99e2d535a09889941aa0d0bd06f4749e9a9397c71d2"}, + {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1492a6051dab8d912fc2adeef0e8c72216b24d57bd896ea607cb90bb0c4981d3"}, + {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-win32.whl", hash = "sha256:bd0a08f0bab19093c54e18a14a10b4322e1eacc5217056f3c063bd2f59853ce4"}, + {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-win_amd64.whl", hash = "sha256:a274fb2cb086c7a3dea4322ec27f4cb5cc4b6298adb583ab0e211a4682f241eb"}, + {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:20b0f8dc160ba83b6dcc0e256846e1a02d044e13f7ea74a3d1d56ede4e48c632"}, + {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:943f32bc9dedb3abff9879edc134901df92cfce2c3d5c9348f172f62eb2d771d"}, + {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95c3829bb364fdb8e0332c9931ecf57d9be3519241323c5274bd82f709cebc0c"}, + {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:749c16fcc4a2b09f28843cda5a193e0283e47454b63ec4b81eaa2242f50e4ccd"}, + {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bf165fef1f223beae7333275156ab2022cffe255dcc51c27f066b4370da81e31"}, + {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:32621c177bbf782ca5a18ba4d7af0f1082a3f6e517ac2a18b3974d4edf349680"}, + {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b82a7c94a498853aa0b272fd5bc67f29008da798d4f93a2f9f289feb8426a58d"}, + {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-win32.whl", hash = "sha256:e8c4ebfcfd57177b572e2040777b8abc537cdef58a2120e830124946aa9b42c5"}, + {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-win_amd64.whl", hash = "sha256:0467c5965282c62203273b838ae77c0d29d7638c8a4e3a1c8bdd3602c10904e4"}, + {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:4c8c5d82f50bb53986a5e02d1b3092b03622c02c2eb78e29bec33fd9593bae1a"}, + {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-manylinux2014_aarch64.whl", hash = "sha256:e7e3736715fbf53e9be2a79eb4db68e4ed857017344d697e8b9749444ae57475"}, + {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b7e75b4965e1d4690e93021adfcecccbca7d61c7bddd8e22406ef2ff20d74ef"}, + {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96777d473c05ee3e5e3c3e999f5d23c6f4ec5b0c38c098b3a5229085f74236c6"}, + {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:3bc2a80e6420ca8b7d3590791e2dfc709c88ab9152c00eeb511c9875ce5778bf"}, + {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e188d2699864c11c36cdfdada94d781fd5d6b0071cd9c427bceb08ad3d7c70e1"}, + {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4f6f3eac23941b32afccc23081e1f50612bdbe4e982012ef4f5797986828cd01"}, + {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-win32.whl", hash = "sha256:6442cb36270b3afb1b4951f060eccca1ce49f3d087ca1ca4563a6eb479cb3de6"}, + {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-win_amd64.whl", hash = "sha256:e5b8daf27af0b90da7bb903a876477a9e6d7270be6146906b276605997c7e9a3"}, + {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:fc4b630cd3fa2cf7fce38afa91d7cfe844a9f75d7f0f36393fa98815e911d987"}, + {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:bc5f1e1c28e966d61d2519f2a3d451ba989f9ea0f2307de7bc45baa526de9e45"}, + {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a0e060aace4c24dcaf71023bbd7d42674e3b230f7e7b97317baf1e953e5b519"}, + {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2f1c3765db32be59d18ab3953f43ab62a761327aafc1594a2a1fbe038b8b8a7"}, + {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d85252669dc32f98ebcd5d36768f5d4faeaeaa2d655ac0473be490ecdae3c285"}, + {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e143ada795c341b56de9418c58d028989093ee611aa27ffb9b7f609c00d813ed"}, + {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2c59aa6170b990d8d2719323e628aaf36f3bfbc1c26279c0eeeb24d05d2d11c7"}, + {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-win32.whl", hash = "sha256:beffaed67936fbbeffd10966a4eb53c402fafd3d6833770516bf7314bc6ffa12"}, + {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-win_amd64.whl", hash = "sha256:040ae85536960525ea62868b642bdb0c2cc6021c9f9d507810c0c604e66f5a7b"}, + {file = "ruamel.yaml.clib-0.2.12.tar.gz", hash = "sha256:6c8fbb13ec503f99a91901ab46e0b07ae7941cd527393187039aec586fdfd36f"}, ] [[package]] name = "ruff" version = "0.2.2" description = "An extremely fast Python linter and code formatter, written in Rust." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -5039,50 +5583,60 @@ files = [ [[package]] name = "scipy" -version = "1.13.1" +version = "1.14.1" description = "Fundamental algorithms for scientific computing in Python" +category = "main" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" files = [ - {file = "scipy-1.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:20335853b85e9a49ff7572ab453794298bcf0354d8068c5f6775a0eabf350aca"}, - {file = "scipy-1.13.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d605e9c23906d1994f55ace80e0125c587f96c020037ea6aa98d01b4bd2e222f"}, - {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfa31f1def5c819b19ecc3a8b52d28ffdcc7ed52bb20c9a7589669dd3c250989"}, - {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26264b282b9da0952a024ae34710c2aff7d27480ee91a2e82b7b7073c24722f"}, - {file = "scipy-1.13.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:eccfa1906eacc02de42d70ef4aecea45415f5be17e72b61bafcfd329bdc52e94"}, - {file = "scipy-1.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:2831f0dc9c5ea9edd6e51e6e769b655f08ec6db6e2e10f86ef39bd32eb11da54"}, - {file = "scipy-1.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:27e52b09c0d3a1d5b63e1105f24177e544a222b43611aaf5bc44d4a0979e32f9"}, - {file = "scipy-1.13.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:54f430b00f0133e2224c3ba42b805bfd0086fe488835effa33fa291561932326"}, - {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e89369d27f9e7b0884ae559a3a956e77c02114cc60a6058b4e5011572eea9299"}, - {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a78b4b3345f1b6f68a763c6e25c0c9a23a9fd0f39f5f3d200efe8feda560a5fa"}, - {file = "scipy-1.13.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45484bee6d65633752c490404513b9ef02475b4284c4cfab0ef946def50b3f59"}, - {file = "scipy-1.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:5713f62f781eebd8d597eb3f88b8bf9274e79eeabf63afb4a737abc6c84ad37b"}, - {file = "scipy-1.13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5d72782f39716b2b3509cd7c33cdc08c96f2f4d2b06d51e52fb45a19ca0c86a1"}, - {file = "scipy-1.13.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:017367484ce5498445aade74b1d5ab377acdc65e27095155e448c88497755a5d"}, - {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:949ae67db5fa78a86e8fa644b9a6b07252f449dcf74247108c50e1d20d2b4627"}, - {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de3ade0e53bc1f21358aa74ff4830235d716211d7d077e340c7349bc3542e884"}, - {file = "scipy-1.13.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2ac65fb503dad64218c228e2dc2d0a0193f7904747db43014645ae139c8fad16"}, - {file = "scipy-1.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:cdd7dacfb95fea358916410ec61bbc20440f7860333aee6d882bb8046264e949"}, - {file = "scipy-1.13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:436bbb42a94a8aeef855d755ce5a465479c721e9d684de76bf61a62e7c2b81d5"}, - {file = "scipy-1.13.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:8335549ebbca860c52bf3d02f80784e91a004b71b059e3eea9678ba994796a24"}, - {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d533654b7d221a6a97304ab63c41c96473ff04459e404b83275b60aa8f4b7004"}, - {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:637e98dcf185ba7f8e663e122ebf908c4702420477ae52a04f9908707456ba4d"}, - {file = "scipy-1.13.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a014c2b3697bde71724244f63de2476925596c24285c7a637364761f8710891c"}, - {file = "scipy-1.13.1-cp39-cp39-win_amd64.whl", hash = "sha256:392e4ec766654852c25ebad4f64e4e584cf19820b980bc04960bca0b0cd6eaa2"}, - {file = "scipy-1.13.1.tar.gz", hash = "sha256:095a87a0312b08dfd6a6155cbbd310a8c51800fc931b8c0b84003014b874ed3c"}, + {file = "scipy-1.14.1-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:b28d2ca4add7ac16ae8bb6632a3c86e4b9e4d52d3e34267f6e1b0c1f8d87e389"}, + {file = "scipy-1.14.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d0d2821003174de06b69e58cef2316a6622b60ee613121199cb2852a873f8cf3"}, + {file = "scipy-1.14.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8bddf15838ba768bb5f5083c1ea012d64c9a444e16192762bd858f1e126196d0"}, + {file = "scipy-1.14.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:97c5dddd5932bd2a1a31c927ba5e1463a53b87ca96b5c9bdf5dfd6096e27efc3"}, + {file = "scipy-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ff0a7e01e422c15739ecd64432743cf7aae2b03f3084288f399affcefe5222d"}, + {file = "scipy-1.14.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e32dced201274bf96899e6491d9ba3e9a5f6b336708656466ad0522d8528f69"}, + {file = "scipy-1.14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8426251ad1e4ad903a4514712d2fa8fdd5382c978010d1c6f5f37ef286a713ad"}, + {file = "scipy-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:a49f6ed96f83966f576b33a44257d869756df6cf1ef4934f59dd58b25e0327e5"}, + {file = "scipy-1.14.1-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:2da0469a4ef0ecd3693761acbdc20f2fdeafb69e6819cc081308cc978153c675"}, + {file = "scipy-1.14.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:c0ee987efa6737242745f347835da2cc5bb9f1b42996a4d97d5c7ff7928cb6f2"}, + {file = "scipy-1.14.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3a1b111fac6baec1c1d92f27e76511c9e7218f1695d61b59e05e0fe04dc59617"}, + {file = "scipy-1.14.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8475230e55549ab3f207bff11ebfc91c805dc3463ef62eda3ccf593254524ce8"}, + {file = "scipy-1.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:278266012eb69f4a720827bdd2dc54b2271c97d84255b2faaa8f161a158c3b37"}, + {file = "scipy-1.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fef8c87f8abfb884dac04e97824b61299880c43f4ce675dd2cbeadd3c9b466d2"}, + {file = "scipy-1.14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b05d43735bb2f07d689f56f7b474788a13ed8adc484a85aa65c0fd931cf9ccd2"}, + {file = "scipy-1.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:716e389b694c4bb564b4fc0c51bc84d381735e0d39d3f26ec1af2556ec6aad94"}, + {file = "scipy-1.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:631f07b3734d34aced009aaf6fedfd0eb3498a97e581c3b1e5f14a04164a456d"}, + {file = "scipy-1.14.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:af29a935803cc707ab2ed7791c44288a682f9c8107bc00f0eccc4f92c08d6e07"}, + {file = "scipy-1.14.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:2843f2d527d9eebec9a43e6b406fb7266f3af25a751aa91d62ff416f54170bc5"}, + {file = "scipy-1.14.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:eb58ca0abd96911932f688528977858681a59d61a7ce908ffd355957f7025cfc"}, + {file = "scipy-1.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30ac8812c1d2aab7131a79ba62933a2a76f582d5dbbc695192453dae67ad6310"}, + {file = "scipy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f9ea80f2e65bdaa0b7627fb00cbeb2daf163caa015e59b7516395fe3bd1e066"}, + {file = "scipy-1.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:edaf02b82cd7639db00dbff629995ef185c8df4c3ffa71a5562a595765a06ce1"}, + {file = "scipy-1.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:2ff38e22128e6c03ff73b6bb0f85f897d2362f8c052e3b8ad00532198fbdae3f"}, + {file = "scipy-1.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1729560c906963fc8389f6aac023739ff3983e727b1a4d87696b7bf108316a79"}, + {file = "scipy-1.14.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:4079b90df244709e675cdc8b93bfd8a395d59af40b72e339c2287c91860deb8e"}, + {file = "scipy-1.14.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e0cf28db0f24a38b2a0ca33a85a54852586e43cf6fd876365c86e0657cfe7d73"}, + {file = "scipy-1.14.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0c2f95de3b04e26f5f3ad5bb05e74ba7f68b837133a4492414b3afd79dfe540e"}, + {file = "scipy-1.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b99722ea48b7ea25e8e015e8341ae74624f72e5f21fc2abd45f3a93266de4c5d"}, + {file = "scipy-1.14.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5149e3fd2d686e42144a093b206aef01932a0059c2a33ddfa67f5f035bdfe13e"}, + {file = "scipy-1.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e4f5a7c49323533f9103d4dacf4e4f07078f360743dec7f7596949149efeec06"}, + {file = "scipy-1.14.1-cp313-cp313-win_amd64.whl", hash = "sha256:baff393942b550823bfce952bb62270ee17504d02a1801d7fd0719534dfb9c84"}, + {file = "scipy-1.14.1.tar.gz", hash = "sha256:5a275584e726026a5699459aa72f828a610821006228e841b94275c4a7c08417"}, ] [package.dependencies] -numpy = ">=1.22.4,<2.3" +numpy = ">=1.23.5,<2.3" [package.extras] -dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] -doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.12.0)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0)", "sphinx-design (>=0.4.0)"] -test = ["array-api-strict", "asv", "gmpy2", "hypothesis (>=6.30)", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] +dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy (==1.10.0)", "pycodestyle", "pydevtool", "rich-click", "ruff (>=0.0.292)", "types-psutil", "typing_extensions"] +doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.13.1)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0,<=7.3.7)", "sphinx-design (>=0.4.0)"] +test = ["Cython", "array-api-strict (>=2.0)", "asv", "gmpy2", "hypothesis (>=6.30)", "meson", "mpmath", "ninja", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] [[package]] name = "send2trash" version = "1.8.3" description = "Send file to trash natively under Mac OS X, Windows and Linux" +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -5097,81 +5651,89 @@ win32 = ["pywin32"] [[package]] name = "setuptools" -version = "73.0.1" +version = "75.6.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "dev" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "setuptools-73.0.1-py3-none-any.whl", hash = "sha256:b208925fcb9f7af924ed2dc04708ea89791e24bde0d3020b27df0e116088b34e"}, - {file = "setuptools-73.0.1.tar.gz", hash = "sha256:d59a3e788ab7e012ab2c4baed1b376da6366883ee20d7a5fc426816e3d7b1193"}, + {file = "setuptools-75.6.0-py3-none-any.whl", hash = "sha256:ce74b49e8f7110f9bf04883b730f4765b774ef3ef28f722cce7c273d253aaf7d"}, + {file = "setuptools-75.6.0.tar.gz", hash = "sha256:8199222558df7c86216af4f84c30e9b34a61d8ba19366cc914424cdbd28252f6"}, ] [package.extras] -core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.text (>=3.7)", "more-itertools (>=8.8)", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.7.0)"] +core = ["importlib_metadata (>=6)", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.11.*)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (<0.4)", "pytest-ruff (>=0.2.1)", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +type = ["importlib_metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (>=1.12,<1.14)", "pytest-mypy"] [[package]] name = "shapely" -version = "2.0.4" +version = "2.0.6" description = "Manipulation and analysis of geometric objects" +category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "shapely-2.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:011b77153906030b795791f2fdfa2d68f1a8d7e40bce78b029782ade3afe4f2f"}, - {file = "shapely-2.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9831816a5d34d5170aa9ed32a64982c3d6f4332e7ecfe62dc97767e163cb0b17"}, - {file = "shapely-2.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5c4849916f71dc44e19ed370421518c0d86cf73b26e8656192fcfcda08218fbd"}, - {file = "shapely-2.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:841f93a0e31e4c64d62ea570d81c35de0f6cea224568b2430d832967536308e6"}, - {file = "shapely-2.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b4431f522b277c79c34b65da128029a9955e4481462cbf7ebec23aab61fc58"}, - {file = "shapely-2.0.4-cp310-cp310-win32.whl", hash = "sha256:92a41d936f7d6743f343be265ace93b7c57f5b231e21b9605716f5a47c2879e7"}, - {file = "shapely-2.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:30982f79f21bb0ff7d7d4a4e531e3fcaa39b778584c2ce81a147f95be1cd58c9"}, - {file = "shapely-2.0.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:de0205cb21ad5ddaef607cda9a3191eadd1e7a62a756ea3a356369675230ac35"}, - {file = "shapely-2.0.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7d56ce3e2a6a556b59a288771cf9d091470116867e578bebced8bfc4147fbfd7"}, - {file = "shapely-2.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:58b0ecc505bbe49a99551eea3f2e8a9b3b24b3edd2a4de1ac0dc17bc75c9ec07"}, - {file = "shapely-2.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:790a168a808bd00ee42786b8ba883307c0e3684ebb292e0e20009588c426da47"}, - {file = "shapely-2.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4310b5494271e18580d61022c0857eb85d30510d88606fa3b8314790df7f367d"}, - {file = "shapely-2.0.4-cp311-cp311-win32.whl", hash = "sha256:63f3a80daf4f867bd80f5c97fbe03314348ac1b3b70fb1c0ad255a69e3749879"}, - {file = "shapely-2.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:c52ed79f683f721b69a10fb9e3d940a468203f5054927215586c5d49a072de8d"}, - {file = "shapely-2.0.4-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:5bbd974193e2cc274312da16b189b38f5f128410f3377721cadb76b1e8ca5328"}, - {file = "shapely-2.0.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:41388321a73ba1a84edd90d86ecc8bfed55e6a1e51882eafb019f45895ec0f65"}, - {file = "shapely-2.0.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0776c92d584f72f1e584d2e43cfc5542c2f3dd19d53f70df0900fda643f4bae6"}, - {file = "shapely-2.0.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c75c98380b1ede1cae9a252c6dc247e6279403fae38c77060a5e6186c95073ac"}, - {file = "shapely-2.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3e700abf4a37b7b8b90532fa6ed5c38a9bfc777098bc9fbae5ec8e618ac8f30"}, - {file = "shapely-2.0.4-cp312-cp312-win32.whl", hash = "sha256:4f2ab0faf8188b9f99e6a273b24b97662194160cc8ca17cf9d1fb6f18d7fb93f"}, - {file = "shapely-2.0.4-cp312-cp312-win_amd64.whl", hash = "sha256:03152442d311a5e85ac73b39680dd64a9892fa42bb08fd83b3bab4fe6999bfa0"}, - {file = "shapely-2.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:994c244e004bc3cfbea96257b883c90a86e8cbd76e069718eb4c6b222a56f78b"}, - {file = "shapely-2.0.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05ffd6491e9e8958b742b0e2e7c346635033d0a5f1a0ea083547fcc854e5d5cf"}, - {file = "shapely-2.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fbdc1140a7d08faa748256438291394967aa54b40009f54e8d9825e75ef6113"}, - {file = "shapely-2.0.4-cp37-cp37m-win32.whl", hash = "sha256:5af4cd0d8cf2912bd95f33586600cac9c4b7c5053a036422b97cfe4728d2eb53"}, - {file = "shapely-2.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:464157509ce4efa5ff285c646a38b49f8c5ef8d4b340f722685b09bb033c5ccf"}, - {file = "shapely-2.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:489c19152ec1f0e5c5e525356bcbf7e532f311bff630c9b6bc2db6f04da6a8b9"}, - {file = "shapely-2.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b79bbd648664aa6f44ef018474ff958b6b296fed5c2d42db60078de3cffbc8aa"}, - {file = "shapely-2.0.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:674d7baf0015a6037d5758496d550fc1946f34bfc89c1bf247cabdc415d7747e"}, - {file = "shapely-2.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6cd4ccecc5ea5abd06deeaab52fcdba372f649728050c6143cc405ee0c166679"}, - {file = "shapely-2.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb5cdcbbe3080181498931b52a91a21a781a35dcb859da741c0345c6402bf00c"}, - {file = "shapely-2.0.4-cp38-cp38-win32.whl", hash = "sha256:55a38dcd1cee2f298d8c2ebc60fc7d39f3b4535684a1e9e2f39a80ae88b0cea7"}, - {file = "shapely-2.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:ec555c9d0db12d7fd777ba3f8b75044c73e576c720a851667432fabb7057da6c"}, - {file = "shapely-2.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3f9103abd1678cb1b5f7e8e1af565a652e036844166c91ec031eeb25c5ca8af0"}, - {file = "shapely-2.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:263bcf0c24d7a57c80991e64ab57cba7a3906e31d2e21b455f493d4aab534aaa"}, - {file = "shapely-2.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ddf4a9bfaac643e62702ed662afc36f6abed2a88a21270e891038f9a19bc08fc"}, - {file = "shapely-2.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:485246fcdb93336105c29a5cfbff8a226949db37b7473c89caa26c9bae52a242"}, - {file = "shapely-2.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8de4578e838a9409b5b134a18ee820730e507b2d21700c14b71a2b0757396acc"}, - {file = "shapely-2.0.4-cp39-cp39-win32.whl", hash = "sha256:9dab4c98acfb5fb85f5a20548b5c0abe9b163ad3525ee28822ffecb5c40e724c"}, - {file = "shapely-2.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:31c19a668b5a1eadab82ff070b5a260478ac6ddad3a5b62295095174a8d26398"}, - {file = "shapely-2.0.4.tar.gz", hash = "sha256:5dc736127fac70009b8d309a0eeb74f3e08979e530cf7017f2f507ef62e6cfb8"}, + {file = "shapely-2.0.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:29a34e068da2d321e926b5073539fd2a1d4429a2c656bd63f0bd4c8f5b236d0b"}, + {file = "shapely-2.0.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c84c3f53144febf6af909d6b581bc05e8785d57e27f35ebaa5c1ab9baba13b"}, + {file = "shapely-2.0.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ad2fae12dca8d2b727fa12b007e46fbc522148a584f5d6546c539f3464dccde"}, + {file = "shapely-2.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3304883bd82d44be1b27a9d17f1167fda8c7f5a02a897958d86c59ec69b705e"}, + {file = "shapely-2.0.6-cp310-cp310-win32.whl", hash = "sha256:3ec3a0eab496b5e04633a39fa3d5eb5454628228201fb24903d38174ee34565e"}, + {file = "shapely-2.0.6-cp310-cp310-win_amd64.whl", hash = "sha256:28f87cdf5308a514763a5c38de295544cb27429cfa655d50ed8431a4796090c4"}, + {file = "shapely-2.0.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5aeb0f51a9db176da9a30cb2f4329b6fbd1e26d359012bb0ac3d3c7781667a9e"}, + {file = "shapely-2.0.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9a7a78b0d51257a367ee115f4d41ca4d46edbd0dd280f697a8092dd3989867b2"}, + {file = "shapely-2.0.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f32c23d2f43d54029f986479f7c1f6e09c6b3a19353a3833c2ffb226fb63a855"}, + {file = "shapely-2.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3dc9fb0eb56498912025f5eb352b5126f04801ed0e8bdbd867d21bdbfd7cbd0"}, + {file = "shapely-2.0.6-cp311-cp311-win32.whl", hash = "sha256:d93b7e0e71c9f095e09454bf18dad5ea716fb6ced5df3cb044564a00723f339d"}, + {file = "shapely-2.0.6-cp311-cp311-win_amd64.whl", hash = "sha256:c02eb6bf4cfb9fe6568502e85bb2647921ee49171bcd2d4116c7b3109724ef9b"}, + {file = "shapely-2.0.6-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cec9193519940e9d1b86a3b4f5af9eb6910197d24af02f247afbfb47bcb3fab0"}, + {file = "shapely-2.0.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83b94a44ab04a90e88be69e7ddcc6f332da7c0a0ebb1156e1c4f568bbec983c3"}, + {file = "shapely-2.0.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:537c4b2716d22c92036d00b34aac9d3775e3691f80c7aa517c2c290351f42cd8"}, + {file = "shapely-2.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98fea108334be345c283ce74bf064fa00cfdd718048a8af7343c59eb40f59726"}, + {file = "shapely-2.0.6-cp312-cp312-win32.whl", hash = "sha256:42fd4cd4834747e4990227e4cbafb02242c0cffe9ce7ef9971f53ac52d80d55f"}, + {file = "shapely-2.0.6-cp312-cp312-win_amd64.whl", hash = "sha256:665990c84aece05efb68a21b3523a6b2057e84a1afbef426ad287f0796ef8a48"}, + {file = "shapely-2.0.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:42805ef90783ce689a4dde2b6b2f261e2c52609226a0438d882e3ced40bb3013"}, + {file = "shapely-2.0.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6d2cb146191a47bd0cee8ff5f90b47547b82b6345c0d02dd8b25b88b68af62d7"}, + {file = "shapely-2.0.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e3fdef0a1794a8fe70dc1f514440aa34426cc0ae98d9a1027fb299d45741c381"}, + {file = "shapely-2.0.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c665a0301c645615a107ff7f52adafa2153beab51daf34587170d85e8ba6805"}, + {file = "shapely-2.0.6-cp313-cp313-win32.whl", hash = "sha256:0334bd51828f68cd54b87d80b3e7cee93f249d82ae55a0faf3ea21c9be7b323a"}, + {file = "shapely-2.0.6-cp313-cp313-win_amd64.whl", hash = "sha256:d37d070da9e0e0f0a530a621e17c0b8c3c9d04105655132a87cfff8bd77cc4c2"}, + {file = "shapely-2.0.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fa7468e4f5b92049c0f36d63c3e309f85f2775752e076378e36c6387245c5462"}, + {file = "shapely-2.0.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed5867e598a9e8ac3291da6cc9baa62ca25706eea186117034e8ec0ea4355653"}, + {file = "shapely-2.0.6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81d9dfe155f371f78c8d895a7b7f323bb241fb148d848a2bf2244f79213123fe"}, + {file = "shapely-2.0.6-cp37-cp37m-win32.whl", hash = "sha256:fbb7bf02a7542dba55129062570211cfb0defa05386409b3e306c39612e7fbcc"}, + {file = "shapely-2.0.6-cp37-cp37m-win_amd64.whl", hash = "sha256:837d395fac58aa01aa544495b97940995211e3e25f9aaf87bc3ba5b3a8cd1ac7"}, + {file = "shapely-2.0.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c6d88ade96bf02f6bfd667ddd3626913098e243e419a0325ebef2bbd481d1eb6"}, + {file = "shapely-2.0.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8b3b818c4407eaa0b4cb376fd2305e20ff6df757bf1356651589eadc14aab41b"}, + {file = "shapely-2.0.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1bbc783529a21f2bd50c79cef90761f72d41c45622b3e57acf78d984c50a5d13"}, + {file = "shapely-2.0.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2423f6c0903ebe5df6d32e0066b3d94029aab18425ad4b07bf98c3972a6e25a1"}, + {file = "shapely-2.0.6-cp38-cp38-win32.whl", hash = "sha256:2de00c3bfa80d6750832bde1d9487e302a6dd21d90cb2f210515cefdb616e5f5"}, + {file = "shapely-2.0.6-cp38-cp38-win_amd64.whl", hash = "sha256:3a82d58a1134d5e975f19268710e53bddd9c473743356c90d97ce04b73e101ee"}, + {file = "shapely-2.0.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:392f66f458a0a2c706254f473290418236e52aa4c9b476a072539d63a2460595"}, + {file = "shapely-2.0.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:eba5bae271d523c938274c61658ebc34de6c4b33fdf43ef7e938b5776388c1be"}, + {file = "shapely-2.0.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7060566bc4888b0c8ed14b5d57df8a0ead5c28f9b69fb6bed4476df31c51b0af"}, + {file = "shapely-2.0.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b02154b3e9d076a29a8513dffcb80f047a5ea63c897c0cd3d3679f29363cf7e5"}, + {file = "shapely-2.0.6-cp39-cp39-win32.whl", hash = "sha256:44246d30124a4f1a638a7d5419149959532b99dfa25b54393512e6acc9c211ac"}, + {file = "shapely-2.0.6-cp39-cp39-win_amd64.whl", hash = "sha256:2b542d7f1dbb89192d3512c52b679c822ba916f93479fa5d4fc2fe4fa0b3c9e8"}, + {file = "shapely-2.0.6.tar.gz", hash = "sha256:997f6159b1484059ec239cacaa53467fd8b5564dabe186cd84ac2944663b0bf6"}, ] [package.dependencies] numpy = ">=1.14,<3" [package.extras] -docs = ["matplotlib", "numpydoc (==1.1.*)", "sphinx", "sphinx-book-theme", "sphinx-remove-toctrees"] +docs = ["matplotlib", "numpydoc (>=1.1.0,<1.2.0)", "sphinx", "sphinx-book-theme", "sphinx-remove-toctrees"] test = ["pytest", "pytest-cov"] [[package]] name = "shellingham" version = "1.5.4" description = "Tool to Detect Surrounding Shell" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5183,6 +5745,7 @@ files = [ name = "sidecar" version = "0.7.0" description = "A sidecar output widget for JupyterLab" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -5195,19 +5758,21 @@ ipywidgets = ">=8,<9" [[package]] name = "six" -version = "1.16.0" +version = "1.17.0" description = "Python 2 and 3 compatibility utilities" +category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, + {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, + {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, ] [[package]] name = "sniffio" version = "1.3.1" description = "Sniff out which async library your code is running under" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5217,75 +5782,85 @@ files = [ [[package]] name = "soupsieve" -version = "2.5" +version = "2.6" description = "A modern CSS selector implementation for Beautiful Soup." +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, - {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, + {file = "soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"}, + {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"}, ] [[package]] name = "sqlalchemy" -version = "2.0.30" +version = "2.0.36" description = "Database Abstraction Library" +category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "SQLAlchemy-2.0.30-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3b48154678e76445c7ded1896715ce05319f74b1e73cf82d4f8b59b46e9c0ddc"}, - {file = "SQLAlchemy-2.0.30-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2753743c2afd061bb95a61a51bbb6a1a11ac1c44292fad898f10c9839a7f75b2"}, - {file = "SQLAlchemy-2.0.30-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a7bfc726d167f425d4c16269a9a10fe8630ff6d14b683d588044dcef2d0f6be7"}, - {file = "SQLAlchemy-2.0.30-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4f61ada6979223013d9ab83a3ed003ded6959eae37d0d685db2c147e9143797"}, - {file = "SQLAlchemy-2.0.30-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3a365eda439b7a00732638f11072907c1bc8e351c7665e7e5da91b169af794af"}, - {file = "SQLAlchemy-2.0.30-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bba002a9447b291548e8d66fd8c96a6a7ed4f2def0bb155f4f0a1309fd2735d5"}, - {file = "SQLAlchemy-2.0.30-cp310-cp310-win32.whl", hash = "sha256:0138c5c16be3600923fa2169532205d18891b28afa817cb49b50e08f62198bb8"}, - {file = "SQLAlchemy-2.0.30-cp310-cp310-win_amd64.whl", hash = "sha256:99650e9f4cf3ad0d409fed3eec4f071fadd032e9a5edc7270cd646a26446feeb"}, - {file = "SQLAlchemy-2.0.30-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:955991a09f0992c68a499791a753523f50f71a6885531568404fa0f231832aa0"}, - {file = "SQLAlchemy-2.0.30-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f69e4c756ee2686767eb80f94c0125c8b0a0b87ede03eacc5c8ae3b54b99dc46"}, - {file = "SQLAlchemy-2.0.30-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69c9db1ce00e59e8dd09d7bae852a9add716efdc070a3e2068377e6ff0d6fdaa"}, - {file = "SQLAlchemy-2.0.30-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1429a4b0f709f19ff3b0cf13675b2b9bfa8a7e79990003207a011c0db880a13"}, - {file = "SQLAlchemy-2.0.30-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:efedba7e13aa9a6c8407c48facfdfa108a5a4128e35f4c68f20c3407e4376aa9"}, - {file = "SQLAlchemy-2.0.30-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:16863e2b132b761891d6c49f0a0f70030e0bcac4fd208117f6b7e053e68668d0"}, - {file = "SQLAlchemy-2.0.30-cp311-cp311-win32.whl", hash = "sha256:2ecabd9ccaa6e914e3dbb2aa46b76dede7eadc8cbf1b8083c94d936bcd5ffb49"}, - {file = "SQLAlchemy-2.0.30-cp311-cp311-win_amd64.whl", hash = "sha256:0b3f4c438e37d22b83e640f825ef0f37b95db9aa2d68203f2c9549375d0b2260"}, - {file = "SQLAlchemy-2.0.30-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5a79d65395ac5e6b0c2890935bad892eabb911c4aa8e8015067ddb37eea3d56c"}, - {file = "SQLAlchemy-2.0.30-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9a5baf9267b752390252889f0c802ea13b52dfee5e369527da229189b8bd592e"}, - {file = "SQLAlchemy-2.0.30-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cb5a646930c5123f8461f6468901573f334c2c63c795b9af350063a736d0134"}, - {file = "SQLAlchemy-2.0.30-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:296230899df0b77dec4eb799bcea6fbe39a43707ce7bb166519c97b583cfcab3"}, - {file = "SQLAlchemy-2.0.30-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c62d401223f468eb4da32627bffc0c78ed516b03bb8a34a58be54d618b74d472"}, - {file = "SQLAlchemy-2.0.30-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3b69e934f0f2b677ec111b4d83f92dc1a3210a779f69bf905273192cf4ed433e"}, - {file = "SQLAlchemy-2.0.30-cp312-cp312-win32.whl", hash = "sha256:77d2edb1f54aff37e3318f611637171e8ec71472f1fdc7348b41dcb226f93d90"}, - {file = "SQLAlchemy-2.0.30-cp312-cp312-win_amd64.whl", hash = "sha256:b6c7ec2b1f4969fc19b65b7059ed00497e25f54069407a8701091beb69e591a5"}, - {file = "SQLAlchemy-2.0.30-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5a8e3b0a7e09e94be7510d1661339d6b52daf202ed2f5b1f9f48ea34ee6f2d57"}, - {file = "SQLAlchemy-2.0.30-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b60203c63e8f984df92035610c5fb76d941254cf5d19751faab7d33b21e5ddc0"}, - {file = "SQLAlchemy-2.0.30-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1dc3eabd8c0232ee8387fbe03e0a62220a6f089e278b1f0aaf5e2d6210741ad"}, - {file = "SQLAlchemy-2.0.30-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:40ad017c672c00b9b663fcfcd5f0864a0a97828e2ee7ab0c140dc84058d194cf"}, - {file = "SQLAlchemy-2.0.30-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e42203d8d20dc704604862977b1470a122e4892791fe3ed165f041e4bf447a1b"}, - {file = "SQLAlchemy-2.0.30-cp37-cp37m-win32.whl", hash = "sha256:2a4f4da89c74435f2bc61878cd08f3646b699e7d2eba97144030d1be44e27584"}, - {file = "SQLAlchemy-2.0.30-cp37-cp37m-win_amd64.whl", hash = "sha256:b6bf767d14b77f6a18b6982cbbf29d71bede087edae495d11ab358280f304d8e"}, - {file = "SQLAlchemy-2.0.30-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bc0c53579650a891f9b83fa3cecd4e00218e071d0ba00c4890f5be0c34887ed3"}, - {file = "SQLAlchemy-2.0.30-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:311710f9a2ee235f1403537b10c7687214bb1f2b9ebb52702c5aa4a77f0b3af7"}, - {file = "SQLAlchemy-2.0.30-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:408f8b0e2c04677e9c93f40eef3ab22f550fecb3011b187f66a096395ff3d9fd"}, - {file = "SQLAlchemy-2.0.30-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37a4b4fb0dd4d2669070fb05b8b8824afd0af57587393015baee1cf9890242d9"}, - {file = "SQLAlchemy-2.0.30-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a943d297126c9230719c27fcbbeab57ecd5d15b0bd6bfd26e91bfcfe64220621"}, - {file = "SQLAlchemy-2.0.30-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0a089e218654e740a41388893e090d2e2c22c29028c9d1353feb38638820bbeb"}, - {file = "SQLAlchemy-2.0.30-cp38-cp38-win32.whl", hash = "sha256:fa561138a64f949f3e889eb9ab8c58e1504ab351d6cf55259dc4c248eaa19da6"}, - {file = "SQLAlchemy-2.0.30-cp38-cp38-win_amd64.whl", hash = "sha256:7d74336c65705b986d12a7e337ba27ab2b9d819993851b140efdf029248e818e"}, - {file = "SQLAlchemy-2.0.30-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ae8c62fe2480dd61c532ccafdbce9b29dacc126fe8be0d9a927ca3e699b9491a"}, - {file = "SQLAlchemy-2.0.30-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2383146973a15435e4717f94c7509982770e3e54974c71f76500a0136f22810b"}, - {file = "SQLAlchemy-2.0.30-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8409de825f2c3b62ab15788635ccaec0c881c3f12a8af2b12ae4910a0a9aeef6"}, - {file = "SQLAlchemy-2.0.30-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0094c5dc698a5f78d3d1539853e8ecec02516b62b8223c970c86d44e7a80f6c7"}, - {file = "SQLAlchemy-2.0.30-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:edc16a50f5e1b7a06a2dcc1f2205b0b961074c123ed17ebda726f376a5ab0953"}, - {file = "SQLAlchemy-2.0.30-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f7703c2010355dd28f53deb644a05fc30f796bd8598b43f0ba678878780b6e4c"}, - {file = "SQLAlchemy-2.0.30-cp39-cp39-win32.whl", hash = "sha256:1f9a727312ff6ad5248a4367358e2cf7e625e98b1028b1d7ab7b806b7d757513"}, - {file = "SQLAlchemy-2.0.30-cp39-cp39-win_amd64.whl", hash = "sha256:a0ef36b28534f2a5771191be6edb44cc2673c7b2edf6deac6562400288664221"}, - {file = "SQLAlchemy-2.0.30-py3-none-any.whl", hash = "sha256:7108d569d3990c71e26a42f60474b4c02c8586c4681af5fd67e51a044fdea86a"}, - {file = "SQLAlchemy-2.0.30.tar.gz", hash = "sha256:2b1708916730f4830bc69d6f49d37f7698b5bd7530aca7f04f785f8849e95255"}, + {file = "SQLAlchemy-2.0.36-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:59b8f3adb3971929a3e660337f5dacc5942c2cdb760afcabb2614ffbda9f9f72"}, + {file = "SQLAlchemy-2.0.36-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:37350015056a553e442ff672c2d20e6f4b6d0b2495691fa239d8aa18bb3bc908"}, + {file = "SQLAlchemy-2.0.36-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8318f4776c85abc3f40ab185e388bee7a6ea99e7fa3a30686580b209eaa35c08"}, + {file = "SQLAlchemy-2.0.36-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c245b1fbade9c35e5bd3b64270ab49ce990369018289ecfde3f9c318411aaa07"}, + {file = "SQLAlchemy-2.0.36-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:69f93723edbca7342624d09f6704e7126b152eaed3cdbb634cb657a54332a3c5"}, + {file = "SQLAlchemy-2.0.36-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f9511d8dd4a6e9271d07d150fb2f81874a3c8c95e11ff9af3a2dfc35fe42ee44"}, + {file = "SQLAlchemy-2.0.36-cp310-cp310-win32.whl", hash = "sha256:c3f3631693003d8e585d4200730616b78fafd5a01ef8b698f6967da5c605b3fa"}, + {file = "SQLAlchemy-2.0.36-cp310-cp310-win_amd64.whl", hash = "sha256:a86bfab2ef46d63300c0f06936bd6e6c0105faa11d509083ba8f2f9d237fb5b5"}, + {file = "SQLAlchemy-2.0.36-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fd3a55deef00f689ce931d4d1b23fa9f04c880a48ee97af488fd215cf24e2a6c"}, + {file = "SQLAlchemy-2.0.36-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4f5e9cd989b45b73bd359f693b935364f7e1f79486e29015813c338450aa5a71"}, + {file = "SQLAlchemy-2.0.36-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0ddd9db6e59c44875211bc4c7953a9f6638b937b0a88ae6d09eb46cced54eff"}, + {file = "SQLAlchemy-2.0.36-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2519f3a5d0517fc159afab1015e54bb81b4406c278749779be57a569d8d1bb0d"}, + {file = "SQLAlchemy-2.0.36-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:59b1ee96617135f6e1d6f275bbe988f419c5178016f3d41d3c0abb0c819f75bb"}, + {file = "SQLAlchemy-2.0.36-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:39769a115f730d683b0eb7b694db9789267bcd027326cccc3125e862eb03bfd8"}, + {file = "SQLAlchemy-2.0.36-cp311-cp311-win32.whl", hash = "sha256:66bffbad8d6271bb1cc2f9a4ea4f86f80fe5e2e3e501a5ae2a3dc6a76e604e6f"}, + {file = "SQLAlchemy-2.0.36-cp311-cp311-win_amd64.whl", hash = "sha256:23623166bfefe1487d81b698c423f8678e80df8b54614c2bf4b4cfcd7c711959"}, + {file = "SQLAlchemy-2.0.36-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f7b64e6ec3f02c35647be6b4851008b26cff592a95ecb13b6788a54ef80bbdd4"}, + {file = "SQLAlchemy-2.0.36-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:46331b00096a6db1fdc052d55b101dbbfc99155a548e20a0e4a8e5e4d1362855"}, + {file = "SQLAlchemy-2.0.36-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdf3386a801ea5aba17c6410dd1dc8d39cf454ca2565541b5ac42a84e1e28f53"}, + {file = "SQLAlchemy-2.0.36-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac9dfa18ff2a67b09b372d5db8743c27966abf0e5344c555d86cc7199f7ad83a"}, + {file = "SQLAlchemy-2.0.36-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:90812a8933df713fdf748b355527e3af257a11e415b613dd794512461eb8a686"}, + {file = "SQLAlchemy-2.0.36-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1bc330d9d29c7f06f003ab10e1eaced295e87940405afe1b110f2eb93a233588"}, + {file = "SQLAlchemy-2.0.36-cp312-cp312-win32.whl", hash = "sha256:79d2e78abc26d871875b419e1fd3c0bca31a1cb0043277d0d850014599626c2e"}, + {file = "SQLAlchemy-2.0.36-cp312-cp312-win_amd64.whl", hash = "sha256:b544ad1935a8541d177cb402948b94e871067656b3a0b9e91dbec136b06a2ff5"}, + {file = "SQLAlchemy-2.0.36-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b5cc79df7f4bc3d11e4b542596c03826063092611e481fcf1c9dfee3c94355ef"}, + {file = "SQLAlchemy-2.0.36-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3c01117dd36800f2ecaa238c65365b7b16497adc1522bf84906e5710ee9ba0e8"}, + {file = "SQLAlchemy-2.0.36-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9bc633f4ee4b4c46e7adcb3a9b5ec083bf1d9a97c1d3854b92749d935de40b9b"}, + {file = "SQLAlchemy-2.0.36-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e46ed38affdfc95d2c958de328d037d87801cfcbea6d421000859e9789e61c2"}, + {file = "SQLAlchemy-2.0.36-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b2985c0b06e989c043f1dc09d4fe89e1616aadd35392aea2844f0458a989eacf"}, + {file = "SQLAlchemy-2.0.36-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a121d62ebe7d26fec9155f83f8be5189ef1405f5973ea4874a26fab9f1e262c"}, + {file = "SQLAlchemy-2.0.36-cp313-cp313-win32.whl", hash = "sha256:0572f4bd6f94752167adfd7c1bed84f4b240ee6203a95e05d1e208d488d0d436"}, + {file = "SQLAlchemy-2.0.36-cp313-cp313-win_amd64.whl", hash = "sha256:8c78ac40bde930c60e0f78b3cd184c580f89456dd87fc08f9e3ee3ce8765ce88"}, + {file = "SQLAlchemy-2.0.36-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:be9812b766cad94a25bc63bec11f88c4ad3629a0cec1cd5d4ba48dc23860486b"}, + {file = "SQLAlchemy-2.0.36-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50aae840ebbd6cdd41af1c14590e5741665e5272d2fee999306673a1bb1fdb4d"}, + {file = "SQLAlchemy-2.0.36-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4557e1f11c5f653ebfdd924f3f9d5ebfc718283b0b9beebaa5dd6b77ec290971"}, + {file = "SQLAlchemy-2.0.36-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:07b441f7d03b9a66299ce7ccf3ef2900abc81c0db434f42a5694a37bd73870f2"}, + {file = "SQLAlchemy-2.0.36-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:28120ef39c92c2dd60f2721af9328479516844c6b550b077ca450c7d7dc68575"}, + {file = "SQLAlchemy-2.0.36-cp37-cp37m-win32.whl", hash = "sha256:b81ee3d84803fd42d0b154cb6892ae57ea6b7c55d8359a02379965706c7efe6c"}, + {file = "SQLAlchemy-2.0.36-cp37-cp37m-win_amd64.whl", hash = "sha256:f942a799516184c855e1a32fbc7b29d7e571b52612647866d4ec1c3242578fcb"}, + {file = "SQLAlchemy-2.0.36-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3d6718667da04294d7df1670d70eeddd414f313738d20a6f1d1f379e3139a545"}, + {file = "SQLAlchemy-2.0.36-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:72c28b84b174ce8af8504ca28ae9347d317f9dba3999e5981a3cd441f3712e24"}, + {file = "SQLAlchemy-2.0.36-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b11d0cfdd2b095e7b0686cf5fabeb9c67fae5b06d265d8180715b8cfa86522e3"}, + {file = "SQLAlchemy-2.0.36-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e32092c47011d113dc01ab3e1d3ce9f006a47223b18422c5c0d150af13a00687"}, + {file = "SQLAlchemy-2.0.36-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:6a440293d802d3011028e14e4226da1434b373cbaf4a4bbb63f845761a708346"}, + {file = "SQLAlchemy-2.0.36-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c54a1e53a0c308a8e8a7dffb59097bff7facda27c70c286f005327f21b2bd6b1"}, + {file = "SQLAlchemy-2.0.36-cp38-cp38-win32.whl", hash = "sha256:1e0d612a17581b6616ff03c8e3d5eff7452f34655c901f75d62bd86449d9750e"}, + {file = "SQLAlchemy-2.0.36-cp38-cp38-win_amd64.whl", hash = "sha256:8958b10490125124463095bbdadda5aa22ec799f91958e410438ad6c97a7b793"}, + {file = "SQLAlchemy-2.0.36-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dc022184d3e5cacc9579e41805a681187650e170eb2fd70e28b86192a479dcaa"}, + {file = "SQLAlchemy-2.0.36-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b817d41d692bf286abc181f8af476c4fbef3fd05e798777492618378448ee689"}, + {file = "SQLAlchemy-2.0.36-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4e46a888b54be23d03a89be510f24a7652fe6ff660787b96cd0e57a4ebcb46d"}, + {file = "SQLAlchemy-2.0.36-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4ae3005ed83f5967f961fd091f2f8c5329161f69ce8480aa8168b2d7fe37f06"}, + {file = "SQLAlchemy-2.0.36-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:03e08af7a5f9386a43919eda9de33ffda16b44eb11f3b313e6822243770e9763"}, + {file = "SQLAlchemy-2.0.36-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:3dbb986bad3ed5ceaf090200eba750b5245150bd97d3e67343a3cfed06feecf7"}, + {file = "SQLAlchemy-2.0.36-cp39-cp39-win32.whl", hash = "sha256:9fe53b404f24789b5ea9003fc25b9a3988feddebd7e7b369c8fac27ad6f52f28"}, + {file = "SQLAlchemy-2.0.36-cp39-cp39-win_amd64.whl", hash = "sha256:af148a33ff0349f53512a049c6406923e4e02bf2f26c5fb285f143faf4f0e46a"}, + {file = "SQLAlchemy-2.0.36-py3-none-any.whl", hash = "sha256:fddbe92b4760c6f5d48162aef14824add991aeda8ddadb3c31d56eb15ca69f8e"}, + {file = "sqlalchemy-2.0.36.tar.gz", hash = "sha256:7f2767680b6d2398aea7082e45a774b2b0767b5c8d8ffb9c8b683088ea9b29c5"}, ] [package.dependencies] -greenlet = {version = "!=0.4.17", optional = true, markers = "platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\" or extra == \"asyncio\""} +greenlet = {version = "!=0.4.17", markers = "python_version < \"3.13\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"} typing-extensions = ">=4.6.0" [package.extras] @@ -5294,7 +5869,7 @@ aioodbc = ["aioodbc", "greenlet (!=0.4.17)"] aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] asyncio = ["greenlet (!=0.4.17)"] asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"] -mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5)"] +mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5,!=1.1.10)"] mssql = ["pyodbc"] mssql-pymssql = ["pymssql"] mssql-pyodbc = ["pyodbc"] @@ -5317,6 +5892,7 @@ sqlcipher = ["sqlcipher3_binary"] name = "sqlmodel" version = "0.0.16" description = "SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness." +category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -5332,6 +5908,7 @@ SQLAlchemy = ">=2.0.0,<2.1.0" name = "stack-data" version = "0.6.3" description = "Extract data from python stack frames and tracebacks for informative displays" +category = "dev" optional = false python-versions = "*" files = [ @@ -5349,13 +5926,14 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] [[package]] name = "starlette" -version = "0.37.2" +version = "0.38.6" description = "The little ASGI library that shines." +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "starlette-0.37.2-py3-none-any.whl", hash = "sha256:6fe59f29268538e5d0d182f2791a479a0c64638e6935d1c6989e63fb2699c6ee"}, - {file = "starlette-0.37.2.tar.gz", hash = "sha256:9af890290133b79fc3db55474ade20f6220a364a0402e0b556e7cd5e1e093823"}, + {file = "starlette-0.38.6-py3-none-any.whl", hash = "sha256:4517a1409e2e73ee4951214ba012052b9e16f60e90d73cfb06192c19203bbb05"}, + {file = "starlette-0.38.6.tar.gz", hash = "sha256:863a1588f5574e70a821dadefb41e4881ea451a47a3cd1b4df359d4ffefe5ead"}, ] [package.dependencies] @@ -5368,6 +5946,7 @@ full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.7 name = "starlette-admin" version = "0.13.2" description = "Fast, beautiful and extensible administrative interface framework for Starlette/FastApi applications" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -5391,6 +5970,7 @@ test = ["aiomysql (>=0.1.1,<0.3.0)", "aiosqlite (>=0.17.0,<0.20.0)", "arrow (>=1 name = "terminado" version = "0.18.1" description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -5412,6 +5992,7 @@ typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"] name = "text-unidecode" version = "1.3" description = "The most basic Text::Unidecode port" +category = "main" optional = false python-versions = "*" files = [ @@ -5423,6 +6004,7 @@ files = [ name = "threddsclient" version = "0.4.2" description = "Thredds catalog client" +category = "main" optional = false python-versions = "*" files = [ @@ -5436,13 +6018,14 @@ requests = "*" [[package]] name = "tinycss2" -version = "1.3.0" +version = "1.4.0" description = "A tiny CSS parser" +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "tinycss2-1.3.0-py3-none-any.whl", hash = "sha256:54a8dbdffb334d536851be0226030e9505965bb2f30f21a4a82c55fb2a80fae7"}, - {file = "tinycss2-1.3.0.tar.gz", hash = "sha256:152f9acabd296a8375fbca5b84c961ff95971fcfc32e79550c8df8e29118c54d"}, + {file = "tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289"}, + {file = "tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7"}, ] [package.dependencies] @@ -5456,6 +6039,7 @@ test = ["pytest", "ruff"] 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 = [ @@ -5465,39 +6049,72 @@ files = [ [[package]] name = "tomli" -version = "2.0.1" +version = "2.2.1" description = "A lil' TOML parser" +category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, + {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, + {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, + {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, + {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, + {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, + {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, + {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, + {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, + {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, + {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, ] [[package]] name = "tornado" -version = "6.4" +version = "6.4.2" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +category = "dev" optional = false -python-versions = ">= 3.8" +python-versions = ">=3.8" files = [ - {file = "tornado-6.4-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:02ccefc7d8211e5a7f9e8bc3f9e5b0ad6262ba2fbb683a6443ecc804e5224ce0"}, - {file = "tornado-6.4-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:27787de946a9cffd63ce5814c33f734c627a87072ec7eed71f7fc4417bb16263"}, - {file = "tornado-6.4-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7894c581ecdcf91666a0912f18ce5e757213999e183ebfc2c3fdbf4d5bd764e"}, - {file = "tornado-6.4-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e43bc2e5370a6a8e413e1e1cd0c91bedc5bd62a74a532371042a18ef19e10579"}, - {file = "tornado-6.4-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0251554cdd50b4b44362f73ad5ba7126fc5b2c2895cc62b14a1c2d7ea32f212"}, - {file = "tornado-6.4-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:fd03192e287fbd0899dd8f81c6fb9cbbc69194d2074b38f384cb6fa72b80e9c2"}, - {file = "tornado-6.4-cp38-abi3-musllinux_1_1_i686.whl", hash = "sha256:88b84956273fbd73420e6d4b8d5ccbe913c65d31351b4c004ae362eba06e1f78"}, - {file = "tornado-6.4-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:71ddfc23a0e03ef2df1c1397d859868d158c8276a0603b96cf86892bff58149f"}, - {file = "tornado-6.4-cp38-abi3-win32.whl", hash = "sha256:6f8a6c77900f5ae93d8b4ae1196472d0ccc2775cc1dfdc9e7727889145c45052"}, - {file = "tornado-6.4-cp38-abi3-win_amd64.whl", hash = "sha256:10aeaa8006333433da48dec9fe417877f8bcc21f48dda8d661ae79da357b2a63"}, - {file = "tornado-6.4.tar.gz", hash = "sha256:72291fa6e6bc84e626589f1c29d90a5a6d593ef5ae68052ee2ef000dfd273dee"}, + {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e828cce1123e9e44ae2a50a9de3055497ab1d0aeb440c5ac23064d9e44880da1"}, + {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:072ce12ada169c5b00b7d92a99ba089447ccc993ea2143c9ede887e0937aa803"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a017d239bd1bb0919f72af256a970624241f070496635784d9bf0db640d3fec"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c36e62ce8f63409301537222faffcef7dfc5284f27eec227389f2ad11b09d946"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca9eb02196e789c9cb5c3c7c0f04fb447dc2adffd95265b2c7223a8a615ccbf"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:304463bd0772442ff4d0f5149c6f1c2135a1fae045adf070821c6cdc76980634"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:c82c46813ba483a385ab2a99caeaedf92585a1f90defb5693351fa7e4ea0bf73"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:932d195ca9015956fa502c6b56af9eb06106140d844a335590c1ec7f5277d10c"}, + {file = "tornado-6.4.2-cp38-abi3-win32.whl", hash = "sha256:2876cef82e6c5978fde1e0d5b1f919d756968d5b4282418f3146b79b58556482"}, + {file = "tornado-6.4.2-cp38-abi3-win_amd64.whl", hash = "sha256:908b71bf3ff37d81073356a5fadcc660eb10c1476ee6e2725588626ce7e5ca38"}, + {file = "tornado-6.4.2.tar.gz", hash = "sha256:92bad5b4746e9879fd7bf1eb21dce4e3fc5128d71601f80005afa39237ad620b"}, ] [[package]] name = "traitlets" version = "5.14.3" description = "Traitlets Python configuration system" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -5513,6 +6130,7 @@ test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0, name = "traittypes" version = "0.2.1" description = "Scipy trait types" +category = "dev" optional = false python-versions = "*" files = [ @@ -5528,13 +6146,14 @@ test = ["numpy", "pandas", "pytest", "xarray"] [[package]] name = "typer" -version = "0.12.3" +version = "0.12.5" description = "Typer, build great CLIs. Easy to code. Based on Python type hints." +category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "typer-0.12.3-py3-none-any.whl", hash = "sha256:070d7ca53f785acbccba8e7d28b08dcd88f79f1fbda035ade0aecec71ca5c914"}, - {file = "typer-0.12.3.tar.gz", hash = "sha256:49e73131481d804288ef62598d97a1ceef3058905aa536a1134f90891ba35482"}, + {file = "typer-0.12.5-py3-none-any.whl", hash = "sha256:62fe4e471711b147e3365034133904df3e235698399bc4de2b36c8579298d52b"}, + {file = "typer-0.12.5.tar.gz", hash = "sha256:f592f089bedcc8ec1b974125d64851029c3b1af145f04aca64d69410f0c9b722"}, ] [package.dependencies] @@ -5545,41 +6164,45 @@ typing-extensions = ">=3.7.4.3" [[package]] name = "types-python-dateutil" -version = "2.9.0.20240316" +version = "2.9.0.20241206" description = "Typing stubs for python-dateutil" +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "types-python-dateutil-2.9.0.20240316.tar.gz", hash = "sha256:5d2f2e240b86905e40944dd787db6da9263f0deabef1076ddaed797351ec0202"}, - {file = "types_python_dateutil-2.9.0.20240316-py3-none-any.whl", hash = "sha256:6b8cb66d960771ce5ff974e9dd45e38facb81718cc1e208b10b1baccbfdbee3b"}, + {file = "types_python_dateutil-2.9.0.20241206-py3-none-any.whl", hash = "sha256:e248a4bc70a486d3e3ec84d0dc30eec3a5f979d6e7ee4123ae043eedbb987f53"}, + {file = "types_python_dateutil-2.9.0.20241206.tar.gz", hash = "sha256:18f493414c26ffba692a72369fea7a154c502646301ebfe3d56a04b3767284cb"}, ] [[package]] name = "typing-extensions" -version = "4.12.1" +version = "4.12.2" description = "Backported and Experimental Type Hints for Python 3.8+" +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.12.1-py3-none-any.whl", hash = "sha256:6024b58b69089e5a89c347397254e35f1bf02a907728ec7fee9bf0fe837d203a"}, - {file = "typing_extensions-4.12.1.tar.gz", hash = "sha256:915f5e35ff76f56588223f15fdd5938f9a1cf9195c0de25130c627e4d597f6d1"}, + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, ] [[package]] name = "tzdata" -version = "2024.1" +version = "2024.2" description = "Provider of IANA time zone data" +category = "main" optional = false python-versions = ">=2" files = [ - {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, - {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, + {file = "tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd"}, + {file = "tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc"}, ] [[package]] name = "tzlocal" version = "5.2" description = "tzinfo object for the local timezone" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -5597,6 +6220,7 @@ devenv = ["check-manifest", "pytest (>=4.3)", "pytest-cov", "pytest-mock (>=3.3) name = "ujson" version = "5.10.0" description = "Ultra fast JSON encoder and decoder for Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -5684,6 +6308,7 @@ files = [ name = "uri-template" version = "1.3.0" description = "RFC 6570 URI Template Processor" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -5696,13 +6321,14 @@ dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake [[package]] name = "urllib3" -version = "2.2.1" +version = "2.2.3" description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, - {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, + {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"}, + {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"}, ] [package.extras] @@ -5713,13 +6339,14 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "uvicorn" -version = "0.30.5" +version = "0.30.6" description = "The lightning-fast ASGI server." +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "uvicorn-0.30.5-py3-none-any.whl", hash = "sha256:b2d86de274726e9878188fa07576c9ceeff90a839e2b6e25c917fe05f5a6c835"}, - {file = "uvicorn-0.30.5.tar.gz", hash = "sha256:ac6fdbd4425c5fd17a9fe39daf4d4d075da6fdc80f653e5894cdc2fd98752bee"}, + {file = "uvicorn-0.30.6-py3-none-any.whl", hash = "sha256:65fd46fe3fda5bdc1b03b94eb634923ff18cd35b2f084813ea79d1f103f711b5"}, + {file = "uvicorn-0.30.6.tar.gz", hash = "sha256:4b15decdda1e72be08209e860a1e10e92439ad5b97cf44cc945fcbee66fc5788"}, ] [package.dependencies] @@ -5732,13 +6359,14 @@ standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", [[package]] name = "virtualenv" -version = "20.26.2" +version = "20.28.0" description = "Virtual Python Environment builder" +category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "virtualenv-20.26.2-py3-none-any.whl", hash = "sha256:a624db5e94f01ad993d476b9ee5346fdf7b9de43ccaee0e0197012dc838a0e9b"}, - {file = "virtualenv-20.26.2.tar.gz", hash = "sha256:82bf0f4eebbb78d36ddaee0283d43fe5736b53880b8a8cdcd37390a07ac3741c"}, + {file = "virtualenv-20.28.0-py3-none-any.whl", hash = "sha256:23eae1b4516ecd610481eda647f3a7c09aea295055337331bb4e6892ecce47b0"}, + {file = "virtualenv-20.28.0.tar.gz", hash = "sha256:2c9c3262bb8e7b87ea801d715fae4495e6032450c71d2309be9550e7364049aa"}, ] [package.dependencies] @@ -5754,6 +6382,7 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess name = "wcwidth" version = "0.2.13" description = "Measures the displayed width of unicode strings in a terminal" +category = "dev" optional = false python-versions = "*" files = [ @@ -5763,23 +6392,21 @@ files = [ [[package]] name = "webcolors" -version = "1.13" +version = "24.11.1" description = "A library for working with the color formats defined by HTML and CSS." +category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" files = [ - {file = "webcolors-1.13-py3-none-any.whl", hash = "sha256:29bc7e8752c0a1bd4a1f03c14d6e6a72e93d82193738fa860cbff59d0fcc11bf"}, - {file = "webcolors-1.13.tar.gz", hash = "sha256:c225b674c83fa923be93d235330ce0300373d02885cef23238813b0d5668304a"}, + {file = "webcolors-24.11.1-py3-none-any.whl", hash = "sha256:515291393b4cdf0eb19c155749a096f779f7d909f7cceea072791cb9095b92e9"}, + {file = "webcolors-24.11.1.tar.gz", hash = "sha256:ecb3d768f32202af770477b8b65f318fa4f566c22948673a977b00d589dd80f6"}, ] -[package.extras] -docs = ["furo", "sphinx", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-notfound-page", "sphinxext-opengraph"] -tests = ["pytest", "pytest-cov"] - [[package]] name = "webencodings" version = "0.5.1" description = "Character encoding aliases for legacy web content" +category = "dev" optional = false python-versions = "*" files = [ @@ -5791,6 +6418,7 @@ files = [ name = "websocket-client" version = "1.8.0" description = "WebSocket client for Python with low level API options" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -5805,94 +6433,110 @@ test = ["websockets"] [[package]] name = "websockets" -version = "12.0" +version = "13.1" description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "websockets-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d554236b2a2006e0ce16315c16eaa0d628dab009c33b63ea03f41c6107958374"}, - {file = "websockets-12.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2d225bb6886591b1746b17c0573e29804619c8f755b5598d875bb4235ea639be"}, - {file = "websockets-12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:eb809e816916a3b210bed3c82fb88eaf16e8afcf9c115ebb2bacede1797d2547"}, - {file = "websockets-12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c588f6abc13f78a67044c6b1273a99e1cf31038ad51815b3b016ce699f0d75c2"}, - {file = "websockets-12.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5aa9348186d79a5f232115ed3fa9020eab66d6c3437d72f9d2c8ac0c6858c558"}, - {file = "websockets-12.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6350b14a40c95ddd53e775dbdbbbc59b124a5c8ecd6fbb09c2e52029f7a9f480"}, - {file = "websockets-12.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:70ec754cc2a769bcd218ed8d7209055667b30860ffecb8633a834dde27d6307c"}, - {file = "websockets-12.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6e96f5ed1b83a8ddb07909b45bd94833b0710f738115751cdaa9da1fb0cb66e8"}, - {file = "websockets-12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4d87be612cbef86f994178d5186add3d94e9f31cc3cb499a0482b866ec477603"}, - {file = "websockets-12.0-cp310-cp310-win32.whl", hash = "sha256:befe90632d66caaf72e8b2ed4d7f02b348913813c8b0a32fae1cc5fe3730902f"}, - {file = "websockets-12.0-cp310-cp310-win_amd64.whl", hash = "sha256:363f57ca8bc8576195d0540c648aa58ac18cf85b76ad5202b9f976918f4219cf"}, - {file = "websockets-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5d873c7de42dea355d73f170be0f23788cf3fa9f7bed718fd2830eefedce01b4"}, - {file = "websockets-12.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3f61726cae9f65b872502ff3c1496abc93ffbe31b278455c418492016e2afc8f"}, - {file = "websockets-12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ed2fcf7a07334c77fc8a230755c2209223a7cc44fc27597729b8ef5425aa61a3"}, - {file = "websockets-12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e332c210b14b57904869ca9f9bf4ca32f5427a03eeb625da9b616c85a3a506c"}, - {file = "websockets-12.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5693ef74233122f8ebab026817b1b37fe25c411ecfca084b29bc7d6efc548f45"}, - {file = "websockets-12.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e9e7db18b4539a29cc5ad8c8b252738a30e2b13f033c2d6e9d0549b45841c04"}, - {file = "websockets-12.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6e2df67b8014767d0f785baa98393725739287684b9f8d8a1001eb2839031447"}, - {file = "websockets-12.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:bea88d71630c5900690fcb03161ab18f8f244805c59e2e0dc4ffadae0a7ee0ca"}, - {file = "websockets-12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dff6cdf35e31d1315790149fee351f9e52978130cef6c87c4b6c9b3baf78bc53"}, - {file = "websockets-12.0-cp311-cp311-win32.whl", hash = "sha256:3e3aa8c468af01d70332a382350ee95f6986db479ce7af14d5e81ec52aa2b402"}, - {file = "websockets-12.0-cp311-cp311-win_amd64.whl", hash = "sha256:25eb766c8ad27da0f79420b2af4b85d29914ba0edf69f547cc4f06ca6f1d403b"}, - {file = "websockets-12.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0e6e2711d5a8e6e482cacb927a49a3d432345dfe7dea8ace7b5790df5932e4df"}, - {file = "websockets-12.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:dbcf72a37f0b3316e993e13ecf32f10c0e1259c28ffd0a85cee26e8549595fbc"}, - {file = "websockets-12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:12743ab88ab2af1d17dd4acb4645677cb7063ef4db93abffbf164218a5d54c6b"}, - {file = "websockets-12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b645f491f3c48d3f8a00d1fce07445fab7347fec54a3e65f0725d730d5b99cb"}, - {file = "websockets-12.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9893d1aa45a7f8b3bc4510f6ccf8db8c3b62120917af15e3de247f0780294b92"}, - {file = "websockets-12.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f38a7b376117ef7aff996e737583172bdf535932c9ca021746573bce40165ed"}, - {file = "websockets-12.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:f764ba54e33daf20e167915edc443b6f88956f37fb606449b4a5b10ba42235a5"}, - {file = "websockets-12.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:1e4b3f8ea6a9cfa8be8484c9221ec0257508e3a1ec43c36acdefb2a9c3b00aa2"}, - {file = "websockets-12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9fdf06fd06c32205a07e47328ab49c40fc1407cdec801d698a7c41167ea45113"}, - {file = "websockets-12.0-cp312-cp312-win32.whl", hash = "sha256:baa386875b70cbd81798fa9f71be689c1bf484f65fd6fb08d051a0ee4e79924d"}, - {file = "websockets-12.0-cp312-cp312-win_amd64.whl", hash = "sha256:ae0a5da8f35a5be197f328d4727dbcfafa53d1824fac3d96cdd3a642fe09394f"}, - {file = "websockets-12.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5f6ffe2c6598f7f7207eef9a1228b6f5c818f9f4d53ee920aacd35cec8110438"}, - {file = "websockets-12.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9edf3fc590cc2ec20dc9d7a45108b5bbaf21c0d89f9fd3fd1685e223771dc0b2"}, - {file = "websockets-12.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8572132c7be52632201a35f5e08348137f658e5ffd21f51f94572ca6c05ea81d"}, - {file = "websockets-12.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:604428d1b87edbf02b233e2c207d7d528460fa978f9e391bd8aaf9c8311de137"}, - {file = "websockets-12.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1a9d160fd080c6285e202327aba140fc9a0d910b09e423afff4ae5cbbf1c7205"}, - {file = "websockets-12.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87b4aafed34653e465eb77b7c93ef058516cb5acf3eb21e42f33928616172def"}, - {file = "websockets-12.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b2ee7288b85959797970114deae81ab41b731f19ebcd3bd499ae9ca0e3f1d2c8"}, - {file = "websockets-12.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:7fa3d25e81bfe6a89718e9791128398a50dec6d57faf23770787ff441d851967"}, - {file = "websockets-12.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a571f035a47212288e3b3519944f6bf4ac7bc7553243e41eac50dd48552b6df7"}, - {file = "websockets-12.0-cp38-cp38-win32.whl", hash = "sha256:3c6cc1360c10c17463aadd29dd3af332d4a1adaa8796f6b0e9f9df1fdb0bad62"}, - {file = "websockets-12.0-cp38-cp38-win_amd64.whl", hash = "sha256:1bf386089178ea69d720f8db6199a0504a406209a0fc23e603b27b300fdd6892"}, - {file = "websockets-12.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ab3d732ad50a4fbd04a4490ef08acd0517b6ae6b77eb967251f4c263011a990d"}, - {file = "websockets-12.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a1d9697f3337a89691e3bd8dc56dea45a6f6d975f92e7d5f773bc715c15dde28"}, - {file = "websockets-12.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1df2fbd2c8a98d38a66f5238484405b8d1d16f929bb7a33ed73e4801222a6f53"}, - {file = "websockets-12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23509452b3bc38e3a057382c2e941d5ac2e01e251acce7adc74011d7d8de434c"}, - {file = "websockets-12.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e5fc14ec6ea568200ea4ef46545073da81900a2b67b3e666f04adf53ad452ec"}, - {file = "websockets-12.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46e71dbbd12850224243f5d2aeec90f0aaa0f2dde5aeeb8fc8df21e04d99eff9"}, - {file = "websockets-12.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b81f90dcc6c85a9b7f29873beb56c94c85d6f0dac2ea8b60d995bd18bf3e2aae"}, - {file = "websockets-12.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a02413bc474feda2849c59ed2dfb2cddb4cd3d2f03a2fedec51d6e959d9b608b"}, - {file = "websockets-12.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bbe6013f9f791944ed31ca08b077e26249309639313fff132bfbf3ba105673b9"}, - {file = "websockets-12.0-cp39-cp39-win32.whl", hash = "sha256:cbe83a6bbdf207ff0541de01e11904827540aa069293696dd528a6640bd6a5f6"}, - {file = "websockets-12.0-cp39-cp39-win_amd64.whl", hash = "sha256:fc4e7fa5414512b481a2483775a8e8be7803a35b30ca805afa4998a84f9fd9e8"}, - {file = "websockets-12.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:248d8e2446e13c1d4326e0a6a4e9629cb13a11195051a73acf414812700badbd"}, - {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f44069528d45a933997a6fef143030d8ca8042f0dfaad753e2906398290e2870"}, - {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c4e37d36f0d19f0a4413d3e18c0d03d0c268ada2061868c1e6f5ab1a6d575077"}, - {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d829f975fc2e527a3ef2f9c8f25e553eb7bc779c6665e8e1d52aa22800bb38b"}, - {file = "websockets-12.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:2c71bd45a777433dd9113847af751aae36e448bc6b8c361a566cb043eda6ec30"}, - {file = "websockets-12.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0bee75f400895aef54157b36ed6d3b308fcab62e5260703add87f44cee9c82a6"}, - {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:423fc1ed29f7512fceb727e2d2aecb952c46aa34895e9ed96071821309951123"}, - {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27a5e9964ef509016759f2ef3f2c1e13f403725a5e6a1775555994966a66e931"}, - {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3181df4583c4d3994d31fb235dc681d2aaad744fbdbf94c4802485ececdecf2"}, - {file = "websockets-12.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:b067cb952ce8bf40115f6c19f478dc71c5e719b7fbaa511359795dfd9d1a6468"}, - {file = "websockets-12.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:00700340c6c7ab788f176d118775202aadea7602c5cc6be6ae127761c16d6b0b"}, - {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e469d01137942849cff40517c97a30a93ae79917752b34029f0ec72df6b46399"}, - {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffefa1374cd508d633646d51a8e9277763a9b78ae71324183693959cf94635a7"}, - {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba0cab91b3956dfa9f512147860783a1829a8d905ee218a9837c18f683239611"}, - {file = "websockets-12.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2cb388a5bfb56df4d9a406783b7f9dbefb888c09b71629351cc6b036e9259370"}, - {file = "websockets-12.0-py3-none-any.whl", hash = "sha256:dc284bbc8d7c78a6c69e0c7325ab46ee5e40bb4d50e494d8131a07ef47500e9e"}, - {file = "websockets-12.0.tar.gz", hash = "sha256:81df9cbcbb6c260de1e007e58c011bfebe2dafc8435107b0537f393dd38c8b1b"}, + {file = "websockets-13.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f48c749857f8fb598fb890a75f540e3221d0976ed0bf879cf3c7eef34151acee"}, + {file = "websockets-13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c7e72ce6bda6fb9409cc1e8164dd41d7c91466fb599eb047cfda72fe758a34a7"}, + {file = "websockets-13.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f779498eeec470295a2b1a5d97aa1bc9814ecd25e1eb637bd9d1c73a327387f6"}, + {file = "websockets-13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4676df3fe46956fbb0437d8800cd5f2b6d41143b6e7e842e60554398432cf29b"}, + {file = "websockets-13.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7affedeb43a70351bb811dadf49493c9cfd1ed94c9c70095fd177e9cc1541fa"}, + {file = "websockets-13.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1971e62d2caa443e57588e1d82d15f663b29ff9dfe7446d9964a4b6f12c1e700"}, + {file = "websockets-13.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5f2e75431f8dc4a47f31565a6e1355fb4f2ecaa99d6b89737527ea917066e26c"}, + {file = "websockets-13.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:58cf7e75dbf7e566088b07e36ea2e3e2bd5676e22216e4cad108d4df4a7402a0"}, + {file = "websockets-13.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c90d6dec6be2c7d03378a574de87af9b1efea77d0c52a8301dd831ece938452f"}, + {file = "websockets-13.1-cp310-cp310-win32.whl", hash = "sha256:730f42125ccb14602f455155084f978bd9e8e57e89b569b4d7f0f0c17a448ffe"}, + {file = "websockets-13.1-cp310-cp310-win_amd64.whl", hash = "sha256:5993260f483d05a9737073be197371940c01b257cc45ae3f1d5d7adb371b266a"}, + {file = "websockets-13.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:61fc0dfcda609cda0fc9fe7977694c0c59cf9d749fbb17f4e9483929e3c48a19"}, + {file = "websockets-13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ceec59f59d092c5007e815def4ebb80c2de330e9588e101cf8bd94c143ec78a5"}, + {file = "websockets-13.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c1dca61c6db1166c48b95198c0b7d9c990b30c756fc2923cc66f68d17dc558fd"}, + {file = "websockets-13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:308e20f22c2c77f3f39caca508e765f8725020b84aa963474e18c59accbf4c02"}, + {file = "websockets-13.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62d516c325e6540e8a57b94abefc3459d7dab8ce52ac75c96cad5549e187e3a7"}, + {file = "websockets-13.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87c6e35319b46b99e168eb98472d6c7d8634ee37750d7693656dc766395df096"}, + {file = "websockets-13.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5f9fee94ebafbc3117c30be1844ed01a3b177bb6e39088bc6b2fa1dc15572084"}, + {file = "websockets-13.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7c1e90228c2f5cdde263253fa5db63e6653f1c00e7ec64108065a0b9713fa1b3"}, + {file = "websockets-13.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6548f29b0e401eea2b967b2fdc1c7c7b5ebb3eeb470ed23a54cd45ef078a0db9"}, + {file = "websockets-13.1-cp311-cp311-win32.whl", hash = "sha256:c11d4d16e133f6df8916cc5b7e3e96ee4c44c936717d684a94f48f82edb7c92f"}, + {file = "websockets-13.1-cp311-cp311-win_amd64.whl", hash = "sha256:d04f13a1d75cb2b8382bdc16ae6fa58c97337253826dfe136195b7f89f661557"}, + {file = "websockets-13.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:9d75baf00138f80b48f1eac72ad1535aac0b6461265a0bcad391fc5aba875cfc"}, + {file = "websockets-13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9b6f347deb3dcfbfde1c20baa21c2ac0751afaa73e64e5b693bb2b848efeaa49"}, + {file = "websockets-13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de58647e3f9c42f13f90ac7e5f58900c80a39019848c5547bc691693098ae1bd"}, + {file = "websockets-13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1b54689e38d1279a51d11e3467dd2f3a50f5f2e879012ce8f2d6943f00e83f0"}, + {file = "websockets-13.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf1781ef73c073e6b0f90af841aaf98501f975d306bbf6221683dd594ccc52b6"}, + {file = "websockets-13.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d23b88b9388ed85c6faf0e74d8dec4f4d3baf3ecf20a65a47b836d56260d4b9"}, + {file = "websockets-13.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3c78383585f47ccb0fcf186dcb8a43f5438bd7d8f47d69e0b56f71bf431a0a68"}, + {file = "websockets-13.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d6d300f8ec35c24025ceb9b9019ae9040c1ab2f01cddc2bcc0b518af31c75c14"}, + {file = "websockets-13.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a9dcaf8b0cc72a392760bb8755922c03e17a5a54e08cca58e8b74f6902b433cf"}, + {file = "websockets-13.1-cp312-cp312-win32.whl", hash = "sha256:2f85cf4f2a1ba8f602298a853cec8526c2ca42a9a4b947ec236eaedb8f2dc80c"}, + {file = "websockets-13.1-cp312-cp312-win_amd64.whl", hash = "sha256:38377f8b0cdeee97c552d20cf1865695fcd56aba155ad1b4ca8779a5b6ef4ac3"}, + {file = "websockets-13.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a9ab1e71d3d2e54a0aa646ab6d4eebfaa5f416fe78dfe4da2839525dc5d765c6"}, + {file = "websockets-13.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b9d7439d7fab4dce00570bb906875734df13d9faa4b48e261c440a5fec6d9708"}, + {file = "websockets-13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:327b74e915cf13c5931334c61e1a41040e365d380f812513a255aa804b183418"}, + {file = "websockets-13.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:325b1ccdbf5e5725fdcb1b0e9ad4d2545056479d0eee392c291c1bf76206435a"}, + {file = "websockets-13.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:346bee67a65f189e0e33f520f253d5147ab76ae42493804319b5716e46dddf0f"}, + {file = "websockets-13.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91a0fa841646320ec0d3accdff5b757b06e2e5c86ba32af2e0815c96c7a603c5"}, + {file = "websockets-13.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:18503d2c5f3943e93819238bf20df71982d193f73dcecd26c94514f417f6b135"}, + {file = "websockets-13.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:a9cd1af7e18e5221d2878378fbc287a14cd527fdd5939ed56a18df8a31136bb2"}, + {file = "websockets-13.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:70c5be9f416aa72aab7a2a76c90ae0a4fe2755c1816c153c1a2bcc3333ce4ce6"}, + {file = "websockets-13.1-cp313-cp313-win32.whl", hash = "sha256:624459daabeb310d3815b276c1adef475b3e6804abaf2d9d2c061c319f7f187d"}, + {file = "websockets-13.1-cp313-cp313-win_amd64.whl", hash = "sha256:c518e84bb59c2baae725accd355c8dc517b4a3ed8db88b4bc93c78dae2974bf2"}, + {file = "websockets-13.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c7934fd0e920e70468e676fe7f1b7261c1efa0d6c037c6722278ca0228ad9d0d"}, + {file = "websockets-13.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:149e622dc48c10ccc3d2760e5f36753db9cacf3ad7bc7bbbfd7d9c819e286f23"}, + {file = "websockets-13.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a569eb1b05d72f9bce2ebd28a1ce2054311b66677fcd46cf36204ad23acead8c"}, + {file = "websockets-13.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95df24ca1e1bd93bbca51d94dd049a984609687cb2fb08a7f2c56ac84e9816ea"}, + {file = "websockets-13.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d8dbb1bf0c0a4ae8b40bdc9be7f644e2f3fb4e8a9aca7145bfa510d4a374eeb7"}, + {file = "websockets-13.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:035233b7531fb92a76beefcbf479504db8c72eb3bff41da55aecce3a0f729e54"}, + {file = "websockets-13.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:e4450fc83a3df53dec45922b576e91e94f5578d06436871dce3a6be38e40f5db"}, + {file = "websockets-13.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:463e1c6ec853202dd3657f156123d6b4dad0c546ea2e2e38be2b3f7c5b8e7295"}, + {file = "websockets-13.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:6d6855bbe70119872c05107e38fbc7f96b1d8cb047d95c2c50869a46c65a8e96"}, + {file = "websockets-13.1-cp38-cp38-win32.whl", hash = "sha256:204e5107f43095012b00f1451374693267adbb832d29966a01ecc4ce1db26faf"}, + {file = "websockets-13.1-cp38-cp38-win_amd64.whl", hash = "sha256:485307243237328c022bc908b90e4457d0daa8b5cf4b3723fd3c4a8012fce4c6"}, + {file = "websockets-13.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9b37c184f8b976f0c0a231a5f3d6efe10807d41ccbe4488df8c74174805eea7d"}, + {file = "websockets-13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:163e7277e1a0bd9fb3c8842a71661ad19c6aa7bb3d6678dc7f89b17fbcc4aeb7"}, + {file = "websockets-13.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4b889dbd1342820cc210ba44307cf75ae5f2f96226c0038094455a96e64fb07a"}, + {file = "websockets-13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:586a356928692c1fed0eca68b4d1c2cbbd1ca2acf2ac7e7ebd3b9052582deefa"}, + {file = "websockets-13.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7bd6abf1e070a6b72bfeb71049d6ad286852e285f146682bf30d0296f5fbadfa"}, + {file = "websockets-13.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2aad13a200e5934f5a6767492fb07151e1de1d6079c003ab31e1823733ae79"}, + {file = "websockets-13.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:df01aea34b6e9e33572c35cd16bae5a47785e7d5c8cb2b54b2acdb9678315a17"}, + {file = "websockets-13.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e54affdeb21026329fb0744ad187cf812f7d3c2aa702a5edb562b325191fcab6"}, + {file = "websockets-13.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9ef8aa8bdbac47f4968a5d66462a2a0935d044bf35c0e5a8af152d58516dbeb5"}, + {file = "websockets-13.1-cp39-cp39-win32.whl", hash = "sha256:deeb929efe52bed518f6eb2ddc00cc496366a14c726005726ad62c2dd9017a3c"}, + {file = "websockets-13.1-cp39-cp39-win_amd64.whl", hash = "sha256:7c65ffa900e7cc958cd088b9a9157a8141c991f8c53d11087e6fb7277a03f81d"}, + {file = "websockets-13.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5dd6da9bec02735931fccec99d97c29f47cc61f644264eb995ad6c0c27667238"}, + {file = "websockets-13.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:2510c09d8e8df777177ee3d40cd35450dc169a81e747455cc4197e63f7e7bfe5"}, + {file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1c3cf67185543730888b20682fb186fc8d0fa6f07ccc3ef4390831ab4b388d9"}, + {file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bcc03c8b72267e97b49149e4863d57c2d77f13fae12066622dc78fe322490fe6"}, + {file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:004280a140f220c812e65f36944a9ca92d766b6cc4560be652a0a3883a79ed8a"}, + {file = "websockets-13.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e2620453c075abeb0daa949a292e19f56de518988e079c36478bacf9546ced23"}, + {file = "websockets-13.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9156c45750b37337f7b0b00e6248991a047be4aa44554c9886fe6bdd605aab3b"}, + {file = "websockets-13.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:80c421e07973a89fbdd93e6f2003c17d20b69010458d3a8e37fb47874bd67d51"}, + {file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82d0ba76371769d6a4e56f7e83bb8e81846d17a6190971e38b5de108bde9b0d7"}, + {file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e9875a0143f07d74dc5e1ded1c4581f0d9f7ab86c78994e2ed9e95050073c94d"}, + {file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a11e38ad8922c7961447f35c7b17bffa15de4d17c70abd07bfbe12d6faa3e027"}, + {file = "websockets-13.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:4059f790b6ae8768471cddb65d3c4fe4792b0ab48e154c9f0a04cefaabcd5978"}, + {file = "websockets-13.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:25c35bf84bf7c7369d247f0b8cfa157f989862c49104c5cf85cb5436a641d93e"}, + {file = "websockets-13.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:83f91d8a9bb404b8c2c41a707ac7f7f75b9442a0a876df295de27251a856ad09"}, + {file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a43cfdcddd07f4ca2b1afb459824dd3c6d53a51410636a2c7fc97b9a8cf4842"}, + {file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48a2ef1381632a2f0cb4efeff34efa97901c9fbc118e01951ad7cfc10601a9bb"}, + {file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:459bf774c754c35dbb487360b12c5727adab887f1622b8aed5755880a21c4a20"}, + {file = "websockets-13.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:95858ca14a9f6fa8413d29e0a585b31b278388aa775b8a81fa24830123874678"}, + {file = "websockets-13.1-py3-none-any.whl", hash = "sha256:a9a396a6ad26130cdae92ae10c36af09d9bfe6cafe69670fd3b6da9b07b4044f"}, + {file = "websockets-13.1.tar.gz", hash = "sha256:a3b3366087c1bc0a2795111edcadddb8b3b59509d5db5d7ea3fdd69f954a8878"}, ] [[package]] name = "werkzeug" -version = "3.0.4" +version = "3.1.3" description = "The comprehensive WSGI web application library." +category = "dev" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "werkzeug-3.0.4-py3-none-any.whl", hash = "sha256:02c9eb92b7d6c06f31a782811505d2157837cea66aaede3e217c7c27c039476c"}, - {file = "werkzeug-3.0.4.tar.gz", hash = "sha256:34f2371506b250df4d4f84bfe7b0921e4762525762bbd936614909fe25cd7306"}, + {file = "werkzeug-3.1.3-py3-none-any.whl", hash = "sha256:54b78bf3716d19a65be4fceccc0d1d7b89e608834989dfae50ea87564639213e"}, + {file = "werkzeug-3.1.3.tar.gz", hash = "sha256:60723ce945c19328679790e3282cc758aa4a6040e4bb330f53d30fa546d44746"}, ] [package.dependencies] @@ -5903,19 +6547,96 @@ watchdog = ["watchdog (>=2.3)"] [[package]] name = "widgetsnbextension" -version = "4.0.11" +version = "4.0.13" description = "Jupyter interactive widgets for Jupyter Notebook" +category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "widgetsnbextension-4.0.11-py3-none-any.whl", hash = "sha256:55d4d6949d100e0d08b94948a42efc3ed6dfdc0e9468b2c4b128c9a2ce3a7a36"}, - {file = "widgetsnbextension-4.0.11.tar.gz", hash = "sha256:8b22a8f1910bfd188e596fe7fc05dcbd87e810c8a4ba010bdb3da86637398474"}, + {file = "widgetsnbextension-4.0.13-py3-none-any.whl", hash = "sha256:74b2692e8500525cc38c2b877236ba51d34541e6385eeed5aec15a70f88a6c71"}, + {file = "widgetsnbextension-4.0.13.tar.gz", hash = "sha256:ffcb67bc9febd10234a362795f643927f4e0c05d9342c727b65d2384f8feacb6"}, +] + +[[package]] +name = "wrapt" +version = "1.17.0" +description = "Module for decorators, wrappers and monkey patching." +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "wrapt-1.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2a0c23b8319848426f305f9cb0c98a6e32ee68a36264f45948ccf8e7d2b941f8"}, + {file = "wrapt-1.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1ca5f060e205f72bec57faae5bd817a1560fcfc4af03f414b08fa29106b7e2d"}, + {file = "wrapt-1.17.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e185ec6060e301a7e5f8461c86fb3640a7beb1a0f0208ffde7a65ec4074931df"}, + {file = "wrapt-1.17.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb90765dd91aed05b53cd7a87bd7f5c188fcd95960914bae0d32c5e7f899719d"}, + {file = "wrapt-1.17.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:879591c2b5ab0a7184258274c42a126b74a2c3d5a329df16d69f9cee07bba6ea"}, + {file = "wrapt-1.17.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fce6fee67c318fdfb7f285c29a82d84782ae2579c0e1b385b7f36c6e8074fffb"}, + {file = "wrapt-1.17.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0698d3a86f68abc894d537887b9bbf84d29bcfbc759e23f4644be27acf6da301"}, + {file = "wrapt-1.17.0-cp310-cp310-win32.whl", hash = "sha256:69d093792dc34a9c4c8a70e4973a3361c7a7578e9cd86961b2bbf38ca71e4e22"}, + {file = "wrapt-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:f28b29dc158ca5d6ac396c8e0a2ef45c4e97bb7e65522bfc04c989e6fe814575"}, + {file = "wrapt-1.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:74bf625b1b4caaa7bad51d9003f8b07a468a704e0644a700e936c357c17dd45a"}, + {file = "wrapt-1.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f2a28eb35cf99d5f5bd12f5dd44a0f41d206db226535b37b0c60e9da162c3ed"}, + {file = "wrapt-1.17.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:81b1289e99cf4bad07c23393ab447e5e96db0ab50974a280f7954b071d41b489"}, + {file = "wrapt-1.17.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f2939cd4a2a52ca32bc0b359015718472d7f6de870760342e7ba295be9ebaf9"}, + {file = "wrapt-1.17.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6a9653131bda68a1f029c52157fd81e11f07d485df55410401f745007bd6d339"}, + {file = "wrapt-1.17.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4e4b4385363de9052dac1a67bfb535c376f3d19c238b5f36bddc95efae15e12d"}, + {file = "wrapt-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bdf62d25234290db1837875d4dceb2151e4ea7f9fff2ed41c0fde23ed542eb5b"}, + {file = "wrapt-1.17.0-cp311-cp311-win32.whl", hash = "sha256:5d8fd17635b262448ab8f99230fe4dac991af1dabdbb92f7a70a6afac8a7e346"}, + {file = "wrapt-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:92a3d214d5e53cb1db8b015f30d544bc9d3f7179a05feb8f16df713cecc2620a"}, + {file = "wrapt-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:89fc28495896097622c3fc238915c79365dd0ede02f9a82ce436b13bd0ab7569"}, + {file = "wrapt-1.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:875d240fdbdbe9e11f9831901fb8719da0bd4e6131f83aa9f69b96d18fae7504"}, + {file = "wrapt-1.17.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5ed16d95fd142e9c72b6c10b06514ad30e846a0d0917ab406186541fe68b451"}, + {file = "wrapt-1.17.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18b956061b8db634120b58f668592a772e87e2e78bc1f6a906cfcaa0cc7991c1"}, + {file = "wrapt-1.17.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:daba396199399ccabafbfc509037ac635a6bc18510ad1add8fd16d4739cdd106"}, + {file = "wrapt-1.17.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4d63f4d446e10ad19ed01188d6c1e1bb134cde8c18b0aa2acfd973d41fcc5ada"}, + {file = "wrapt-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8a5e7cc39a45fc430af1aefc4d77ee6bad72c5bcdb1322cfde852c15192b8bd4"}, + {file = "wrapt-1.17.0-cp312-cp312-win32.whl", hash = "sha256:0a0a1a1ec28b641f2a3a2c35cbe86c00051c04fffcfcc577ffcdd707df3f8635"}, + {file = "wrapt-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:3c34f6896a01b84bab196f7119770fd8466c8ae3dfa73c59c0bb281e7b588ce7"}, + {file = "wrapt-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:714c12485aa52efbc0fc0ade1e9ab3a70343db82627f90f2ecbc898fdf0bb181"}, + {file = "wrapt-1.17.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da427d311782324a376cacb47c1a4adc43f99fd9d996ffc1b3e8529c4074d393"}, + {file = "wrapt-1.17.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba1739fb38441a27a676f4de4123d3e858e494fac05868b7a281c0a383c098f4"}, + {file = "wrapt-1.17.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e711fc1acc7468463bc084d1b68561e40d1eaa135d8c509a65dd534403d83d7b"}, + {file = "wrapt-1.17.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:140ea00c87fafc42739bd74a94a5a9003f8e72c27c47cd4f61d8e05e6dec8721"}, + {file = "wrapt-1.17.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:73a96fd11d2b2e77d623a7f26e004cc31f131a365add1ce1ce9a19e55a1eef90"}, + {file = "wrapt-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0b48554952f0f387984da81ccfa73b62e52817a4386d070c75e4db7d43a28c4a"}, + {file = "wrapt-1.17.0-cp313-cp313-win32.whl", hash = "sha256:498fec8da10e3e62edd1e7368f4b24aa362ac0ad931e678332d1b209aec93045"}, + {file = "wrapt-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:fd136bb85f4568fffca995bd3c8d52080b1e5b225dbf1c2b17b66b4c5fa02838"}, + {file = "wrapt-1.17.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:17fcf043d0b4724858f25b8826c36e08f9fb2e475410bece0ec44a22d533da9b"}, + {file = "wrapt-1.17.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4a557d97f12813dc5e18dad9fa765ae44ddd56a672bb5de4825527c847d6379"}, + {file = "wrapt-1.17.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0229b247b0fc7dee0d36176cbb79dbaf2a9eb7ecc50ec3121f40ef443155fb1d"}, + {file = "wrapt-1.17.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8425cfce27b8b20c9b89d77fb50e368d8306a90bf2b6eef2cdf5cd5083adf83f"}, + {file = "wrapt-1.17.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9c900108df470060174108012de06d45f514aa4ec21a191e7ab42988ff42a86c"}, + {file = "wrapt-1.17.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:4e547b447073fc0dbfcbff15154c1be8823d10dab4ad401bdb1575e3fdedff1b"}, + {file = "wrapt-1.17.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:914f66f3b6fc7b915d46c1cc424bc2441841083de01b90f9e81109c9759e43ab"}, + {file = "wrapt-1.17.0-cp313-cp313t-win32.whl", hash = "sha256:a4192b45dff127c7d69b3bdfb4d3e47b64179a0b9900b6351859f3001397dabf"}, + {file = "wrapt-1.17.0-cp313-cp313t-win_amd64.whl", hash = "sha256:4f643df3d4419ea3f856c5c3f40fec1d65ea2e89ec812c83f7767c8730f9827a"}, + {file = "wrapt-1.17.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:69c40d4655e078ede067a7095544bcec5a963566e17503e75a3a3e0fe2803b13"}, + {file = "wrapt-1.17.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f495b6754358979379f84534f8dd7a43ff8cff2558dcdea4a148a6e713a758f"}, + {file = "wrapt-1.17.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:baa7ef4e0886a6f482e00d1d5bcd37c201b383f1d314643dfb0367169f94f04c"}, + {file = "wrapt-1.17.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8fc931382e56627ec4acb01e09ce66e5c03c384ca52606111cee50d931a342d"}, + {file = "wrapt-1.17.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8f8909cdb9f1b237786c09a810e24ee5e15ef17019f7cecb207ce205b9b5fcce"}, + {file = "wrapt-1.17.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ad47b095f0bdc5585bced35bd088cbfe4177236c7df9984b3cc46b391cc60627"}, + {file = "wrapt-1.17.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:948a9bd0fb2c5120457b07e59c8d7210cbc8703243225dbd78f4dfc13c8d2d1f"}, + {file = "wrapt-1.17.0-cp38-cp38-win32.whl", hash = "sha256:5ae271862b2142f4bc687bdbfcc942e2473a89999a54231aa1c2c676e28f29ea"}, + {file = "wrapt-1.17.0-cp38-cp38-win_amd64.whl", hash = "sha256:f335579a1b485c834849e9075191c9898e0731af45705c2ebf70e0cd5d58beed"}, + {file = "wrapt-1.17.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d751300b94e35b6016d4b1e7d0e7bbc3b5e1751e2405ef908316c2a9024008a1"}, + {file = "wrapt-1.17.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7264cbb4a18dc4acfd73b63e4bcfec9c9802614572025bdd44d0721983fc1d9c"}, + {file = "wrapt-1.17.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:33539c6f5b96cf0b1105a0ff4cf5db9332e773bb521cc804a90e58dc49b10578"}, + {file = "wrapt-1.17.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c30970bdee1cad6a8da2044febd824ef6dc4cc0b19e39af3085c763fdec7de33"}, + {file = "wrapt-1.17.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:bc7f729a72b16ee21795a943f85c6244971724819819a41ddbaeb691b2dd85ad"}, + {file = "wrapt-1.17.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:6ff02a91c4fc9b6a94e1c9c20f62ea06a7e375f42fe57587f004d1078ac86ca9"}, + {file = "wrapt-1.17.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2dfb7cff84e72e7bf975b06b4989477873dcf160b2fd89959c629535df53d4e0"}, + {file = "wrapt-1.17.0-cp39-cp39-win32.whl", hash = "sha256:2399408ac33ffd5b200480ee858baa58d77dd30e0dd0cab6a8a9547135f30a88"}, + {file = "wrapt-1.17.0-cp39-cp39-win_amd64.whl", hash = "sha256:4f763a29ee6a20c529496a20a7bcb16a73de27f5da6a843249c7047daf135977"}, + {file = "wrapt-1.17.0-py3-none-any.whl", hash = "sha256:d2c63b93548eda58abf5188e505ffed0229bf675f7c3090f8e36ad55b8cbc371"}, + {file = "wrapt-1.17.0.tar.gz", hash = "sha256:16187aa2317c731170a88ef35e8937ae0f533c402872c1ee5e6d079fcf320801"}, ] [[package]] name = "xyzservices" version = "2024.9.0" description = "Source of XYZ tiles providers" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -5925,111 +6646,126 @@ files = [ [[package]] name = "yarl" -version = "1.9.4" +version = "1.18.3" description = "Yet another URL library" +category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" files = [ - {file = "yarl-1.9.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a8c1df72eb746f4136fe9a2e72b0c9dc1da1cbd23b5372f94b5820ff8ae30e0e"}, - {file = "yarl-1.9.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a3a6ed1d525bfb91b3fc9b690c5a21bb52de28c018530ad85093cc488bee2dd2"}, - {file = "yarl-1.9.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c38c9ddb6103ceae4e4498f9c08fac9b590c5c71b0370f98714768e22ac6fa66"}, - {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9e09c9d74f4566e905a0b8fa668c58109f7624db96a2171f21747abc7524234"}, - {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8477c1ee4bd47c57d49621a062121c3023609f7a13b8a46953eb6c9716ca392"}, - {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5ff2c858f5f6a42c2a8e751100f237c5e869cbde669a724f2062d4c4ef93551"}, - {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:357495293086c5b6d34ca9616a43d329317feab7917518bc97a08f9e55648455"}, - {file = "yarl-1.9.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54525ae423d7b7a8ee81ba189f131054defdb122cde31ff17477951464c1691c"}, - {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:801e9264d19643548651b9db361ce3287176671fb0117f96b5ac0ee1c3530d53"}, - {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e516dc8baf7b380e6c1c26792610230f37147bb754d6426462ab115a02944385"}, - {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:7d5aaac37d19b2904bb9dfe12cdb08c8443e7ba7d2852894ad448d4b8f442863"}, - {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:54beabb809ffcacbd9d28ac57b0db46e42a6e341a030293fb3185c409e626b8b"}, - {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bac8d525a8dbc2a1507ec731d2867025d11ceadcb4dd421423a5d42c56818541"}, - {file = "yarl-1.9.4-cp310-cp310-win32.whl", hash = "sha256:7855426dfbddac81896b6e533ebefc0af2f132d4a47340cee6d22cac7190022d"}, - {file = "yarl-1.9.4-cp310-cp310-win_amd64.whl", hash = "sha256:848cd2a1df56ddbffeb375535fb62c9d1645dde33ca4d51341378b3f5954429b"}, - {file = "yarl-1.9.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:35a2b9396879ce32754bd457d31a51ff0a9d426fd9e0e3c33394bf4b9036b099"}, - {file = "yarl-1.9.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c7d56b293cc071e82532f70adcbd8b61909eec973ae9d2d1f9b233f3d943f2c"}, - {file = "yarl-1.9.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d8a1c6c0be645c745a081c192e747c5de06e944a0d21245f4cf7c05e457c36e0"}, - {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b3c1ffe10069f655ea2d731808e76e0f452fc6c749bea04781daf18e6039525"}, - {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:549d19c84c55d11687ddbd47eeb348a89df9cb30e1993f1b128f4685cd0ebbf8"}, - {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7409f968456111140c1c95301cadf071bd30a81cbd7ab829169fb9e3d72eae9"}, - {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e23a6d84d9d1738dbc6e38167776107e63307dfc8ad108e580548d1f2c587f42"}, - {file = "yarl-1.9.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d8b889777de69897406c9fb0b76cdf2fd0f31267861ae7501d93003d55f54fbe"}, - {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:03caa9507d3d3c83bca08650678e25364e1843b484f19986a527630ca376ecce"}, - {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4e9035df8d0880b2f1c7f5031f33f69e071dfe72ee9310cfc76f7b605958ceb9"}, - {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:c0ec0ed476f77db9fb29bca17f0a8fcc7bc97ad4c6c1d8959c507decb22e8572"}, - {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:ee04010f26d5102399bd17f8df8bc38dc7ccd7701dc77f4a68c5b8d733406958"}, - {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:49a180c2e0743d5d6e0b4d1a9e5f633c62eca3f8a86ba5dd3c471060e352ca98"}, - {file = "yarl-1.9.4-cp311-cp311-win32.whl", hash = "sha256:81eb57278deb6098a5b62e88ad8281b2ba09f2f1147c4767522353eaa6260b31"}, - {file = "yarl-1.9.4-cp311-cp311-win_amd64.whl", hash = "sha256:d1d2532b340b692880261c15aee4dc94dd22ca5d61b9db9a8a361953d36410b1"}, - {file = "yarl-1.9.4-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0d2454f0aef65ea81037759be5ca9947539667eecebca092733b2eb43c965a81"}, - {file = "yarl-1.9.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:44d8ffbb9c06e5a7f529f38f53eda23e50d1ed33c6c869e01481d3fafa6b8142"}, - {file = "yarl-1.9.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:aaaea1e536f98754a6e5c56091baa1b6ce2f2700cc4a00b0d49eca8dea471074"}, - {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3777ce5536d17989c91696db1d459574e9a9bd37660ea7ee4d3344579bb6f129"}, - {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fc5fc1eeb029757349ad26bbc5880557389a03fa6ada41703db5e068881e5f2"}, - {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea65804b5dc88dacd4a40279af0cdadcfe74b3e5b4c897aa0d81cf86927fee78"}, - {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa102d6d280a5455ad6a0f9e6d769989638718e938a6a0a2ff3f4a7ff8c62cc4"}, - {file = "yarl-1.9.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09efe4615ada057ba2d30df871d2f668af661e971dfeedf0c159927d48bbeff0"}, - {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:008d3e808d03ef28542372d01057fd09168419cdc8f848efe2804f894ae03e51"}, - {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6f5cb257bc2ec58f437da2b37a8cd48f666db96d47b8a3115c29f316313654ff"}, - {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:992f18e0ea248ee03b5a6e8b3b4738850ae7dbb172cc41c966462801cbf62cf7"}, - {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0e9d124c191d5b881060a9e5060627694c3bdd1fe24c5eecc8d5d7d0eb6faabc"}, - {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3986b6f41ad22988e53d5778f91855dc0399b043fc8946d4f2e68af22ee9ff10"}, - {file = "yarl-1.9.4-cp312-cp312-win32.whl", hash = "sha256:4b21516d181cd77ebd06ce160ef8cc2a5e9ad35fb1c5930882baff5ac865eee7"}, - {file = "yarl-1.9.4-cp312-cp312-win_amd64.whl", hash = "sha256:a9bd00dc3bc395a662900f33f74feb3e757429e545d831eef5bb280252631984"}, - {file = "yarl-1.9.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:63b20738b5aac74e239622d2fe30df4fca4942a86e31bf47a81a0e94c14df94f"}, - {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7d7f7de27b8944f1fee2c26a88b4dabc2409d2fea7a9ed3df79b67277644e17"}, - {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c74018551e31269d56fab81a728f683667e7c28c04e807ba08f8c9e3bba32f14"}, - {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ca06675212f94e7a610e85ca36948bb8fc023e458dd6c63ef71abfd482481aa5"}, - {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5aef935237d60a51a62b86249839b51345f47564208c6ee615ed2a40878dccdd"}, - {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2b134fd795e2322b7684155b7855cc99409d10b2e408056db2b93b51a52accc7"}, - {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d25039a474c4c72a5ad4b52495056f843a7ff07b632c1b92ea9043a3d9950f6e"}, - {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f7d6b36dd2e029b6bcb8a13cf19664c7b8e19ab3a58e0fefbb5b8461447ed5ec"}, - {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:957b4774373cf6f709359e5c8c4a0af9f6d7875db657adb0feaf8d6cb3c3964c"}, - {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:d7eeb6d22331e2fd42fce928a81c697c9ee2d51400bd1a28803965883e13cead"}, - {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:6a962e04b8f91f8c4e5917e518d17958e3bdee71fd1d8b88cdce74dd0ebbf434"}, - {file = "yarl-1.9.4-cp37-cp37m-win32.whl", hash = "sha256:f3bc6af6e2b8f92eced34ef6a96ffb248e863af20ef4fde9448cc8c9b858b749"}, - {file = "yarl-1.9.4-cp37-cp37m-win_amd64.whl", hash = "sha256:ad4d7a90a92e528aadf4965d685c17dacff3df282db1121136c382dc0b6014d2"}, - {file = "yarl-1.9.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ec61d826d80fc293ed46c9dd26995921e3a82146feacd952ef0757236fc137be"}, - {file = "yarl-1.9.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8be9e837ea9113676e5754b43b940b50cce76d9ed7d2461df1af39a8ee674d9f"}, - {file = "yarl-1.9.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:bef596fdaa8f26e3d66af846bbe77057237cb6e8efff8cd7cc8dff9a62278bbf"}, - {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d47552b6e52c3319fede1b60b3de120fe83bde9b7bddad11a69fb0af7db32f1"}, - {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84fc30f71689d7fc9168b92788abc977dc8cefa806909565fc2951d02f6b7d57"}, - {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4aa9741085f635934f3a2583e16fcf62ba835719a8b2b28fb2917bb0537c1dfa"}, - {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:206a55215e6d05dbc6c98ce598a59e6fbd0c493e2de4ea6cc2f4934d5a18d130"}, - {file = "yarl-1.9.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07574b007ee20e5c375a8fe4a0789fad26db905f9813be0f9fef5a68080de559"}, - {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5a2e2433eb9344a163aced6a5f6c9222c0786e5a9e9cac2c89f0b28433f56e23"}, - {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6ad6d10ed9b67a382b45f29ea028f92d25bc0bc1daf6c5b801b90b5aa70fb9ec"}, - {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:6fe79f998a4052d79e1c30eeb7d6c1c1056ad33300f682465e1b4e9b5a188b78"}, - {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:a825ec844298c791fd28ed14ed1bffc56a98d15b8c58a20e0e08c1f5f2bea1be"}, - {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8619d6915b3b0b34420cf9b2bb6d81ef59d984cb0fde7544e9ece32b4b3043c3"}, - {file = "yarl-1.9.4-cp38-cp38-win32.whl", hash = "sha256:686a0c2f85f83463272ddffd4deb5e591c98aac1897d65e92319f729c320eece"}, - {file = "yarl-1.9.4-cp38-cp38-win_amd64.whl", hash = "sha256:a00862fb23195b6b8322f7d781b0dc1d82cb3bcac346d1e38689370cc1cc398b"}, - {file = "yarl-1.9.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:604f31d97fa493083ea21bd9b92c419012531c4e17ea6da0f65cacdcf5d0bd27"}, - {file = "yarl-1.9.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8a854227cf581330ffa2c4824d96e52ee621dd571078a252c25e3a3b3d94a1b1"}, - {file = "yarl-1.9.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ba6f52cbc7809cd8d74604cce9c14868306ae4aa0282016b641c661f981a6e91"}, - {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6327976c7c2f4ee6816eff196e25385ccc02cb81427952414a64811037bbc8b"}, - {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8397a3817d7dcdd14bb266283cd1d6fc7264a48c186b986f32e86d86d35fbac5"}, - {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e0381b4ce23ff92f8170080c97678040fc5b08da85e9e292292aba67fdac6c34"}, - {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23d32a2594cb5d565d358a92e151315d1b2268bc10f4610d098f96b147370136"}, - {file = "yarl-1.9.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ddb2a5c08a4eaaba605340fdee8fc08e406c56617566d9643ad8bf6852778fc7"}, - {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:26a1dc6285e03f3cc9e839a2da83bcbf31dcb0d004c72d0730e755b33466c30e"}, - {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:18580f672e44ce1238b82f7fb87d727c4a131f3a9d33a5e0e82b793362bf18b4"}, - {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:29e0f83f37610f173eb7e7b5562dd71467993495e568e708d99e9d1944f561ec"}, - {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:1f23e4fe1e8794f74b6027d7cf19dc25f8b63af1483d91d595d4a07eca1fb26c"}, - {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:db8e58b9d79200c76956cefd14d5c90af54416ff5353c5bfd7cbe58818e26ef0"}, - {file = "yarl-1.9.4-cp39-cp39-win32.whl", hash = "sha256:c7224cab95645c7ab53791022ae77a4509472613e839dab722a72abe5a684575"}, - {file = "yarl-1.9.4-cp39-cp39-win_amd64.whl", hash = "sha256:824d6c50492add5da9374875ce72db7a0733b29c2394890aef23d533106e2b15"}, - {file = "yarl-1.9.4-py3-none-any.whl", hash = "sha256:928cecb0ef9d5a7946eb6ff58417ad2fe9375762382f1bf5c55e61645f2c43ad"}, - {file = "yarl-1.9.4.tar.gz", hash = "sha256:566db86717cf8080b99b58b083b773a908ae40f06681e87e589a976faf8246bf"}, + {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7df647e8edd71f000a5208fe6ff8c382a1de8edfbccdbbfe649d263de07d8c34"}, + {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c69697d3adff5aa4f874b19c0e4ed65180ceed6318ec856ebc423aa5850d84f7"}, + {file = "yarl-1.18.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:602d98f2c2d929f8e697ed274fbadc09902c4025c5a9963bf4e9edfc3ab6f7ed"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c654d5207c78e0bd6d749f6dae1dcbbfde3403ad3a4b11f3c5544d9906969dde"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5094d9206c64181d0f6e76ebd8fb2f8fe274950a63890ee9e0ebfd58bf9d787b"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35098b24e0327fc4ebdc8ffe336cee0a87a700c24ffed13161af80124b7dc8e5"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3236da9272872443f81fedc389bace88408f64f89f75d1bdb2256069a8730ccc"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2c08cc9b16f4f4bc522771d96734c7901e7ebef70c6c5c35dd0f10845270bcd"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:80316a8bd5109320d38eef8833ccf5f89608c9107d02d2a7f985f98ed6876990"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c1e1cc06da1491e6734f0ea1e6294ce00792193c463350626571c287c9a704db"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fea09ca13323376a2fdfb353a5fa2e59f90cd18d7ca4eaa1fd31f0a8b4f91e62"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e3b9fd71836999aad54084906f8663dffcd2a7fb5cdafd6c37713b2e72be1760"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:757e81cae69244257d125ff31663249b3013b5dc0a8520d73694aed497fb195b"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b1771de9944d875f1b98a745bc547e684b863abf8f8287da8466cf470ef52690"}, + {file = "yarl-1.18.3-cp310-cp310-win32.whl", hash = "sha256:8874027a53e3aea659a6d62751800cf6e63314c160fd607489ba5c2edd753cf6"}, + {file = "yarl-1.18.3-cp310-cp310-win_amd64.whl", hash = "sha256:93b2e109287f93db79210f86deb6b9bbb81ac32fc97236b16f7433db7fc437d8"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8503ad47387b8ebd39cbbbdf0bf113e17330ffd339ba1144074da24c545f0069"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:02ddb6756f8f4517a2d5e99d8b2f272488e18dd0bfbc802f31c16c6c20f22193"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:67a283dd2882ac98cc6318384f565bffc751ab564605959df4752d42483ad889"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d980e0325b6eddc81331d3f4551e2a333999fb176fd153e075c6d1c2530aa8a8"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b643562c12680b01e17239be267bc306bbc6aac1f34f6444d1bded0c5ce438ca"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c017a3b6df3a1bd45b9fa49a0f54005e53fbcad16633870104b66fa1a30a29d8"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75674776d96d7b851b6498f17824ba17849d790a44d282929c42dbb77d4f17ae"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccaa3a4b521b780a7e771cc336a2dba389a0861592bbce09a476190bb0c8b4b3"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2d06d3005e668744e11ed80812e61efd77d70bb7f03e33c1598c301eea20efbb"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9d41beda9dc97ca9ab0b9888cb71f7539124bc05df02c0cff6e5acc5a19dcc6e"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ba23302c0c61a9999784e73809427c9dbedd79f66a13d84ad1b1943802eaaf59"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6748dbf9bfa5ba1afcc7556b71cda0d7ce5f24768043a02a58846e4a443d808d"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0b0cad37311123211dc91eadcb322ef4d4a66008d3e1bdc404808992260e1a0e"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fb2171a4486bb075316ee754c6d8382ea6eb8b399d4ec62fde2b591f879778a"}, + {file = "yarl-1.18.3-cp311-cp311-win32.whl", hash = "sha256:61b1a825a13bef4a5f10b1885245377d3cd0bf87cba068e1d9a88c2ae36880e1"}, + {file = "yarl-1.18.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9d60031cf568c627d028239693fd718025719c02c9f55df0a53e587aab951b5"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1dd4bdd05407ced96fed3d7f25dbbf88d2ffb045a0db60dbc247f5b3c5c25d50"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7c33dd1931a95e5d9a772d0ac5e44cac8957eaf58e3c8da8c1414de7dd27c576"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25b411eddcfd56a2f0cd6a384e9f4f7aa3efee14b188de13048c25b5e91f1640"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436c4fc0a4d66b2badc6c5fc5ef4e47bb10e4fd9bf0c79524ac719a01f3607c2"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e35ef8683211db69ffe129a25d5634319a677570ab6b2eba4afa860f54eeaf75"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84b2deecba4a3f1a398df819151eb72d29bfeb3b69abb145a00ddc8d30094512"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e5a1fea0fd4f5bfa7440a47eff01d9822a65b4488f7cff83155a0f31a2ecba"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0e883008013c0e4aef84dcfe2a0b172c4d23c2669412cf5b3371003941f72bb"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a3f356548e34a70b0172d8890006c37be92995f62d95a07b4a42e90fba54272"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ccd17349166b1bee6e529b4add61727d3f55edb7babbe4069b5764c9587a8cc6"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b958ddd075ddba5b09bb0be8a6d9906d2ce933aee81100db289badbeb966f54e"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d79f7d9aabd6011004e33b22bc13056a3e3fb54794d138af57f5ee9d9032cb"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4891ed92157e5430874dad17b15eb1fda57627710756c27422200c52d8a4e393"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ce1af883b94304f493698b00d0f006d56aea98aeb49d75ec7d98cd4a777e9285"}, + {file = "yarl-1.18.3-cp312-cp312-win32.whl", hash = "sha256:f91c4803173928a25e1a55b943c81f55b8872f0018be83e3ad4938adffb77dd2"}, + {file = "yarl-1.18.3-cp312-cp312-win_amd64.whl", hash = "sha256:7e2ee16578af3b52ac2f334c3b1f92262f47e02cc6193c598502bd46f5cd1477"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:90adb47ad432332d4f0bc28f83a5963f426ce9a1a8809f5e584e704b82685dcb"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:913829534200eb0f789d45349e55203a091f45c37a2674678744ae52fae23efa"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef9f7768395923c3039055c14334ba4d926f3baf7b776c923c93d80195624782"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a19f62ff30117e706ebc9090b8ecc79aeb77d0b1f5ec10d2d27a12bc9f66d0"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e17c9361d46a4d5addf777c6dd5eab0715a7684c2f11b88c67ac37edfba6c482"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a74a13a4c857a84a845505fd2d68e54826a2cd01935a96efb1e9d86c728e186"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41f7ce59d6ee7741af71d82020346af364949314ed3d87553763a2df1829cc58"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f52a265001d830bc425f82ca9eabda94a64a4d753b07d623a9f2863fde532b53"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:82123d0c954dc58db301f5021a01854a85bf1f3bb7d12ae0c01afc414a882ca2"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2ec9bbba33b2d00999af4631a3397d1fd78290c48e2a3e52d8dd72db3a067ac8"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fbd6748e8ab9b41171bb95c6142faf068f5ef1511935a0aa07025438dd9a9bc1"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:877d209b6aebeb5b16c42cbb377f5f94d9e556626b1bfff66d7b0d115be88d0a"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b464c4ab4bfcb41e3bfd3f1c26600d038376c2de3297760dfe064d2cb7ea8e10"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8d39d351e7faf01483cc7ff7c0213c412e38e5a340238826be7e0e4da450fdc8"}, + {file = "yarl-1.18.3-cp313-cp313-win32.whl", hash = "sha256:61ee62ead9b68b9123ec24bc866cbef297dd266175d53296e2db5e7f797f902d"}, + {file = "yarl-1.18.3-cp313-cp313-win_amd64.whl", hash = "sha256:578e281c393af575879990861823ef19d66e2b1d0098414855dd367e234f5b3c"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:61e5e68cb65ac8f547f6b5ef933f510134a6bf31bb178be428994b0cb46c2a04"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe57328fbc1bfd0bd0514470ac692630f3901c0ee39052ae47acd1d90a436719"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a440a2a624683108a1b454705ecd7afc1c3438a08e890a1513d468671d90a04e"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09c7907c8548bcd6ab860e5f513e727c53b4a714f459b084f6580b49fa1b9cee"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4f6450109834af88cb4cc5ecddfc5380ebb9c228695afc11915a0bf82116789"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9ca04806f3be0ac6d558fffc2fdf8fcef767e0489d2684a21912cc4ed0cd1b8"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77a6e85b90a7641d2e07184df5557132a337f136250caafc9ccaa4a2a998ca2c"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6333c5a377c8e2f5fae35e7b8f145c617b02c939d04110c76f29ee3676b5f9a5"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0b3c92fa08759dbf12b3a59579a4096ba9af8dd344d9a813fc7f5070d86bbab1"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4ac515b860c36becb81bb84b667466885096b5fc85596948548b667da3bf9f24"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:045b8482ce9483ada4f3f23b3774f4e1bf4f23a2d5c912ed5170f68efb053318"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:a4bb030cf46a434ec0225bddbebd4b89e6471814ca851abb8696170adb163985"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:54d6921f07555713b9300bee9c50fb46e57e2e639027089b1d795ecd9f7fa910"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1d407181cfa6e70077df3377938c08012d18893f9f20e92f7d2f314a437c30b1"}, + {file = "yarl-1.18.3-cp39-cp39-win32.whl", hash = "sha256:ac36703a585e0929b032fbaab0707b75dc12703766d0b53486eabd5139ebadd5"}, + {file = "yarl-1.18.3-cp39-cp39-win_amd64.whl", hash = "sha256:ba87babd629f8af77f557b61e49e7c7cac36f22f871156b91e10a6e9d4f829e9"}, + {file = "yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b"}, + {file = "yarl-1.18.3.tar.gz", hash = "sha256:ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1"}, ] [package.dependencies] idna = ">=2.0" multidict = ">=4.0" +propcache = ">=0.2.0" + +[[package]] +name = "zipp" +version = "3.21.0" +description = "Backport of pathlib-compatible object wrapper for zip files" +category = "main" +optional = false +python-versions = ">=3.9" +files = [ + {file = "zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931"}, + {file = "zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4"}, +] + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] +type = ["pytest-mypy"] [[package]] name = "zope-event" version = "5.0" description = "Very basic event publishing system" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -6046,54 +6782,58 @@ test = ["zope.testrunner"] [[package]] name = "zope-interface" -version = "7.0.2" +version = "7.2" description = "Interfaces for Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "zope.interface-7.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:093ab9a2c5105d826755c43a76770b69353dbe95ec27a0b5e88ab4f63d7744b8"}, - {file = "zope.interface-7.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3246cccb9e4ce34c9b32ad55a53098043af5e7185623bf5de8e6ec5d8e71415e"}, - {file = "zope.interface-7.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:375258373bc3879a6c509281487063cf14add7129fc867eb1c287c0db46ca007"}, - {file = "zope.interface-7.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bf2746931a6f83370fdc4005dbea4e39e3a3d0333da42897040698c1ff282e9c"}, - {file = "zope.interface-7.0.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:deac72b653817a68b96079c1428ae84860c76f653af03668a02f97b74f8a465b"}, - {file = "zope.interface-7.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:9da2fb807a20cd4fe381e23e2f906f0a0f4acece6d9abac65d5fc0a1f8383ed8"}, - {file = "zope.interface-7.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4f5e39373952e1d689476b6e43d779553b165ce332d0fde9c36d9b095f28d052"}, - {file = "zope.interface-7.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:13aacff95c59000ecd562d9717a87eca8211f6bc74bea6b8ca68e742d1f8f13d"}, - {file = "zope.interface-7.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67e0ff3f2e02d6131535956b22795be2ec5af6762f4fe682f67eb723fbc16273"}, - {file = "zope.interface-7.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c47a5068df03f0c9215d3525b166c9d8d4f6d03cbe4e60339818f8c393e3e3e"}, - {file = "zope.interface-7.0.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bceaf7ee95735b0d6ac3f5bba0209d056e686999732dc32bd463a53d4488ccdb"}, - {file = "zope.interface-7.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:dd28ba1e2deb0c339881ee7755db649433347bdf3c4f3d885f029fcf10aacdf7"}, - {file = "zope.interface-7.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:4b671f943d6487d6f1a6bbdce3faffae35e4f74f98ac9b865d2b7370cb6b0bd3"}, - {file = "zope.interface-7.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b76f6048c1a334e26e5d46fdb4f327d9e7e6b348ad607ee9fdce9c7325b5a635"}, - {file = "zope.interface-7.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40beb36330ef00d2cd50d212a0c74ecd57042b8c8b2b6ebd6247cc98f9808824"}, - {file = "zope.interface-7.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0821efcbdeaf48e12c66b0d19a1f9edec2ed22697ab8885d322c8f82fe5bc892"}, - {file = "zope.interface-7.0.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9ab785a7af39c6968385a9d39b712d2263661fa3780bd38efec0cefdbb84036"}, - {file = "zope.interface-7.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:e299f672cfad3392b097af885a552a51e60d3b44e8572f1401e87f863f8986b4"}, - {file = "zope.interface-7.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93e5bf8de5a51aaeddd5e1d1c0ac0ca4f995a4f5a832abdc08bb8fbae25ac660"}, - {file = "zope.interface-7.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:185ef3a7a01fac1151622579a08995aab66590711c1a4f9b605f88129229dba1"}, - {file = "zope.interface-7.0.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91bb6b5e1a158b751e12458d5618c1af42eb3dc8472b87a613d543d9fb7660e0"}, - {file = "zope.interface-7.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f77d58cfc3af86d062b8cfa7194db74ca78a615d66bbd23b251bad1b1ecf9818"}, - {file = "zope.interface-7.0.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3ab142cebe69e0f72bf892da040af97f61fd03c09a23ae2fc7de3ab576c5d4cd"}, - {file = "zope.interface-7.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba16bb2214f671e29b75f16d7b8b0bb1f75cdc8bce06979fdbf638edf6531586"}, - {file = "zope.interface-7.0.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:28f29dd42819d99682e46a8d3cc2ee60461a77554d4320e0e8a37363f04208e0"}, - {file = "zope.interface-7.0.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:797510df26b82cf619a894dac4ff4036d11f6340bec0287c89cecb0b1b1c429e"}, - {file = "zope.interface-7.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:b9d865209cc9795d0f9f4f63b87a86e7a9e032d3cbbb10b1c13bf27343a4fc54"}, - {file = "zope.interface-7.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:08d86319fd7542984d4c0ef7865759dab58616154cb237a5a1ce758687255de0"}, - {file = "zope.interface-7.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:22c93492e5d2f09100a4a23cf709b20f0305cdbbad14f9af2f6e9311742bed8e"}, - {file = "zope.interface-7.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d20fa14f0f8682ad37a6552712e4493cfb35d66c5fb4f8052af3a50ae6cd4f77"}, - {file = "zope.interface-7.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:356a9c1c8cfece776f54806157057be759d812168395762f47f046b40901e974"}, - {file = "zope.interface-7.0.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:738de1c72390a2caf543247013f617ed15d272e4c19731a998e81dd5a2379f1c"}, - {file = "zope.interface-7.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:8eab70e404c2416176b4630914cda275ca95678529e54e66ea45d1a0be422994"}, - {file = "zope.interface-7.0.2.tar.gz", hash = "sha256:f1146bb27a411d0d40cc0e88182a6b0e979d68ab526c8e5ae9e27c06506ed017"}, + {file = "zope.interface-7.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ce290e62229964715f1011c3dbeab7a4a1e4971fd6f31324c4519464473ef9f2"}, + {file = "zope.interface-7.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:05b910a5afe03256b58ab2ba6288960a2892dfeef01336dc4be6f1b9ed02ab0a"}, + {file = "zope.interface-7.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:550f1c6588ecc368c9ce13c44a49b8d6b6f3ca7588873c679bd8fd88a1b557b6"}, + {file = "zope.interface-7.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0ef9e2f865721553c6f22a9ff97da0f0216c074bd02b25cf0d3af60ea4d6931d"}, + {file = "zope.interface-7.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:27f926f0dcb058211a3bb3e0e501c69759613b17a553788b2caeb991bed3b61d"}, + {file = "zope.interface-7.2-cp310-cp310-win_amd64.whl", hash = "sha256:144964649eba4c5e4410bb0ee290d338e78f179cdbfd15813de1a664e7649b3b"}, + {file = "zope.interface-7.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1909f52a00c8c3dcab6c4fad5d13de2285a4b3c7be063b239b8dc15ddfb73bd2"}, + {file = "zope.interface-7.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:80ecf2451596f19fd607bb09953f426588fc1e79e93f5968ecf3367550396b22"}, + {file = "zope.interface-7.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:033b3923b63474800b04cba480b70f6e6243a62208071fc148354f3f89cc01b7"}, + {file = "zope.interface-7.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a102424e28c6b47c67923a1f337ede4a4c2bba3965b01cf707978a801fc7442c"}, + {file = "zope.interface-7.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25e6a61dcb184453bb00eafa733169ab6d903e46f5c2ace4ad275386f9ab327a"}, + {file = "zope.interface-7.2-cp311-cp311-win_amd64.whl", hash = "sha256:3f6771d1647b1fc543d37640b45c06b34832a943c80d1db214a37c31161a93f1"}, + {file = "zope.interface-7.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:086ee2f51eaef1e4a52bd7d3111a0404081dadae87f84c0ad4ce2649d4f708b7"}, + {file = "zope.interface-7.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:21328fcc9d5b80768bf051faa35ab98fb979080c18e6f84ab3f27ce703bce465"}, + {file = "zope.interface-7.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f6dd02ec01f4468da0f234da9d9c8545c5412fef80bc590cc51d8dd084138a89"}, + {file = "zope.interface-7.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8e7da17f53e25d1a3bde5da4601e026adc9e8071f9f6f936d0fe3fe84ace6d54"}, + {file = "zope.interface-7.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cab15ff4832580aa440dc9790b8a6128abd0b88b7ee4dd56abacbc52f212209d"}, + {file = "zope.interface-7.2-cp312-cp312-win_amd64.whl", hash = "sha256:29caad142a2355ce7cfea48725aa8bcf0067e2b5cc63fcf5cd9f97ad12d6afb5"}, + {file = "zope.interface-7.2-cp313-cp313-macosx_10_9_x86_64.whl", hash = "sha256:3e0350b51e88658d5ad126c6a57502b19d5f559f6cb0a628e3dc90442b53dd98"}, + {file = "zope.interface-7.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:15398c000c094b8855d7d74f4fdc9e73aa02d4d0d5c775acdef98cdb1119768d"}, + {file = "zope.interface-7.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:802176a9f99bd8cc276dcd3b8512808716492f6f557c11196d42e26c01a69a4c"}, + {file = "zope.interface-7.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb23f58a446a7f09db85eda09521a498e109f137b85fb278edb2e34841055398"}, + {file = "zope.interface-7.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a71a5b541078d0ebe373a81a3b7e71432c61d12e660f1d67896ca62d9628045b"}, + {file = "zope.interface-7.2-cp313-cp313-win_amd64.whl", hash = "sha256:4893395d5dd2ba655c38ceb13014fd65667740f09fa5bb01caa1e6284e48c0cd"}, + {file = "zope.interface-7.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d3a8ffec2a50d8ec470143ea3d15c0c52d73df882eef92de7537e8ce13475e8a"}, + {file = "zope.interface-7.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:31d06db13a30303c08d61d5fb32154be51dfcbdb8438d2374ae27b4e069aac40"}, + {file = "zope.interface-7.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e204937f67b28d2dca73ca936d3039a144a081fc47a07598d44854ea2a106239"}, + {file = "zope.interface-7.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:224b7b0314f919e751f2bca17d15aad00ddbb1eadf1cb0190fa8175edb7ede62"}, + {file = "zope.interface-7.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baf95683cde5bc7d0e12d8e7588a3eb754d7c4fa714548adcd96bdf90169f021"}, + {file = "zope.interface-7.2-cp38-cp38-win_amd64.whl", hash = "sha256:7dc5016e0133c1a1ec212fc87a4f7e7e562054549a99c73c8896fa3a9e80cbc7"}, + {file = "zope.interface-7.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7bd449c306ba006c65799ea7912adbbfed071089461a19091a228998b82b1fdb"}, + {file = "zope.interface-7.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a19a6cc9c6ce4b1e7e3d319a473cf0ee989cbbe2b39201d7c19e214d2dfb80c7"}, + {file = "zope.interface-7.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:72cd1790b48c16db85d51fbbd12d20949d7339ad84fd971427cf00d990c1f137"}, + {file = "zope.interface-7.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52e446f9955195440e787596dccd1411f543743c359eeb26e9b2c02b077b0519"}, + {file = "zope.interface-7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ad9913fd858274db8dd867012ebe544ef18d218f6f7d1e3c3e6d98000f14b75"}, + {file = "zope.interface-7.2-cp39-cp39-win_amd64.whl", hash = "sha256:1090c60116b3da3bfdd0c03406e2f14a1ff53e5771aebe33fec1edc0a350175d"}, + {file = "zope.interface-7.2.tar.gz", hash = "sha256:8b49f1a3d1ee4cdaf5b32d2e738362c7f5e40ac8b46dd7d1a65e82a4872728fe"}, ] [package.dependencies] setuptools = "*" [package.extras] -docs = ["Sphinx", "repoze.sphinx.autointerface", "sphinx-rtd-theme"] -test = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] -testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] +docs = ["Sphinx", "furo", "repoze.sphinx.autointerface"] +test = ["coverage[toml]", "zope.event", "zope.testing"] +testing = ["coverage[toml]", "zope.event", "zope.testing"] [metadata] lock-version = "2.0" From ad10cd1ca14eb8527a1dd1aba9094b13a7613a4c Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Silva Date: Mon, 16 Dec 2024 18:35:23 +0000 Subject: [PATCH 21/22] Adding support for ARPAFVG observation data --- arpav_ppcv/cliapp/observations.py | 26 ++- arpav_ppcv/cliapp/schemas.py | 7 +- arpav_ppcv/config.py | 11 +- arpav_ppcv/database.py | 64 +++++- ...a217c_rename_station_owners_to_managers.py | 33 +++ ..._added_correspondence_between_climatic_.py | 45 ++++ arpav_ppcv/observations_harvester/cliapp.py | 67 +----- .../observations_harvester/operations.py | 209 +++++++++++------- arpav_ppcv/prefect/cliapp.py | 30 +-- arpav_ppcv/prefect/flows/observations.py | 71 ++++-- arpav_ppcv/schemas/climaticindicators.py | 21 ++ arpav_ppcv/schemas/observations.py | 50 ++++- arpav_ppcv/schemas/static.py | 6 +- arpav_ppcv/webapp/admin/schemas.py | 12 +- .../webapp/admin/views/climaticindicators.py | 76 +++++-- arpav_ppcv/webapp/admin/views/observations.py | 4 +- .../webapp/api_v2/schemas/observations.py | 2 +- 17 files changed, 495 insertions(+), 239 deletions(-) create mode 100644 arpav_ppcv/migrations/versions/41c6050a217c_rename_station_owners_to_managers.py create mode 100644 arpav_ppcv/migrations/versions/f00bbaa17ce6_added_correspondence_between_climatic_.py diff --git a/arpav_ppcv/cliapp/observations.py b/arpav_ppcv/cliapp/observations.py index 66c40fd4..10b83a79 100644 --- a/arpav_ppcv/cliapp/observations.py +++ b/arpav_ppcv/cliapp/observations.py @@ -2,6 +2,7 @@ import typer from operator import attrgetter from rich import print +from rich.table import Table from . import schemas from .. import database @@ -13,12 +14,17 @@ @stations_app.command(name="list") def list_observation_stations(ctx: typer.Context) -> None: """List observation stations.""" + stations_table = Table(title="Observation Stations") + stations_table.add_column("managed_by", justify="right") + stations_table.add_column("code", justify="right") + stations_table.add_column("name", justify="left") with sqlmodel.Session(ctx.obj["engine"]) as session: all_stations = list(database.collect_all_observation_stations(session)) all_stations.sort(key=attrgetter("code")) for db_station in all_stations: item = schemas.ObservationStationItem(**db_station.model_dump()) - print(f"{item.code} - {item.name}") + stations_table.add_row(item.managed_by, item.code, item.name) + print(stations_table) @stations_app.command(name="get") @@ -34,15 +40,29 @@ def get_observation_station(ctx: typer.Context, code: str) -> None: @series_configurations_app.command(name="list") def list_observation_series_configurations(ctx: typer.Context) -> None: """List observation series configurations.""" + confs_table = Table(title="Observation Series Configurations") + confs_table.add_column("identifier", justify="left") + confs_table.add_column("climatic_indicator", justify="left") + confs_table.add_column("station_managers", justify="left") + confs_table.add_column("measurement_aggregation_type", justify="left") + confs_table.add_column("indicator_internal_name", justify="left") with sqlmodel.Session(ctx.obj["engine"]) as session: all_series_configurations = list( database.collect_all_observation_series_configurations(session) ) for db_series_configuration in all_series_configurations: item = schemas.ObservationSeriesConfigurationItem( - **db_series_configuration.model_dump() + **db_series_configuration.model_dump(), + climatic_indicator=db_series_configuration.climatic_indicator.identifier, ) - print(item.identifier) + confs_table.add_row( + item.identifier, + item.climatic_indicator, + ", ".join(i for i in db_series_configuration.station_managers), + item.measurement_aggregation_type, + item.indicator_internal_name, + ) + print(confs_table) @series_configurations_app.command(name="get") diff --git a/arpav_ppcv/cliapp/schemas.py b/arpav_ppcv/cliapp/schemas.py index a417ecde..3bedd396 100644 --- a/arpav_ppcv/cliapp/schemas.py +++ b/arpav_ppcv/cliapp/schemas.py @@ -25,6 +25,7 @@ class ClimaticIndicatorDetail(pydantic.BaseModel): class ObservationStationItem(pydantic.BaseModel): + managed_by: str code: str name: str @@ -35,7 +36,11 @@ class ObservationStationDetail(observations.StationBase): class ObservationSeriesConfigurationItem(pydantic.BaseModel): + climatic_indicator: str + station_owners: list[str] + measurement_aggregation_type: static.MeasurementAggregationType identifier: str + indicator_internal_name: str class ObservationSeriesConfigurationDetail(pydantic.BaseModel): @@ -43,7 +48,7 @@ class ObservationSeriesConfigurationDetail(pydantic.BaseModel): climatic_indicator: ClimaticIndicatorItem indicator_internal_name: str measurement_aggregation_type: static.MeasurementAggregationType - station_owners: list[static.ObservationStationOwner] + station_managers: list[static.ObservationStationManager] class ObservationStationCreate(observations.StationCreate): diff --git a/arpav_ppcv/config.py b/arpav_ppcv/config.py index 9c7d147d..ebd31678 100644 --- a/arpav_ppcv/config.py +++ b/arpav_ppcv/config.py @@ -29,15 +29,9 @@ class PrefectSettings(pydantic.BaseModel): observation_stations_refresher_flow_cron_schedule: str = ( "0 1 * * 1" # run once every week, at 01:00 on monday ) - observation_monthly_measurements_refresher_flow_cron_schedule: str = ( + observation_measurements_refresher_flow_cron_schedule: str = ( "0 2 * * 1" # run once every week, at 02:00 on monday ) - observation_seasonal_measurements_refresher_flow_cron_schedule: str = ( - "0 3 * * 1" # run once every week, at 03:00 on monday - ) - observation_yearly_measurements_refresher_flow_cron_schedule: str = ( - "0 4 * * 1" # run once every week, at 04:00 on monday - ) station_variables_refresher_flow_cron_schedule: str = ( "0 5 * * 1" # run once every week, at 05:00 on monday ) @@ -133,6 +127,9 @@ class ArpavPpcvSettings(BaseSettings): # noqa variable_stations_db_schema: str = "stations" num_uvicorn_worker_processes: int = 1 http_client_timeout_seconds: float = 30.0 + arpav_observations_base_url: str = "https://api.arpa.veneto.it/REST/v1" + arpafvg_observations_base_url: str = "https://api.meteo.fvg.it" + arpafvg_auth_token: str = "changeme" @pydantic.model_validator(mode="after") def ensure_test_db_dsn(self): diff --git a/arpav_ppcv/database.py b/arpav_ppcv/database.py index 894bc900..93183c75 100644 --- a/arpav_ppcv/database.py +++ b/arpav_ppcv/database.py @@ -1609,16 +1609,26 @@ def create_climatic_indicator( climatic_indicator_create: climaticindicators.ClimaticIndicatorCreate, ) -> climaticindicators.ClimaticIndicator: """Create a new climatic indicator.""" + to_refresh = [] db_climatic_indicator = climaticindicators.ClimaticIndicator( - **climatic_indicator_create.model_dump(), + **climatic_indicator_create.model_dump(exclude={"observation_names"}), ) + to_refresh.append(db_climatic_indicator) + for obs_name in climatic_indicator_create.observation_names: + db_obs_name = observations.ClimaticIndicatorObservationName( + station_manager=obs_name.observation_station_manager, + indicator_observation_name=obs_name.indicator_observation_name, + ) + db_climatic_indicator.observation_names.append(db_obs_name) + to_refresh.append(db_obs_name) session.add(db_climatic_indicator) try: session.commit() except sqlalchemy.exc.DBAPIError: raise else: - session.refresh(db_climatic_indicator) + for item in to_refresh: + session.refresh(item) return db_climatic_indicator @@ -1628,12 +1638,46 @@ def update_climatic_indicator( climatic_indicator_update: climaticindicators.ClimaticIndicatorUpdate, ) -> climaticindicators.ClimaticIndicator: """Update a climatic indicator.""" - data_ = climatic_indicator_update.model_dump(exclude_unset=True) + to_refresh = [] + requested_obs_names = { + "-".join( + (str(db_climatic_indicator.id), ron.observation_station_manager.value) + ): ron + for ron in climatic_indicator_update.observation_names + } + existing_obs_names = { + "-".join((str(db_climatic_indicator.id), ron.station_manager.value)): ron + for ron in db_climatic_indicator.observation_names + } + for existing_key, existing_obs_name in existing_obs_names.items(): + has_been_requested_to_remove = existing_key not in requested_obs_names + if has_been_requested_to_remove: + session.delete(existing_obs_name) + for requested_key, requested_obs_name in requested_obs_names.items(): + if requested_key not in existing_obs_names: # need to create this one + db_observation_name = observations.ClimaticIndicatorObservationName( + station_manager=requested_obs_name.observation_station_manager, + indicator_observation_name=requested_obs_name.indicator_observation_name, + ) + db_climatic_indicator.observation_names.append(db_observation_name) + else: # already exists, just update + existing_db_observation_name = existing_obs_names[requested_key] + existing_db_observation_name.indicator_observation_name = ( + requested_obs_name.indicator_observation_name + ) + session.add(existing_db_observation_name) + to_refresh.append(existing_db_observation_name) + data_ = climatic_indicator_update.model_dump( + exclude_unset=True, + exclude={"observation_names"}, + ) for key, value in data_.items(): setattr(db_climatic_indicator, key, value) session.add(db_climatic_indicator) + to_refresh.append(db_climatic_indicator) session.commit() - session.refresh(db_climatic_indicator) + for item in to_refresh: + session.refresh(item) return db_climatic_indicator @@ -1739,7 +1783,7 @@ def list_observation_stations( include_total: bool = False, name_filter: Optional[str] = None, polygon_intersection_filter: shapely.Polygon = None, -) -> tuple[Sequence[observations.Station], Optional[int]]: +) -> tuple[Sequence[observations.ObservationStation], Optional[int]]: """List existing observation stations. The ``polygon_intersection_filter`` parameter is expected to be a polygon @@ -1769,7 +1813,7 @@ def list_observation_stations( def collect_all_observation_stations( session: sqlmodel.Session, polygon_intersection_filter: shapely.Polygon = None, -) -> Sequence[observations.Station]: +) -> Sequence[observations.ObservationStation]: """Collect all observation stations. The ``polygon_intersetion_filter`` parameter is expected to be a polygon @@ -2010,8 +2054,8 @@ def get_observation_series_configuration_by_identifier( measurement_aggregation_type = static.MeasurementAggregationType( raw_measurement_aggregation.upper() ) - station_owners = [ - static.ObservationStationOwner(i.upper()) for i in raw_owners.split("-") + station_managers = [ + static.ObservationStationManager(i.upper()) for i in raw_owners.split("-") ] except ValueError: raise exceptions.InvalidObservationSeriesConfigurationIdentifierError() @@ -2021,8 +2065,8 @@ def get_observation_series_configuration_by_identifier( == climatic_indicator.id, observations.ObservationSeriesConfiguration.measurement_aggregation_type == measurement_aggregation_type, - observations.ObservationSeriesConfiguration.station_owners - == station_owners, + observations.ObservationSeriesConfiguration.station_managers + == station_managers, ) return session.exec(statement).first() diff --git a/arpav_ppcv/migrations/versions/41c6050a217c_rename_station_owners_to_managers.py b/arpav_ppcv/migrations/versions/41c6050a217c_rename_station_owners_to_managers.py new file mode 100644 index 00000000..fa0c1df9 --- /dev/null +++ b/arpav_ppcv/migrations/versions/41c6050a217c_rename_station_owners_to_managers.py @@ -0,0 +1,33 @@ +"""rename station owners to managers + +Revision ID: 41c6050a217c +Revises: f00bbaa17ce6 +Create Date: 2024-12-16 18:19:22.357221 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa +import sqlmodel +from sqlalchemy.dialects import postgresql + +# revision identifiers, used by Alembic. +revision: str = '41c6050a217c' +down_revision: Union[str, None] = 'f00bbaa17ce6' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('observationseriesconfiguration', sa.Column('station_managers', sa.ARRAY(sa.String()), nullable=True)) + op.drop_column('observationseriesconfiguration', 'station_owners') + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('observationseriesconfiguration', sa.Column('station_owners', postgresql.ARRAY(sa.VARCHAR()), autoincrement=False, nullable=True)) + op.drop_column('observationseriesconfiguration', 'station_managers') + # ### end Alembic commands ### diff --git a/arpav_ppcv/migrations/versions/f00bbaa17ce6_added_correspondence_between_climatic_.py b/arpav_ppcv/migrations/versions/f00bbaa17ce6_added_correspondence_between_climatic_.py new file mode 100644 index 00000000..3db8fc5c --- /dev/null +++ b/arpav_ppcv/migrations/versions/f00bbaa17ce6_added_correspondence_between_climatic_.py @@ -0,0 +1,45 @@ +"""added correspondence between climatic indicator and station manager + +Revision ID: f00bbaa17ce6 +Revises: 8df4e65677d9 +Create Date: 2024-12-16 16:37:27.376823 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa +import sqlmodel +from sqlalchemy.dialects import postgresql + +# revision identifiers, used by Alembic. +revision: str = 'f00bbaa17ce6' +down_revision: Union[str, None] = '8df4e65677d9' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + sa.Enum('ARPAV', 'ARPAFVG', name='observationstationmanager').create(op.get_bind()) + op.create_table('climaticindicatorobservationname', + sa.Column('climatic_indicator_id', sa.Integer(), nullable=False), + sa.Column('station_manager', postgresql.ENUM('ARPAV', 'ARPAFVG', name='observationstationmanager', create_type=False), nullable=False), + sa.Column('indicator_observation_name', sqlmodel.sql.sqltypes.AutoString(), nullable=False), + sa.ForeignKeyConstraint(['climatic_indicator_id'], ['climaticindicator.id'], onupdate='CASCADE', ondelete='CASCADE'), + sa.PrimaryKeyConstraint('climatic_indicator_id', 'station_manager') + ) + op.add_column('observationstation', sa.Column('managed_by', postgresql.ENUM('ARPAV', 'ARPAFVG', name='observationstationmanager', create_type=False), nullable=False)) + op.drop_column('observationstation', 'owner') + sa.Enum('ARPAV', 'ARPAFVG', name='observationstationowner').drop(op.get_bind()) + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + sa.Enum('ARPAV', 'ARPAFVG', name='observationstationowner').create(op.get_bind()) + op.add_column('observationstation', sa.Column('owner', postgresql.ENUM('ARPAV', 'ARPAFVG', name='observationstationowner', create_type=False), autoincrement=False, nullable=False)) + op.drop_column('observationstation', 'managed_by') + op.drop_table('climaticindicatorobservationname') + sa.Enum('ARPAV', 'ARPAFVG', name='observationstationmanager').drop(op.get_bind()) + # ### end Alembic commands ### diff --git a/arpav_ppcv/observations_harvester/cliapp.py b/arpav_ppcv/observations_harvester/cliapp.py index b2603f63..bb91d234 100644 --- a/arpav_ppcv/observations_harvester/cliapp.py +++ b/arpav_ppcv/observations_harvester/cliapp.py @@ -17,7 +17,7 @@ def refresh_stations( "processed." ), ), - ], + ] = None, ) -> None: observations_flows.refresh_stations( observation_series_configuration_identifier=series_configuration_identifier, @@ -25,33 +25,17 @@ def refresh_stations( @app.command() -def refresh_monthly_measurements( - station: Annotated[ +def refresh_measurements( + series_configuration_identifier: Annotated[ str, typer.Option( help=( - "Code of the station to process. If not provided, all " - "stations are processed." + "The observation series configuration identifier to process. If " + "not provided, all observation series configurations are " + "processed." ), ), ] = None, - variable: Annotated[ - str, - typer.Option( - help=( - "Name of the variable to process. If not provided, all " - "variables are processed." - ) - ), - ] = None, -) -> None: - observations_flows.refresh_monthly_measurements( - station_code=station, variable_name=variable - ) - - -@app.command() -def refresh_seasonal_measurements( station: Annotated[ str, typer.Option( @@ -60,44 +44,9 @@ def refresh_seasonal_measurements( "stations are processed." ), ), - ], - variable: Annotated[ - str, - typer.Option( - help=( - "Name of the variable to process. If not provided, all " - "variables are processed." - ) - ), ] = None, ) -> None: - observations_flows.refresh_seasonal_measurements( + observations_flows.refresh_measurements( station_code=station, - variable_name=variable, - ) - - -@app.command() -def refresh_yearly_measurements( - station: Annotated[ - str, - typer.Option( - help=( - "Code of the station to process. If not provided, all " - "stations are processed." - ), - ), - ] = None, - climatic_indicator: Annotated[ - str, - typer.Option( - help=( - "Identifier of the climatic indicator to process. If not provided, all " - "climatic indicators are processed." - ) - ), - ] = None, -) -> None: - observations_flows.refresh_yearly_measurements( - station_code=station, climatic_indicator_identifier=climatic_indicator + observation_series_configuration_identifier=series_configuration_identifier, ) diff --git a/arpav_ppcv/observations_harvester/operations.py b/arpav_ppcv/observations_harvester/operations.py index ed506395..a7557068 100644 --- a/arpav_ppcv/observations_harvester/operations.py +++ b/arpav_ppcv/observations_harvester/operations.py @@ -1,99 +1,138 @@ import datetime as dt import logging -from collections.abc import ( - Generator, - Sequence, -) +from collections.abc import Generator from typing import ( Callable, ) import geojson_pydantic import httpx -import pyproj import shapely import shapely.ops from ..schemas import ( observations, ) -from ..schemas.climaticindicators import ClimaticIndicator from ..schemas.static import ( MeasurementAggregationType, - ObservationStationOwner, + ObservationStationManager, ) logger = logging.getLogger(__name__) -def fetch_remote_stations( +def fetch_remote_arpafvg_stations( client: httpx.Client, - series_configurations: Sequence[observations.ObservationSeriesConfiguration], + series_configuration: observations.ObservationSeriesConfiguration, + arpafvg_observations_base_url: str, + auth_token: str, ) -> Generator[dict, None, None]: - station_url = ( - "https://api.arpa.veneto.it/REST/v1/clima_indicatori/staz_attive_lunghe" + # periodo: + # - 0 means yearly data + # - 1, 2, 3, 4 means winter, spring, summer, autumn + if ( + series_configuration.measurement_aggregation_type + == MeasurementAggregationType.YEARLY + ): + period = 0 + elif ( + series_configuration.measurement_aggregation_type + == MeasurementAggregationType.SEASONAL + ): + period = 1 # any season works + else: + raise NotImplementedError() + response = client.get( + f"{arpafvg_observations_base_url}/clima/indicatori/localita", + headers={ + "authorization": f"Bearer {auth_token}", + }, + params={ + "indicatore": series_configuration.indicator_internal_name, + "periodo": period, + }, ) - for series_conf in series_configurations: - logger.info( - f"Retrieving stations belonging to series {series_conf.identifier!r}..." - ) - if ( - series_conf.measurement_aggregation_type - == MeasurementAggregationType.MONTHLY - ): - for month in range(1, 13): - logger.info(f"Processing month {month}...") - month_response = client.get( - station_url, - params={ - "indicatore": series_conf.indicator_internal_name, - "tabella": "M", - "periodo": str(month), - }, - ) - month_response.raise_for_status() - for raw_station in month_response.json().get("data", []): - yield raw_station - elif ( - series_conf.measurement_aggregation_type - == MeasurementAggregationType.SEASONAL - ): - for season in range(1, 5): - logger.info(f"Processing season {season}...") - season_response = client.get( - station_url, - params={ - "indicatore": series_conf.indicator_internal_name, - "tabella": "S", - "periodo": str(season), - }, - ) - season_response.raise_for_status() - for raw_station in season_response.json().get("data", []): - yield raw_station - elif ( - series_conf.measurement_aggregation_type - == MeasurementAggregationType.YEARLY - ): - logger.info("Processing years...") - year_response = client.get( + response.raise_for_status() + for raw_station in response.json().get("data", []): + yield raw_station + + +def fetch_remote_arpav_stations( + client: httpx.Client, + series_configuration: observations.ObservationSeriesConfiguration, + arpav_observations_base_url: str, +) -> Generator[dict, None, None]: + station_url = f"{arpav_observations_base_url}/clima_indicatori/staz_attive_lunghe" + if ( + series_configuration.measurement_aggregation_type + == MeasurementAggregationType.MONTHLY + ): + for month in range(1, 13): + logger.info(f"Processing month {month}...") + month_response = client.get( station_url, params={ - "indicatore": series_conf.indicator_internal_name, - "tabella": "A", - "periodo": "0", + "indicatore": series_configuration.indicator_internal_name, + "tabella": "M", + "periodo": str(month), }, ) - year_response.raise_for_status() - for raw_station in year_response.json().get("data", []): + month_response.raise_for_status() + for raw_station in month_response.json().get("data", []): yield raw_station - else: - raise NotImplementedError( - f"{series_conf.measurement_aggregation_type} not implemented" + elif ( + series_configuration.measurement_aggregation_type + == MeasurementAggregationType.SEASONAL + ): + for season in range(1, 5): + logger.info(f"Processing season {season}...") + season_response = client.get( + station_url, + params={ + "indicatore": series_configuration.indicator_internal_name, + "tabella": "S", + "periodo": str(season), + }, ) + season_response.raise_for_status() + for raw_station in season_response.json().get("data", []): + yield raw_station + elif ( + series_configuration.measurement_aggregation_type + == MeasurementAggregationType.YEARLY + ): + logger.info("Processing years...") + year_response = client.get( + station_url, + params={ + "indicatore": series_configuration.indicator_internal_name, + "tabella": "A", + "periodo": "0", + }, + ) + year_response.raise_for_status() + for raw_station in year_response.json().get("data", []): + yield raw_station + else: + raise NotImplementedError( + f"{series_configuration.measurement_aggregation_type} not implemented" + ) -def parse_station( +def parse_arpafvg_station( + raw_station: dict, coord_converter: Callable +) -> observations.ObservationStationCreate: + pt_4326 = shapely.Point(raw_station["longitude"], raw_station["latitude"]) + return observations.ObservationStationCreate( + code=str(raw_station["statid"]), + geom=geojson_pydantic.Point(type="Point", coordinates=(pt_4326.x, pt_4326.y)), + managed_by=ObservationStationManager.ARPAFVG, + altitude_m=raw_station["altitude"], + name=raw_station["statnm"], + ) + + +def parse_arpav_station( raw_station: dict, coord_converter: Callable ) -> observations.ObservationStationCreate: station_code = str(raw_station["statcd"]) @@ -120,7 +159,7 @@ def parse_station( return observations.ObservationStationCreate( code=station_code, geom=geojson_pydantic.Point(type="Point", coordinates=(pt_4326.x, pt_4326.y)), - owner=ObservationStationOwner.ARPAV, + managed_by=ObservationStationManager.ARPAV, altitude_m=raw_station["altitude"], name=raw_station["statnm"], active_since=active_since, @@ -128,23 +167,23 @@ def parse_station( ) -def harvest_stations( - client: httpx.Client, - climatic_indicators_to_refresh: Sequence[ClimaticIndicator], - fetch_stations_with_months: bool, - fetch_stations_with_seasons: bool, - fetch_stations_with_yearly_measurements: bool, -) -> set[observations.StationCreate]: - coord_converter = pyproj.Transformer.from_crs( - pyproj.CRS("epsg:4258"), pyproj.CRS("epsg:4326"), always_xy=True - ).transform - stations = set() - for raw_station in fetch_remote_stations( - client, - climatic_indicators_to_refresh, - fetch_stations_with_months, - fetch_stations_with_seasons, - fetch_stations_with_yearly_measurements, - ): - stations.add(parse_station(raw_station, coord_converter)) - return stations +# def harvest_stations( +# client: httpx.Client, +# climatic_indicators_to_refresh: Sequence[ClimaticIndicator], +# fetch_stations_with_months: bool, +# fetch_stations_with_seasons: bool, +# fetch_stations_with_yearly_measurements: bool, +# ) -> set[observations.StationCreate]: +# coord_converter = pyproj.Transformer.from_crs( +# pyproj.CRS("epsg:4258"), pyproj.CRS("epsg:4326"), always_xy=True +# ).transform +# stations = set() +# for raw_station in fetch_remote_stations( +# client, +# climatic_indicators_to_refresh, +# fetch_stations_with_months, +# fetch_stations_with_seasons, +# fetch_stations_with_yearly_measurements, +# ): +# stations.add(parse_station(raw_station, coord_converter)) +# return stations diff --git a/arpav_ppcv/prefect/cliapp.py b/arpav_ppcv/prefect/cliapp.py index 9ca58a8d..3298fc4f 100644 --- a/arpav_ppcv/prefect/cliapp.py +++ b/arpav_ppcv/prefect/cliapp.py @@ -11,9 +11,7 @@ def start_periodic_tasks( ctx: typer.Context, refresh_stations: bool = False, - refresh_monthly_measurements: bool = False, - refresh_seasonal_measurements: bool = False, - refresh_yearly_measurements: bool = False, + refresh_measurements: bool = False, refresh_station_variables: bool = False, ): """Starts a prefect worker to perform background tasks. @@ -22,9 +20,7 @@ def start_periodic_tasks( enabled via the respective flags): - refreshing observation stations - - refreshing observation monthly measurements for known stations - - refreshing observation seasonal measurements for known stations - - refreshing observation yearly measurements for known stations + - refreshing observation measurements for known stations - refreshing the database views which contain available observation stations for each indicator @@ -39,24 +35,12 @@ def start_periodic_tasks( ) ) to_serve.append(stations_refresher_deployment) - if refresh_monthly_measurements: - monthly_measurement_refresher_deployment = observations_flows.refresh_monthly_measurements.to_deployment( - name="monthly_measurement_refresher", - cron=settings.prefect.observation_monthly_measurements_refresher_flow_cron_schedule, + if refresh_measurements: + measurement_refresher_deployment = observations_flows.refresh_measurements.to_deployment( + name="measurement_refresher", + cron=settings.prefect.observation_measurements_refresher_flow_cron_schedule, ) - to_serve.append(monthly_measurement_refresher_deployment) - if refresh_seasonal_measurements: - seasonal_measurement_refresher_deployment = observations_flows.refresh_seasonal_measurements.to_deployment( - name="seasonal_measurement_refresher", - cron=settings.prefect.observation_seasonal_measurements_refresher_flow_cron_schedule, - ) - to_serve.append(seasonal_measurement_refresher_deployment) - if refresh_yearly_measurements: - yearly_measurement_refresher_deployment = observations_flows.refresh_yearly_measurements.to_deployment( - name="yearly_measurement_refresher", - cron=settings.prefect.observation_yearly_measurements_refresher_flow_cron_schedule, - ) - to_serve.append(yearly_measurement_refresher_deployment) + to_serve.append(measurement_refresher_deployment) if refresh_station_variables: station_variables_deployment = ( observations_flows.refresh_station_variables.to_deployment( diff --git a/arpav_ppcv/prefect/flows/observations.py b/arpav_ppcv/prefect/flows/observations.py index 6e2435e4..88c68a69 100644 --- a/arpav_ppcv/prefect/flows/observations.py +++ b/arpav_ppcv/prefect/flows/observations.py @@ -22,6 +22,7 @@ climaticindicators, observations, ) +from arpav_ppcv.schemas.static import ObservationStationManager # this is a module global because we need to configure the prefect flow and # task with values from it @@ -41,12 +42,33 @@ def harvest_stations( pyproj.CRS("epsg:4258"), pyproj.CRS("epsg:4326"), always_xy=True ).transform stations = set() - retriever = operations.fetch_remote_stations( - client=client, - series_configurations=[series_configuration], - ) - for raw_station in retriever: - stations.add(operations.parse_station(raw_station, coord_converter)) + for station_manager in series_configuration.station_managers: + if station_manager == ObservationStationManager.ARPAV: + retriever = operations.fetch_remote_arpav_stations( + client, + series_configuration, + arpav_observations_base_url=settings.arpav_observations_base_url, + ) + for raw_station in retriever: + stations.add( + operations.parse_arpav_station(raw_station, coord_converter) + ) + elif station_manager == ObservationStationManager.ARPAFVG: + retriever = operations.fetch_remote_arpafvg_stations( + client, + series_configuration, + arpafvg_observations_base_url=settings.arpafvg_observations_base_url, + auth_token=settings.arpafvg_auth_token, + ) + for raw_station in retriever: + stations.add( + operations.parse_arpafvg_station(raw_station, coord_converter) + ) + else: + raise NotImplementedError( + f"Observation stations managed by {station_manager} are not " + f"implemented." + ) return stations @@ -58,25 +80,34 @@ def find_new_stations( db_stations: Sequence[observations.ObservationStation], new_stations: Sequence[observations.ObservationStationCreate], ) -> list[observations.ObservationStationCreate]: - possibly_new_stations = {s.code: s for s in new_stations} - existing_stations = {s.code: s for s in db_stations} + possibly_new_stations = {(s.owner, s.code): s for s in new_stations} + existing_stations = {(s.owner, s.code): s for s in db_stations} to_create = [] for possibly_new_station in possibly_new_stations.values(): - if existing_stations.get(possibly_new_station.code) is None: + if ( + existing_stations.get( + (possibly_new_station.owner, possibly_new_station.code) + ) + is None + ): print( - f"About to create station {possibly_new_station.code} - " - f"{possibly_new_station.name}..." + f"About to create station {possibly_new_station.owner} " + f"{possibly_new_station.code} - {possibly_new_station.name}..." ) to_create.append(possibly_new_station) else: print( - f"Station {possibly_new_station.code} - {possibly_new_station.name} " + f"Station {possibly_new_station.owner} " + f"{possibly_new_station.code} - {possibly_new_station.name} " f"is already known" ) for existing_station in existing_stations.values(): - if possibly_new_stations.get(existing_station.code) is None: + if ( + possibly_new_stations.get((existing_station.owner, existing_station.code)) + is None + ): print( - f"Station {existing_station.code} - {existing_station.name} is not " + f"Station {existing_station.identifier} is not " f"found on the remote. Maybe it can be deleted? The system does not " f"delete stations so please check manually if this should be deleted " f"or not" @@ -177,6 +208,18 @@ def harvest_monthly_measurements( return to_create +@prefect.flow( + log_prints=True, + retries=settings.prefect.num_flow_retries, + retry_delay_seconds=settings.prefect.flow_retry_delay_seconds, +) +def refresh_measurements( + station_code: str | None = None, + observation_series_configuration_identifier: str | None = None, +): + pass + + @prefect.flow( log_prints=True, retries=settings.prefect.num_flow_retries, diff --git a/arpav_ppcv/schemas/climaticindicators.py b/arpav_ppcv/schemas/climaticindicators.py index 8b9b9a26..1f311542 100644 --- a/arpav_ppcv/schemas/climaticindicators.py +++ b/arpav_ppcv/schemas/climaticindicators.py @@ -16,6 +16,7 @@ if TYPE_CHECKING: from . import coverages from .observations import ( + ClimaticIndicatorObservationName, ObservationMeasurement, ObservationSeriesConfiguration, MonthlyMeasurement, @@ -56,6 +57,14 @@ class ClimaticIndicator(sqlmodel.SQLModel, table=True): "ObservationSeriesConfiguration" ] = sqlmodel.Relationship(back_populates="climatic_indicator") + observation_names: list["ClimaticIndicatorObservationName"] = sqlmodel.Relationship( + back_populates="climatic_indicator", + sa_relationship_kwargs={ + "cascade": "all, delete-orphan", + "passive_deletes": True, + }, + ) + measurements: list["ObservationMeasurement"] = sqlmodel.Relationship( back_populates="climatic_indicator", sa_relationship_kwargs={ @@ -139,6 +148,16 @@ def get_description(locale: babel.Locale) -> str: return _("climatic indicator description") +class ClimaticIndicatorObservationNameCreate(sqlmodel.SQLModel): + observation_station_manager: static.ObservationStationManager + indicator_observation_name: str + + +class ClimaticIndicatorObservationNameUpdate(sqlmodel.SQLModel): + observation_station_manager: static.ObservationStationManager + indicator_observation_name: str + + class ClimaticIndicatorCreate(sqlmodel.SQLModel): name: Annotated[ str, @@ -157,6 +176,7 @@ class ClimaticIndicatorCreate(sqlmodel.SQLModel): color_scale_max: float = 0.0 data_precision: int = sqlmodel.Field(default=0) sort_order: int = sqlmodel.Field(default=0) + observation_names: list["ClimaticIndicatorObservationNameCreate"] class ClimaticIndicatorUpdate(sqlmodel.SQLModel): @@ -177,3 +197,4 @@ class ClimaticIndicatorUpdate(sqlmodel.SQLModel): color_scale_max: Optional[float] = None data_precision: Optional[int] = None sort_order: Optional[int] = None + observation_names: list["ClimaticIndicatorObservationNameUpdate"] diff --git a/arpav_ppcv/schemas/observations.py b/arpav_ppcv/schemas/observations.py index c91a6799..59c30c47 100644 --- a/arpav_ppcv/schemas/observations.py +++ b/arpav_ppcv/schemas/observations.py @@ -457,7 +457,7 @@ class ObservationStation(sqlmodel.SQLModel, table=True): id: int | None = sqlmodel.Field(default=None, primary_key=True) name: str = "" - owner: static.ObservationStationOwner + managed_by: static.ObservationStationManager geom: fields.WkbElement = sqlmodel.Field( sa_column=sqlalchemy.Column( geoalchemy2.Geometry( @@ -495,10 +495,15 @@ class ObservationStation(sqlmodel.SQLModel, table=True): } ) + @pydantic.computed_field + @property + def identifier(self) -> str: + return self.identifier_pattern.format(owner=self.managed_by, code=self.code) + class ObservationStationCreate(sqlmodel.SQLModel): name: Optional[str] = "" - owner: static.ObservationStationOwner + managed_by: static.ObservationStationManager geom: geojson_pydantic.Point code: str altitude_m: Optional[float] = None @@ -510,7 +515,7 @@ def __hash__(self): "".join( ( self.name, - self.owner, + self.managed_by, self.geom.model_dump_json(), self.code, str(self.altitude_m) or "", @@ -527,7 +532,7 @@ def __hash__(self): class ObservationStationUpdate(sqlmodel.SQLModel): name: Optional[str] = None - owner: Optional[static.ObservationStationOwner] = None + managed_by: Optional[static.ObservationStationManager] = None geom: Optional[geojson_pydantic.Point] = None code: Optional[str] = None altitude_m: Optional[float] = None @@ -614,7 +619,7 @@ class ObservationSeriesConfiguration(sqlmodel.SQLModel, table=True): ) indicator_internal_name: str measurement_aggregation_type: static.MeasurementAggregationType - station_owners: list[static.ObservationStationOwner] = sqlmodel.Field( + station_managers: list[static.ObservationStationManager] = sqlmodel.Field( default=list, sa_column=sqlalchemy.Column(sqlmodel.ARRAY(sqlmodel.String)) ) @@ -627,7 +632,7 @@ class ObservationSeriesConfiguration(sqlmodel.SQLModel, table=True): def identifier(self) -> str: return self.identifier_pattern.format( climatic_indicator=self.climatic_indicator.identifier, - station_owners="-".join(self.station_owners), + station_managers="-".join(self.station_managers), measurement_aggregation_type=self.measurement_aggregation_type, ) @@ -661,11 +666,40 @@ class ObservationSeriesConfigurationCreate(sqlmodel.SQLModel): climatic_indicator_id: int indicator_internal_name: str measurement_aggregation_type: static.MeasurementAggregationType - station_owners: list[static.ObservationStationOwner] + station_managers: list[static.ObservationStationManager] class ObservationSeriesConfigurationUpdate(sqlmodel.SQLModel): climatic_indicator_id: Optional[int] = None indicator_internal_name: Optional[str] = None measurement_aggregation_type: Optional[static.MeasurementAggregationType] = None - station_owners: Optional[list[static.ObservationStationOwner]] = None + station_managers: Optional[list[static.ObservationStationManager]] = None + + +class ClimaticIndicatorObservationName(sqlmodel.SQLModel, table=True): + __table_args__ = ( + sqlalchemy.ForeignKeyConstraint( + [ + "climatic_indicator_id", + ], + [ + "climaticindicator.id", + ], + onupdate="CASCADE", + ondelete="CASCADE", # i.e. delete all names if the related climatic_indicator gets deleted + ), + ) + + climatic_indicator_id: Optional[int] = sqlmodel.Field( + default=None, + primary_key=True, + ) + station_manager: static.ObservationStationManager = sqlmodel.Field( + default=None, + primary_key=True, + ) + indicator_observation_name: str + + climatic_indicator: "ClimaticIndicator" = sqlmodel.Relationship( + back_populates="observation_names" + ) diff --git a/arpav_ppcv/schemas/static.py b/arpav_ppcv/schemas/static.py index 393e7b9d..d31d8e2b 100644 --- a/arpav_ppcv/schemas/static.py +++ b/arpav_ppcv/schemas/static.py @@ -129,7 +129,7 @@ def get_sort_order(self) -> int: }[self.name] -class ObservationStationOwner(str, enum.Enum): +class ObservationStationManager(str, enum.Enum): ARPAV = "ARPAV" ARPAFVG = "ARPAFVG" @@ -137,13 +137,13 @@ class ObservationStationOwner(str, enum.Enum): def get_param_display_name(locale: babel.Locale) -> str: translations = get_translations(locale) _ = translations.gettext - return _("observation station owner") + return _("observation station manager") @staticmethod def get_param_description(locale: babel.Locale) -> str: translations = get_translations(locale) _ = translations.gettext - return _("observation station owner description") + return _("observation station manager description") def get_value_display_name(self, locale: babel.Locale) -> str: translations = get_translations(locale) diff --git a/arpav_ppcv/webapp/admin/schemas.py b/arpav_ppcv/webapp/admin/schemas.py index a6172c56..ae3cd756 100644 --- a/arpav_ppcv/webapp/admin/schemas.py +++ b/arpav_ppcv/webapp/admin/schemas.py @@ -10,12 +10,17 @@ ) from ...schemas.static import ( AggregationPeriod, - ObservationStationOwner, + ObservationStationManager, MeasureType, MeasurementAggregationType, ) +class ClimaticIndicatorObservationNameRead(sqlmodel.SQLModel): + station_manager: ObservationStationManager + indicator_observation_name: str + + class ClimaticIndicatorRead(sqlmodel.SQLModel): identifier: str id: int @@ -33,6 +38,7 @@ class ClimaticIndicatorRead(sqlmodel.SQLModel): color_scale_max: float data_precision: int sort_order: int + observation_names: list[ClimaticIndicatorObservationNameRead] class ConfigurationParameterValueRead(sqlmodel.SQLModel): @@ -122,7 +128,7 @@ class StationRead(sqlmodel.SQLModel): class ObservationStationRead(sqlmodel.SQLModel): id: int name: str - owner: ObservationStationOwner + owner: ObservationStationManager longitude: float latitude: float code: str @@ -136,7 +142,7 @@ class ObservationSeriesConfigurationRead(sqlmodel.SQLModel): identifier: str indicator_internal_name: str measurement_aggregation_type: MeasurementAggregationType - station_owners: list[ObservationStationOwner] + station_owners: list[ObservationStationManager] climatic_indicator: int diff --git a/arpav_ppcv/webapp/admin/views/climaticindicators.py b/arpav_ppcv/webapp/admin/views/climaticindicators.py index 4fd7d116..654909c0 100644 --- a/arpav_ppcv/webapp/admin/views/climaticindicators.py +++ b/arpav_ppcv/webapp/admin/views/climaticindicators.py @@ -16,11 +16,9 @@ from ....schemas.static import ( AggregationPeriod, MeasureType, + ObservationStationManager, ) -from ....schemas.climaticindicators import ( - ClimaticIndicatorCreate, - ClimaticIndicatorUpdate, -) +from ....schemas import climaticindicators from .. import schemas as read_schemas logger = logging.getLogger(__name__) @@ -44,8 +42,11 @@ class ClimaticIndicatorView(ModelView): "color_scale_min", "color_scale_max", "data_precision", + "observation_names", ) exclude_fields_from_detail = ("id",) + exclude_fields_from_edit = ("identifier",) + exclude_fields_from_create = ("identifier",) fields = ( starlette_admin.IntegerField("id"), @@ -71,6 +72,7 @@ class ClimaticIndicatorView(ModelView): ), starlette_admin.FloatField("color_scale_min", required=True), starlette_admin.FloatField("color_scale_max", required=True), + starlette_admin.StringField("sort_order"), starlette_admin.IntegerField( "data_precision", required=True, @@ -78,18 +80,43 @@ class ClimaticIndicatorView(ModelView): "Number of decimal places to be used when displaying data values" ), ), - starlette_admin.StringField("sort_order"), + starlette_admin.ListField( + starlette_admin.CollectionField( + name="observation_names", + fields=[ + starlette_admin.EnumField( + "station_manager", enum=ObservationStationManager, required=True + ), + starlette_admin.StringField( + "indicator_observation_name", required=True + ), + ], + ), + ), ) def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) self.icon = "fa-solid fa-cloud-sun-rain" + @staticmethod + def _serialize_instance(instance: climaticindicators.ClimaticIndicator): + return read_schemas.ClimaticIndicatorRead( + **instance.model_dump(), + observation_names=[ + read_schemas.ClimaticIndicatorObservationNameRead( + station_manager=obs_name.station_manager, + indicator_observation_name=obs_name.indicator_observation_name, + ) + for obs_name in instance.observation_names + ], + ) + async def create(self, request: Request, data: dict[str, Any]) -> Any: try: data = await self._arrange_data(request, data) await self.validate(request, data) - climatic_indicator_create = ClimaticIndicatorCreate( + climatic_indicator_create = climaticindicators.ClimaticIndicatorCreate( name=data["name"], measure_type=data["measure_type"], aggregation_period=data["aggregation_period"], @@ -104,16 +131,22 @@ async def create(self, request: Request, data: dict[str, Any]) -> Any: color_scale_max=data["color_scale_max"], data_precision=data["data_precision"], sort_order=data.get("sort_order"), + observation_names=[ + climaticindicators.ClimaticIndicatorObservationNameCreate( + observation_station_manager=obs_name["station_manager"], + indicator_observation_name=obs_name[ + "indicator_observation_name" + ], + ) + for obs_name in data.get("observation_names", []) + ], ) db_climatic_indicator = await anyio.to_thread.run_sync( database.create_climatic_indicator, request.state.session, climatic_indicator_create, ) - climatic_indicator = read_schemas.ClimaticIndicatorRead( - **db_climatic_indicator.model_dump(), - ) - return climatic_indicator + return self._serialize_instance(db_climatic_indicator) except Exception as e: return self.handle_exception(e) @@ -121,7 +154,7 @@ async def edit(self, request: Request, pk: Any, data: dict[str, Any]) -> Any: try: data = await self._arrange_data(request, data, True) await self.validate(request, data) - climatic_indicator_update = ClimaticIndicatorUpdate( + climatic_indicator_update = climaticindicators.ClimaticIndicatorUpdate( name=data["name"], measure_type=data["measure_type"], aggregation_period=data["aggregation_period"], @@ -136,6 +169,15 @@ async def edit(self, request: Request, pk: Any, data: dict[str, Any]) -> Any: color_scale_max=data["color_scale_max"], data_precision=data["data_precision"], sort_order=data.get("sort_order"), + observation_names=[ + climaticindicators.ClimaticIndicatorObservationNameUpdate( + observation_station_manager=obs_name["station_manager"], + indicator_observation_name=obs_name[ + "indicator_observation_name" + ], + ) + for obs_name in data.get("observation_names", []) + ], ) db_climatic_indicator = await anyio.to_thread.run_sync( database.get_climatic_indicator, request.state.session, pk @@ -146,10 +188,7 @@ async def edit(self, request: Request, pk: Any, data: dict[str, Any]) -> Any: db_climatic_indicator, climatic_indicator_update, ) - climatic_indicator = read_schemas.ClimaticIndicatorRead( - **db_climatic_indicator.model_dump(), - ) - return climatic_indicator + return self._serialize_instance(db_climatic_indicator) except Exception as e: self.handle_exception(e) @@ -159,7 +198,7 @@ async def find_by_pk( db_climatic_indicator = await anyio.to_thread.run_sync( database.get_climatic_indicator, request.state.session, pk ) - return read_schemas.ClimaticIndicatorRead(**db_climatic_indicator.model_dump()) + return self._serialize_instance(db_climatic_indicator) async def find_all( self, @@ -179,7 +218,4 @@ async def find_all( db_climatic_indicators, _ = await anyio.to_thread.run_sync( list_params, request.state.session ) - return [ - read_schemas.ClimaticIndicatorRead(**ind.model_dump()) - for ind in db_climatic_indicators - ] + return [self._serialize_instance(ind) for ind in db_climatic_indicators] diff --git a/arpav_ppcv/webapp/admin/views/observations.py b/arpav_ppcv/webapp/admin/views/observations.py index 60cda9e1..42fcdba1 100644 --- a/arpav_ppcv/webapp/admin/views/observations.py +++ b/arpav_ppcv/webapp/admin/views/observations.py @@ -458,7 +458,7 @@ class ObservationSeriesConfigurationView(ModelView): icon = "fa fa-blog" pk_attr = "id" fields = ( - fields.UuidField("id"), + starlette_admin.IntegerField("id"), starlette_admin.StringField("identifier", read_only=True), starlette_admin.StringField("indicator_internal_name", required=True), starlette_admin.EnumField( @@ -473,7 +473,7 @@ class ObservationSeriesConfigurationView(ModelView): ), starlette_admin.ListField( starlette_admin.EnumField( - "station_owners", enum=static.ObservationStationOwner + "station_managers", enum=static.ObservationStationManager ) ), ) diff --git a/arpav_ppcv/webapp/api_v2/schemas/observations.py b/arpav_ppcv/webapp/api_v2/schemas/observations.py index 1135e0bb..3ae82e3f 100644 --- a/arpav_ppcv/webapp/api_v2/schemas/observations.py +++ b/arpav_ppcv/webapp/api_v2/schemas/observations.py @@ -74,7 +74,7 @@ class ObservationStationReadListItem(pydantic.BaseModel): url: pydantic.AnyHttpUrl identifier: str name: str - owner: static.ObservationStationOwner + managed_by: static.ObservationStationManager @classmethod def from_db_instance( From 5797509f4d5c70d4e589b41764a71e7e8abae379 Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Silva Date: Tue, 17 Dec 2024 12:16:54 +0000 Subject: [PATCH 22/22] Update poetry lock file --- poetry.lock | 175 +++++++++++++++++++++++++--------------------------- 1 file changed, 84 insertions(+), 91 deletions(-) diff --git a/poetry.lock b/poetry.lock index c16df944..054ed761 100644 --- a/poetry.lock +++ b/poetry.lock @@ -328,20 +328,20 @@ test = ["distro (>=1.9.0,<1.10.0)", "flake8 (>=6.1,<7.0)", "flake8-pyi (>=24.1.0 [[package]] name = "attrs" -version = "24.2.0" +version = "24.3.0" description = "Classes Without Boilerplate" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"}, - {file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"}, + {file = "attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308"}, + {file = "attrs-24.3.0.tar.gz", hash = "sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff"}, ] [package.extras] benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] @@ -446,14 +446,14 @@ files = [ [[package]] name = "branca" -version = "0.8.0" +version = "0.8.1" description = "Generate complex HTML+JS pages with Python" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "branca-0.8.0-py3-none-any.whl", hash = "sha256:e78d5be39c8799a42e5c2dd1145a797a3cefc099537907bc1e4c43b6b55f7fa4"}, - {file = "branca-0.8.0.tar.gz", hash = "sha256:1f8fd0d2f3b7548f2c146093932be5d3064ba21eee6cebf92d416b7f9092324f"}, + {file = "branca-0.8.1-py3-none-any.whl", hash = "sha256:d29c5fab31f7c21a92e34bf3f854234e29fecdcf5d2df306b616f20d816be425"}, + {file = "branca-0.8.1.tar.gz", hash = "sha256:ac397c2d79bd13af0d04193b26d5ed17031d27609a7f1fab50c438b8ae712390"}, ] [package.dependencies] @@ -593,14 +593,14 @@ ujson = ["ujson (>=5.7.0)"] [[package]] name = "certifi" -version = "2024.8.30" +version = "2024.12.14" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, - {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, + {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"}, + {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"}, ] [[package]] @@ -1228,38 +1228,38 @@ langdetect = ["langdetect"] [[package]] name = "debugpy" -version = "1.8.9" +version = "1.8.11" description = "An implementation of the Debug Adapter Protocol for Python" category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "debugpy-1.8.9-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:cfe1e6c6ad7178265f74981edf1154ffce97b69005212fbc90ca22ddfe3d017e"}, - {file = "debugpy-1.8.9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ada7fb65102a4d2c9ab62e8908e9e9f12aed9d76ef44880367bc9308ebe49a0f"}, - {file = "debugpy-1.8.9-cp310-cp310-win32.whl", hash = "sha256:c36856343cbaa448171cba62a721531e10e7ffb0abff838004701454149bc037"}, - {file = "debugpy-1.8.9-cp310-cp310-win_amd64.whl", hash = "sha256:17c5e0297678442511cf00a745c9709e928ea4ca263d764e90d233208889a19e"}, - {file = "debugpy-1.8.9-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:b74a49753e21e33e7cf030883a92fa607bddc4ede1aa4145172debc637780040"}, - {file = "debugpy-1.8.9-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62d22dacdb0e296966d7d74a7141aaab4bec123fa43d1a35ddcb39bf9fd29d70"}, - {file = "debugpy-1.8.9-cp311-cp311-win32.whl", hash = "sha256:8138efff315cd09b8dcd14226a21afda4ca582284bf4215126d87342bba1cc66"}, - {file = "debugpy-1.8.9-cp311-cp311-win_amd64.whl", hash = "sha256:ff54ef77ad9f5c425398efb150239f6fe8e20c53ae2f68367eba7ece1e96226d"}, - {file = "debugpy-1.8.9-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:957363d9a7a6612a37458d9a15e72d03a635047f946e5fceee74b50d52a9c8e2"}, - {file = "debugpy-1.8.9-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e565fc54b680292b418bb809f1386f17081d1346dca9a871bf69a8ac4071afe"}, - {file = "debugpy-1.8.9-cp312-cp312-win32.whl", hash = "sha256:3e59842d6c4569c65ceb3751075ff8d7e6a6ada209ceca6308c9bde932bcef11"}, - {file = "debugpy-1.8.9-cp312-cp312-win_amd64.whl", hash = "sha256:66eeae42f3137eb428ea3a86d4a55f28da9bd5a4a3d369ba95ecc3a92c1bba53"}, - {file = "debugpy-1.8.9-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:957ecffff80d47cafa9b6545de9e016ae8c9547c98a538ee96ab5947115fb3dd"}, - {file = "debugpy-1.8.9-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1efbb3ff61487e2c16b3e033bc8595aea578222c08aaf3c4bf0f93fadbd662ee"}, - {file = "debugpy-1.8.9-cp313-cp313-win32.whl", hash = "sha256:7c4d65d03bee875bcb211c76c1d8f10f600c305dbd734beaed4077e902606fee"}, - {file = "debugpy-1.8.9-cp313-cp313-win_amd64.whl", hash = "sha256:e46b420dc1bea64e5bbedd678148be512442bc589b0111bd799367cde051e71a"}, - {file = "debugpy-1.8.9-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:472a3994999fe6c0756945ffa359e9e7e2d690fb55d251639d07208dbc37caea"}, - {file = "debugpy-1.8.9-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:365e556a4772d7d0d151d7eb0e77ec4db03bcd95f26b67b15742b88cacff88e9"}, - {file = "debugpy-1.8.9-cp38-cp38-win32.whl", hash = "sha256:54a7e6d3014c408eb37b0b06021366ee985f1539e12fe49ca2ee0d392d9ceca5"}, - {file = "debugpy-1.8.9-cp38-cp38-win_amd64.whl", hash = "sha256:8e99c0b1cc7bf86d83fb95d5ccdc4ad0586d4432d489d1f54e4055bcc795f693"}, - {file = "debugpy-1.8.9-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:7e8b079323a56f719977fde9d8115590cb5e7a1cba2fcee0986ef8817116e7c1"}, - {file = "debugpy-1.8.9-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6953b335b804a41f16a192fa2e7851bdcfd92173cbb2f9f777bb934f49baab65"}, - {file = "debugpy-1.8.9-cp39-cp39-win32.whl", hash = "sha256:7e646e62d4602bb8956db88b1e72fe63172148c1e25c041e03b103a25f36673c"}, - {file = "debugpy-1.8.9-cp39-cp39-win_amd64.whl", hash = "sha256:3d9755e77a2d680ce3d2c5394a444cf42be4a592caaf246dbfbdd100ffcf7ae5"}, - {file = "debugpy-1.8.9-py2.py3-none-any.whl", hash = "sha256:cc37a6c9987ad743d9c3a14fa1b1a14b7e4e6041f9dd0c8abf8895fe7a97b899"}, - {file = "debugpy-1.8.9.zip", hash = "sha256:1339e14c7d980407248f09824d1b25ff5c5616651689f1e0f0e51bdead3ea13e"}, + {file = "debugpy-1.8.11-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:2b26fefc4e31ff85593d68b9022e35e8925714a10ab4858fb1b577a8a48cb8cd"}, + {file = "debugpy-1.8.11-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61bc8b3b265e6949855300e84dc93d02d7a3a637f2aec6d382afd4ceb9120c9f"}, + {file = "debugpy-1.8.11-cp310-cp310-win32.whl", hash = "sha256:c928bbf47f65288574b78518449edaa46c82572d340e2750889bbf8cd92f3737"}, + {file = "debugpy-1.8.11-cp310-cp310-win_amd64.whl", hash = "sha256:8da1db4ca4f22583e834dcabdc7832e56fe16275253ee53ba66627b86e304da1"}, + {file = "debugpy-1.8.11-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:85de8474ad53ad546ff1c7c7c89230db215b9b8a02754d41cb5a76f70d0be296"}, + {file = "debugpy-1.8.11-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ffc382e4afa4aee367bf413f55ed17bd91b191dcaf979890af239dda435f2a1"}, + {file = "debugpy-1.8.11-cp311-cp311-win32.whl", hash = "sha256:40499a9979c55f72f4eb2fc38695419546b62594f8af194b879d2a18439c97a9"}, + {file = "debugpy-1.8.11-cp311-cp311-win_amd64.whl", hash = "sha256:987bce16e86efa86f747d5151c54e91b3c1e36acc03ce1ddb50f9d09d16ded0e"}, + {file = "debugpy-1.8.11-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:84e511a7545d11683d32cdb8f809ef63fc17ea2a00455cc62d0a4dbb4ed1c308"}, + {file = "debugpy-1.8.11-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce291a5aca4985d82875d6779f61375e959208cdf09fcec40001e65fb0a54768"}, + {file = "debugpy-1.8.11-cp312-cp312-win32.whl", hash = "sha256:28e45b3f827d3bf2592f3cf7ae63282e859f3259db44ed2b129093ca0ac7940b"}, + {file = "debugpy-1.8.11-cp312-cp312-win_amd64.whl", hash = "sha256:44b1b8e6253bceada11f714acf4309ffb98bfa9ac55e4fce14f9e5d4484287a1"}, + {file = "debugpy-1.8.11-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:8988f7163e4381b0da7696f37eec7aca19deb02e500245df68a7159739bbd0d3"}, + {file = "debugpy-1.8.11-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c1f6a173d1140e557347419767d2b14ac1c9cd847e0b4c5444c7f3144697e4e"}, + {file = "debugpy-1.8.11-cp313-cp313-win32.whl", hash = "sha256:bb3b15e25891f38da3ca0740271e63ab9db61f41d4d8541745cfc1824252cb28"}, + {file = "debugpy-1.8.11-cp313-cp313-win_amd64.whl", hash = "sha256:d8768edcbeb34da9e11bcb8b5c2e0958d25218df7a6e56adf415ef262cd7b6d1"}, + {file = "debugpy-1.8.11-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:ad7efe588c8f5cf940f40c3de0cd683cc5b76819446abaa50dc0829a30c094db"}, + {file = "debugpy-1.8.11-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:189058d03a40103a57144752652b3ab08ff02b7595d0ce1f651b9acc3a3a35a0"}, + {file = "debugpy-1.8.11-cp38-cp38-win32.whl", hash = "sha256:32db46ba45849daed7ccf3f2e26f7a386867b077f39b2a974bb5c4c2c3b0a280"}, + {file = "debugpy-1.8.11-cp38-cp38-win_amd64.whl", hash = "sha256:116bf8342062246ca749013df4f6ea106f23bc159305843491f64672a55af2e5"}, + {file = "debugpy-1.8.11-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:654130ca6ad5de73d978057eaf9e582244ff72d4574b3e106fb8d3d2a0d32458"}, + {file = "debugpy-1.8.11-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23dc34c5e03b0212fa3c49a874df2b8b1b8fda95160bd79c01eb3ab51ea8d851"}, + {file = "debugpy-1.8.11-cp39-cp39-win32.whl", hash = "sha256:52d8a3166c9f2815bfae05f386114b0b2d274456980d41f320299a8d9a5615a7"}, + {file = "debugpy-1.8.11-cp39-cp39-win_amd64.whl", hash = "sha256:52c3cf9ecda273a19cc092961ee34eb9ba8687d67ba34cc7b79a521c1c64c4c0"}, + {file = "debugpy-1.8.11-py2.py3-none-any.whl", hash = "sha256:0e22f846f4211383e6a416d04b4c13ed174d24cc5d43f5fd52e7821d0ebc8920"}, + {file = "debugpy-1.8.11.tar.gz", hash = "sha256:6ad2688b69235c43b020e04fecccdf6a96c8943ca9c2fb340b8adc103c655e57"}, ] [[package]] @@ -3149,53 +3149,46 @@ files = [ [[package]] name = "matplotlib" -version = "3.9.4" +version = "3.10.0" description = "Python plotting package" category = "main" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" files = [ - {file = "matplotlib-3.9.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:c5fdd7abfb706dfa8d307af64a87f1a862879ec3cd8d0ec8637458f0885b9c50"}, - {file = "matplotlib-3.9.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d89bc4e85e40a71d1477780366c27fb7c6494d293e1617788986f74e2a03d7ff"}, - {file = "matplotlib-3.9.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ddf9f3c26aae695c5daafbf6b94e4c1a30d6cd617ba594bbbded3b33a1fcfa26"}, - {file = "matplotlib-3.9.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18ebcf248030173b59a868fda1fe42397253f6698995b55e81e1f57431d85e50"}, - {file = "matplotlib-3.9.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:974896ec43c672ec23f3f8c648981e8bc880ee163146e0312a9b8def2fac66f5"}, - {file = "matplotlib-3.9.4-cp310-cp310-win_amd64.whl", hash = "sha256:4598c394ae9711cec135639374e70871fa36b56afae17bdf032a345be552a88d"}, - {file = "matplotlib-3.9.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d4dd29641d9fb8bc4492420c5480398dd40a09afd73aebe4eb9d0071a05fbe0c"}, - {file = "matplotlib-3.9.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30e5b22e8bcfb95442bf7d48b0d7f3bdf4a450cbf68986ea45fca3d11ae9d099"}, - {file = "matplotlib-3.9.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bb0030d1d447fd56dcc23b4c64a26e44e898f0416276cac1ebc25522e0ac249"}, - {file = "matplotlib-3.9.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aca90ed222ac3565d2752b83dbb27627480d27662671e4d39da72e97f657a423"}, - {file = "matplotlib-3.9.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a181b2aa2906c608fcae72f977a4a2d76e385578939891b91c2550c39ecf361e"}, - {file = "matplotlib-3.9.4-cp311-cp311-win_amd64.whl", hash = "sha256:1f6882828231eca17f501c4dcd98a05abb3f03d157fbc0769c6911fe08b6cfd3"}, - {file = "matplotlib-3.9.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:dfc48d67e6661378a21c2983200a654b72b5c5cdbd5d2cf6e5e1ece860f0cc70"}, - {file = "matplotlib-3.9.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:47aef0fab8332d02d68e786eba8113ffd6f862182ea2999379dec9e237b7e483"}, - {file = "matplotlib-3.9.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fba1f52c6b7dc764097f52fd9ab627b90db452c9feb653a59945de16752e965f"}, - {file = "matplotlib-3.9.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:173ac3748acaac21afcc3fa1633924609ba1b87749006bc25051c52c422a5d00"}, - {file = "matplotlib-3.9.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:320edea0cadc07007765e33f878b13b3738ffa9745c5f707705692df70ffe0e0"}, - {file = "matplotlib-3.9.4-cp312-cp312-win_amd64.whl", hash = "sha256:a4a4cfc82330b27042a7169533da7991e8789d180dd5b3daeaee57d75cd5a03b"}, - {file = "matplotlib-3.9.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:37eeffeeca3c940985b80f5b9a7b95ea35671e0e7405001f249848d2b62351b6"}, - {file = "matplotlib-3.9.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3e7465ac859ee4abcb0d836137cd8414e7bb7ad330d905abced457217d4f0f45"}, - {file = "matplotlib-3.9.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4c12302c34afa0cf061bea23b331e747e5e554b0fa595c96e01c7b75bc3b858"}, - {file = "matplotlib-3.9.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b8c97917f21b75e72108b97707ba3d48f171541a74aa2a56df7a40626bafc64"}, - {file = "matplotlib-3.9.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0229803bd7e19271b03cb09f27db76c918c467aa4ce2ae168171bc67c3f508df"}, - {file = "matplotlib-3.9.4-cp313-cp313-win_amd64.whl", hash = "sha256:7c0d8ef442ebf56ff5e206f8083d08252ee738e04f3dc88ea882853a05488799"}, - {file = "matplotlib-3.9.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a04c3b00066a688834356d196136349cb32f5e1003c55ac419e91585168b88fb"}, - {file = "matplotlib-3.9.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:04c519587f6c210626741a1e9a68eefc05966ede24205db8982841826af5871a"}, - {file = "matplotlib-3.9.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:308afbf1a228b8b525fcd5cec17f246bbbb63b175a3ef6eb7b4d33287ca0cf0c"}, - {file = "matplotlib-3.9.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ddb3b02246ddcffd3ce98e88fed5b238bc5faff10dbbaa42090ea13241d15764"}, - {file = "matplotlib-3.9.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8a75287e9cb9eee48cb79ec1d806f75b29c0fde978cb7223a1f4c5848d696041"}, - {file = "matplotlib-3.9.4-cp313-cp313t-win_amd64.whl", hash = "sha256:488deb7af140f0ba86da003e66e10d55ff915e152c78b4b66d231638400b1965"}, - {file = "matplotlib-3.9.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:3c3724d89a387ddf78ff88d2a30ca78ac2b4c89cf37f2db4bd453c34799e933c"}, - {file = "matplotlib-3.9.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d5f0a8430ffe23d7e32cfd86445864ccad141797f7d25b7c41759a5b5d17cfd7"}, - {file = "matplotlib-3.9.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6bb0141a21aef3b64b633dc4d16cbd5fc538b727e4958be82a0e1c92a234160e"}, - {file = "matplotlib-3.9.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:57aa235109e9eed52e2c2949db17da185383fa71083c00c6c143a60e07e0888c"}, - {file = "matplotlib-3.9.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:b18c600061477ccfdd1e6fd050c33d8be82431700f3452b297a56d9ed7037abb"}, - {file = "matplotlib-3.9.4-cp39-cp39-win_amd64.whl", hash = "sha256:ef5f2d1b67d2d2145ff75e10f8c008bfbf71d45137c4b648c87193e7dd053eac"}, - {file = "matplotlib-3.9.4-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:44e0ed786d769d85bc787b0606a53f2d8d2d1d3c8a2608237365e9121c1a338c"}, - {file = "matplotlib-3.9.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:09debb9ce941eb23ecdbe7eab972b1c3e0276dcf01688073faff7b0f61d6c6ca"}, - {file = "matplotlib-3.9.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bcc53cf157a657bfd03afab14774d54ba73aa84d42cfe2480c91bd94873952db"}, - {file = "matplotlib-3.9.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ad45da51be7ad02387801fd154ef74d942f49fe3fcd26a64c94842ba7ec0d865"}, - {file = "matplotlib-3.9.4.tar.gz", hash = "sha256:1e00e8be7393cbdc6fedfa8a6fba02cf3e83814b285db1c60b906a023ba41bc3"}, + {file = "matplotlib-3.10.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2c5829a5a1dd5a71f0e31e6e8bb449bc0ee9dbfb05ad28fc0c6b55101b3a4be6"}, + {file = "matplotlib-3.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a2a43cbefe22d653ab34bb55d42384ed30f611bcbdea1f8d7f431011a2e1c62e"}, + {file = "matplotlib-3.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:607b16c8a73943df110f99ee2e940b8a1cbf9714b65307c040d422558397dac5"}, + {file = "matplotlib-3.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01d2b19f13aeec2e759414d3bfe19ddfb16b13a1250add08d46d5ff6f9be83c6"}, + {file = "matplotlib-3.10.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e6c6461e1fc63df30bf6f80f0b93f5b6784299f721bc28530477acd51bfc3d1"}, + {file = "matplotlib-3.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:994c07b9d9fe8d25951e3202a68c17900679274dadfc1248738dcfa1bd40d7f3"}, + {file = "matplotlib-3.10.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:fd44fc75522f58612ec4a33958a7e5552562b7705b42ef1b4f8c0818e304a363"}, + {file = "matplotlib-3.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c58a9622d5dbeb668f407f35f4e6bfac34bb9ecdcc81680c04d0258169747997"}, + {file = "matplotlib-3.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:845d96568ec873be63f25fa80e9e7fae4be854a66a7e2f0c8ccc99e94a8bd4ef"}, + {file = "matplotlib-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5439f4c5a3e2e8eab18e2f8c3ef929772fd5641876db71f08127eed95ab64683"}, + {file = "matplotlib-3.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4673ff67a36152c48ddeaf1135e74ce0d4bce1bbf836ae40ed39c29edf7e2765"}, + {file = "matplotlib-3.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:7e8632baebb058555ac0cde75db885c61f1212e47723d63921879806b40bec6a"}, + {file = "matplotlib-3.10.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4659665bc7c9b58f8c00317c3c2a299f7f258eeae5a5d56b4c64226fca2f7c59"}, + {file = "matplotlib-3.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d44cb942af1693cced2604c33a9abcef6205601c445f6d0dc531d813af8a2f5a"}, + {file = "matplotlib-3.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a994f29e968ca002b50982b27168addfd65f0105610b6be7fa515ca4b5307c95"}, + {file = "matplotlib-3.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b0558bae37f154fffda54d779a592bc97ca8b4701f1c710055b609a3bac44c8"}, + {file = "matplotlib-3.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:503feb23bd8c8acc75541548a1d709c059b7184cde26314896e10a9f14df5f12"}, + {file = "matplotlib-3.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:c40ba2eb08b3f5de88152c2333c58cee7edcead0a2a0d60fcafa116b17117adc"}, + {file = "matplotlib-3.10.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96f2886f5c1e466f21cc41b70c5a0cd47bfa0015eb2d5793c88ebce658600e25"}, + {file = "matplotlib-3.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:12eaf48463b472c3c0f8dbacdbf906e573013df81a0ab82f0616ea4b11281908"}, + {file = "matplotlib-3.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fbbabc82fde51391c4da5006f965e36d86d95f6ee83fb594b279564a4c5d0d2"}, + {file = "matplotlib-3.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad2e15300530c1a94c63cfa546e3b7864bd18ea2901317bae8bbf06a5ade6dcf"}, + {file = "matplotlib-3.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3547d153d70233a8496859097ef0312212e2689cdf8d7ed764441c77604095ae"}, + {file = "matplotlib-3.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:c55b20591ced744aa04e8c3e4b7543ea4d650b6c3c4b208c08a05b4010e8b442"}, + {file = "matplotlib-3.10.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ade1003376731a971e398cc4ef38bb83ee8caf0aee46ac6daa4b0506db1fd06"}, + {file = "matplotlib-3.10.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:95b710fea129c76d30be72c3b38f330269363fbc6e570a5dd43580487380b5ff"}, + {file = "matplotlib-3.10.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cdbaf909887373c3e094b0318d7ff230b2ad9dcb64da7ade654182872ab2593"}, + {file = "matplotlib-3.10.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d907fddb39f923d011875452ff1eca29a9e7f21722b873e90db32e5d8ddff12e"}, + {file = "matplotlib-3.10.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3b427392354d10975c1d0f4ee18aa5844640b512d5311ef32efd4dd7db106ede"}, + {file = "matplotlib-3.10.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5fd41b0ec7ee45cd960a8e71aea7c946a28a0b8a4dcee47d2856b2af051f334c"}, + {file = "matplotlib-3.10.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:81713dd0d103b379de4516b861d964b1d789a144103277769238c732229d7f03"}, + {file = "matplotlib-3.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:359f87baedb1f836ce307f0e850d12bb5f1936f70d035561f90d41d305fdacea"}, + {file = "matplotlib-3.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae80dc3a4add4665cf2faa90138384a7ffe2a4e37c58d83e115b54287c4f06ef"}, + {file = "matplotlib-3.10.0.tar.gz", hash = "sha256:b886d02a581b96704c9d1ffe55709e49b4d2d52709ccebc4be42db856e511278"}, ] [package.dependencies] @@ -3210,7 +3203,7 @@ pyparsing = ">=2.3.1" python-dateutil = ">=2.7" [package.extras] -dev = ["meson-python (>=0.13.1,<0.17.0)", "numpy (>=1.25)", "pybind11 (>=2.6,!=2.13.3)", "setuptools (>=64)", "setuptools_scm (>=7)"] +dev = ["meson-python (>=0.13.1,<0.17.0)", "pybind11 (>=2.13.2,!=2.13.3)", "setuptools (>=64)", "setuptools_scm (>=7)"] [[package]] name = "matplotlib-inline" @@ -4154,14 +4147,14 @@ virtualenv = ">=20.10.0" [[package]] name = "prefect" -version = "3.1.7.dev2" +version = "3.1.8.dev1" description = "Workflow orchestration and management." category = "main" optional = false python-versions = ">=3.9" files = [ - {file = "prefect-3.1.7.dev2-py3-none-any.whl", hash = "sha256:e9a6eaafce90fc91ffc4f5d9a455960718ef720ea9b6e2964c8c803e86a63f94"}, - {file = "prefect-3.1.7.dev2.tar.gz", hash = "sha256:ea0a3d77740fa1abc6377cc00471dc8b701db412c846d53c8920f3adce0a5583"}, + {file = "prefect-3.1.8.dev1-py3-none-any.whl", hash = "sha256:5e5bea0d97440bc9bf7a3d75eb4ab9e0e20ba3cfb5455e0632f5e7b23d160cd4"}, + {file = "prefect-3.1.8.dev1.tar.gz", hash = "sha256:5e24957d6ae29f0b26398a7613357b2eab4c8c5486d78c71a5b310ae0858405f"}, ] [package.dependencies] @@ -4841,14 +4834,14 @@ cli = ["click (>=5.0)"] [[package]] name = "python-json-logger" -version = "3.2.0" +version = "3.2.1" description = "JSON Log Formatter for the Python Logging Package" category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "python_json_logger-3.2.0-py3-none-any.whl", hash = "sha256:d73522ddcfc6d0461394120feaddea9025dc64bf804d96357dd42fa878cc5fe8"}, - {file = "python_json_logger-3.2.0.tar.gz", hash = "sha256:2c11056458d3f56614480b24e9cb28f7aba69cbfbebddbb77c92f0ec0d4947ab"}, + {file = "python_json_logger-3.2.1-py3-none-any.whl", hash = "sha256:cdc17047eb5374bd311e748b42f99d71223f3b0e186f4206cc5d52aefe85b090"}, + {file = "python_json_logger-3.2.1.tar.gz", hash = "sha256:8eb0554ea17cb75b05d2848bc14fb02fbdbd9d6972120781b974380bfa162008"}, ] [package.extras] @@ -4856,14 +4849,14 @@ dev = ["backports.zoneinfo", "black", "build", "freezegun", "mdx_truly_sane_list [[package]] name = "python-multipart" -version = "0.0.19" +version = "0.0.20" description = "A streaming multipart parser for Python" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "python_multipart-0.0.19-py3-none-any.whl", hash = "sha256:f8d5b0b9c618575bf9df01c684ded1d94a338839bdd8223838afacfb4bb2082d"}, - {file = "python_multipart-0.0.19.tar.gz", hash = "sha256:905502ef39050557b7a6af411f454bc19526529ca46ae6831508438890ce12cc"}, + {file = "python_multipart-0.0.20-py3-none-any.whl", hash = "sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104"}, + {file = "python_multipart-0.0.20.tar.gz", hash = "sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13"}, ] [[package]]